1{-# LANGUAGE ScopedTypeVariables #-}
2
3fJoin :: forall f m a. (Monad m, Monad f) => f (m (m a)) -> f (m a)
4fJoin =  let f = ( (\ m -> m >>= id) :: m (m a) -> m a) in fmap f
5