:6:49: Couldn't match expected type ‘ListableElem (a, a)’ with actual type ‘a’ ‘a’ is a rigid type variable bound by the instance declaration at :6:10 Relevant bindings include b :: a (bound at :6:43) a :: a (bound at :6:41) asList :: (a, a) -> [ListableElem (a, a)] (bound at :6:33) In the expression: a In the expression: [a, b]