{-# LANGUAGE TypeFamilies #-}
type family F a
class Get a where
get :: a -> F a
instance Get A where
get (A x) = x
instance Get B where
get (B x) = x
main
= print $ (get
(A
3), get
(B
2.0))
ey0jIExBTkdVQUdFIFR5cGVGYW1pbGllcyAjLX0KCnR5cGUgZmFtaWx5IEYgYQoKZGF0YSBBID0gQSBJbnQKZGF0YSBCID0gQiBEb3VibGUKCnR5cGUgaW5zdGFuY2UgRiBBID0gSW50CnR5cGUgaW5zdGFuY2UgRiBCID0gRG91YmxlCgpjbGFzcyBHZXQgYSB3aGVyZQogIGdldCA6OiBhIC0+IEYgYQoKaW5zdGFuY2UgR2V0IEEgd2hlcmUKICBnZXQgKEEgeCkgPSB4CgppbnN0YW5jZSBHZXQgQiB3aGVyZQogIGdldCAoQiB4KSA9IHgKCm1haW4gPSBwcmludCAkIChnZXQgKEEgMyksIGdldCAoQiAyLjApKQo=