8 Untyped, Lazy, and Fuel Modes🔗ℹ

Use #:untyped immediately after #lang flit to disable type checking. The syntax of a flit module is the same with and without #:untyped, but types are ignored when #:untyped is specified. An untyped flit module can interoperate with a typed flit module, and dynamic checks are inserted at the boundary to protect typed functions from abuse by untyped code.

Use #:lazy immediately after #lang flit to switch evaluation to lazy mode. The syntax and type system are unchanged, but argument expressions for function calls are evaluated only when forced (by a test or by printing, ultimately). A lazy flit module will not interoperate well with an eager module.

Use #:fuel amount immediately after #lang flit to specify how much effort should be spent resolving potentially cyclic dependencies due to inference of polymorphic recursion. The default fuel is 100.

The #:untyped, #:lazy, and #:fuel modifiers can be combined, and the combination can be declared in any order.