Ensuring streams flow [chapter]

Alastair Telford, David Turner
1997 Lecture Notes in Computer Science  
It is our aim to develop an elementary strong functional programming (ESFP) system. To be useful, ESFP should include structures such as streams which can be computationally unwound in nitely often. We describe a syntactic analysis to ensure that in nitely proceeding structures, which we shall term codata, are productive. This analysis is an extension of the check for guardedness that has been used with de nitions over coinductive types in Martin-L of's type theory and in the calculus of
more » ... ctions. Our analysis is presented as a form of abstract interpretation that allows a wider syntactic class of corecursive de nitions to be recognised as productive than in previous work. Thus programmers will have fewer restrictions on their use of in nite streams within a strongly normalizing functional language.
doi:10.1007/bfb0000493 fatcat:3rr2gcypm5fffc6hqyrxfcjxmu