Two Light Modalities for Recursion
We investigate the interplay between two modalities for controlling the behaviour of recursive functional programs on infinite structures which are completely silent in the syntax. The latter means that programs do not contain "marks" showing the application of the introduction and elimination rules for the modalities. This shifts the burden of controlling recursion from the programmer to the compiler. To do this, we introduce a typed lambda calculus a la Curry with two silent modalities and guarded recursive types. The first modality delays the data while the second one removes the delays. The typing discipline guarantees normalisation and can be transformed into an algorithm which infers the type of a program.
READ FULL TEXT