This is the version accepted for publication in Journal of Functional Programming.
The publication page is: https://doi.org/10.1017/S0956796820000088.
This is the version accepted for publication in Journal of Functional Programming.
The publication page is: https://doi.org/10.1017/S0956796820000088.