Následující příklad demonstruje jak lze v Haskellu vytvořit typovou třídu.
 
> class Visible a where 
>    toString :: a -> String
>    size     :: a -> Int

Instance typové třídy pro Char by pak mohla vypadat takto.

> instance Visible Char where
>    toString ch = [ch]
>    size _      = 1

Následující funkce vytiskne na obrazovku reprezentaci prvku v typové tříde Visible.

> print :: Visible a => a->String
> print x = "("++ (show (size x))++","++(toString x) ++ ")"