haskell-oo-prototypes