[Haskell] ambiguous (partially defined) type problem / active objects