Legend:

Disciple also includes region, effect and closure typing extensions, and this information which is used during optimisation. Most of it can be inferred, but you do need to know about it when importing functions via the FFI. It is also used to check that the meaning of programs that mix laziness and destructive update does not depend on order of evaluation for the lazy parts, which is one of the criteria for being a purely functional language.

11

Disciple also includes region, effect and closure typing, and this information is used during optimisation. Most of it can be inferred, but you do need to know about it when importing functions via the FFI. It is also used to check that the meaning of programs that mix laziness and destructive update does not depend on order of evaluation for the lazy parts, which is one of the criteria for being a purely functional language.

12

12

13

13

* The [wiki:Language/Overview/EffectSystem EffectSystem] tracks what computational effects are being used in a program, without the need for state monads.