Haskell 98 bifunctors, bifoldables and bitraversables