Is there a type system using graded monads that puts a grade on the _typing judgment_, not just on the monad type? I swear I saw something like this once, but can't find it. @dorchard ?
I might expect rules like the following:
Γ ⊢_m e : T_n A
-------------------
Γ ⊢_{mn} run e : A
Γ ⊢_{mn} e : A
----------------------
Γ ⊢_m thunk e : T_n A
Γ ⊢_m e1 : A
Γ, x:A ⊢_n e2 : B
------------------------------
Γ ⊢_{mn} let x = e1 in e2 : B