Elm
bifunctor