haskell Haskell 98 Profunctors