Grundsätzlich:
class Size b => Problem p i b | (p, i) -> b where describe :: p -> i -> Doc verify :: p -> i -> b -> Reporter () initial :: p -> i -> b instance Problem Analyse ( NFA Char Int ) ExpUtilities:
class ToDoc a where toDoc :: a -> Doc class Reader a where reader :: String -> a class Size a where size :: a -> Int