You can. For example, the type Type -> Typeis in a higher universe than the type of the argument. Thus, it is Type -> Typedefinitely not part of the lower universe, and is not IO (Type -> Type), but
test : IO (Type -> Type)
test = return List
works fine.
source
share