在 Idris 中,IO 可以在任何宇宙中发生吗?

In Idris, can IO happen in any universe?

这是我的问题。 Idris 有一个累积的 Universe 层次结构,其中的 Universe 由编译器推断。使用 dosomethingreal : IO 是否意味着层次结构中的最低宇宙?是 IO : Type 而不是 IO : Type 1?或者我可以在任何宇宙中进行 IO 操作吗?

可以。例如,类型 Type -> Type 位于比参数类型更高的宇宙中。所以Type -> Type肯定不在最低宇宙,IO (Type -> Type)也不在,而是

test : IO (Type -> Type)
test = return List

运行良好。