data F1 = F1 data F2 = F2 data F3 = F3 data G = G1 | G2 | G3 deriving (Show) class Convert a where convert :: a -> G instance Convert F1 where convert _ = G1 instance Convert F2 where convert _ = G2 instance Convert F3 where convert _ = G3