Isn't that a direct result of having higher kinded types/abstracting over the type constructor?
Certainly but Scala has that, and it has typeclass like implicits. I'm not sure if it can do monad-control though, here is a list of all the type extensions used for that:
RankNTypes
, TypeFamilies
, FunctionalDependencies
, FlexibleInstances
, UndecidableInstances
, MultiParamTypeClassesOne day ill make the jump from "just" f# to haskell.
While i usually could solve it in a different way, such things would have made it quite a bit nicer (the zoo of .map, .fold and such is a bit annoying)
https://hackage.haskell.org/package/monad-control
https://hackage.haskell.org/package/lifted-base