tcfail142.hs:18:8: error: • Could not deduce (Bar a0 r) from the context: Bar a r bound by the type signature for: bar :: forall a r. Bar a r => r -> () at tcfail142.hs:18:8-25 The type variable ‘a0’ is ambiguous • In the ambiguity check for ‘bar’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes In the type signature: bar :: Bar a r => r -> ()