Haskell 98 Groupoids