graphql-engine

This note is in Control.Monad.Memoize. It is referenced at:

MemoizeT requires MonadIO

The MonadMemoize instance for MemoizeT requires MonadIO, which is unsatisfying. The only reason the constraint is needed is to implement knot-tying via IORefs (see Note [Tying the knot] above), which really only requires the power of ST. Alternatively, it might be possible to use the ST monad instead, but that has not been done for historical reasons.