I learned recently from @natefaubion that
base Monads like
Aff, are always stack safe, even if you aren’t using
What other base monads will always cause the whole monad transformer stack to be stack-safe?
Aff accumulate heap memory during a monadic computation?
Why is it possible to write an
Aff which is an always-stack-safe base monad, but not possible to write
Effect as an always-stack-safe base monad? It looks like stack-safe
Effect has been attempted before by @safareli https://github.com/purescript/purescript-effect/pull/12
(Jordan’s reference has good material on stack safety. Explicit TCO - PureScript: Jordan's Reference )