haskell Adjunctions ekmett/adjunctions