{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} module M where data Svg a type family Rendered a type instance Rendered (Svg a) = [Maybe a] class Monoid (Rendered a) => IsDrawable a instance IsDrawable (Svg a)