Y'all gonna hate me, but I'm quite enjoying doing "object-orientated Haskell" with RecordDotSyntax:
data Object m = Object
{ method1 :: .. -> m a
, method2 :: .. -> m b
}
later:
thing :: Object m -> m ()
thing obj = do
..
obj.method1 x y
..
obj.method2 z
13
9
75



