how to implement this function : now have `fmapT` and `traverse` :

    fmapT ::
      Traversable t =>
      (a -> b)
      -> t a
      -> t b
    traverse ::
      Applicative f => 
      (a -> f b)
      -> t a
      -> f (t b)


how can i implement the function `over` with `traverse` as an argument to `fmapT`:

    over ::
      ((a -> Identity b) -> s -> Identity t)
      -> (a -> b)
      -> s
      -> t
    over = error "undefined"