Version 4 (modified by benl, 4 years ago)

--

< Main

Overview

These are the main user-visible features:

Disciple also includes region, effect and closure typing extensions. Most of this information 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.

  • The EffectSystem tracks what computational effects are being used in a program, without the need for state monads.
  • The ClassSystem ensures that effects and destructive update play nicely with laziness.
  • ClosureTyping is used to track data sharing, and to preserve soundness in the presence of PolymorphicUpdate.