FailDueToGivenOverlapping.hs:27:9: Overlapping instances for E [t0] arising from a use of ‘eop’ Matching givens (or their superclasses): E [Int] bound by the type signature for: bar :: E [Int] => () -> () at FailDueToGivenOverlapping.hs:26:8-26 Matching instances: instance E [a] -- Defined at FailDueToGivenOverlapping.hs:21:10 (The choice depends on the instantiation of ‘t0’) In the expression: eop [undefined] In an equation for ‘bar’: bar _ = eop [undefined]