autrijus stares at type Eval x = forall r. ContT r (ReaderT x IO) (ReaderT x IO x) and feels very lost Didn't you write that code? yeah. and it works I just don't know what it means.