My goal is similar to this question: I would like to normalize a type in GHCi. But the type contains free type variables. For example, the type
StM (ExceptT e m) a
should normalize to
StM m (Either e a)
But when I typed !k StM (ExceptT e m) a into GHCi, it complained about those free type variables. Are there any other ways of doing so in Haskell?