Some ML-family languages such as OCaml allow the definition of coinductive types as well as their inhabitants using a let rec construct. An example of such elements is coinductive streams. However, there is very little that one can do to manipulate them: pattern matching on the top elements is possible, but recursion will never finish. More importantly, it is virtually impossible to generate coinductive elements on the fly. Recent work with the CoCaml language has started fixing this issue, but it is limited to regular coinductive types, that is where the elements eventually point to themselves. For coinductive streams, this corresponds to streams that have a pattern that eventually repeats (e.g., [3;4;5;1;2;1;2;1;2]). In this talk we will show how to build on well-established theory on rational streams – a much more comprehensive family of streams – to extend CoCaml to deal with those rational streams.
Preprint (icfp19mlworkshop-paper83.pdf) | 95KiB |
Thu 22 Aug
13:30 - 13:55 Talk | Steven CheungUniversity of Birmingham, UK File Attached | |||||||||||||||||||||||||||||||||||||||||
13:55 - 14:20 Talk | Jean-Baptiste JeanninUniversity of Michigan, USA File Attached | |||||||||||||||||||||||||||||||||||||||||
14:20 - 14:45 Talk | Pre-print |