Earlier quoted context omitted.
> The difference is that Scala also abstracts over the "container" not just the contents. Haskell is perfectly able to do that as well if desired. `[]` is a monadic type.
Haskell has no subtyping as far as I know Haskell.
Functor f => (a -> b) -> f a -> f b
Defines map for any type that implements the type class functor. Lots of types will implement functor and it is easy to implement it yourself.