import Unsafe.Coerce (unsafeCoerce) class Foo r f :: (Eq a, Foo a) => a -> a f a = a g :: Eq a => a -> a g x = unsafeCoerce (f x) main = print $ g "abb"