Changelog for CPL-0.2.0
0.2.0 (2026-02-06)
- Add
show function <name>subcommand to display information of functions including functors, factorizers, and user-defined parameterized morphisms:cpl> show function exp f0: *c -> *a f1: *b -> *d ------------------------------------ exp(f0,f1): exp(*a,*b) -> exp(*c,*d) cpl> show function curry f0: prod(*a,*b) -> *c --------------------------- curry(f0): *a -> exp(*b,*c) cpl> let uncurry(f) = eval . prod(f, I) cpl> show function uncurry f: *a -> exp(*b,*c) ----------------------------- uncurry(f): prod(*a,*b) -> *c - Add WebAssembly support for browser-based CPL interpreter (https://msakai.github.io/cpl/)
- Add tutorials both in English and Japanese
- Accept
idas a synonym forI(identity morphism) - Allow the omission of the
iskeyword in data type definitions - Assume that files loaded via the
loadcommand use UTF-8 encoding - Remove readline support (the
Readlinecabal flag andUSE_READLINE_PACKAGEcode path) - Drop support for GHC <9.2 (base <4.16)
- Stop providing MSI installer
0.1.0 (2025-10-29)
- Update Cabal-Version requirement from >=1.10 to 2.2
- Require
mtl>=2.2.1 forControl.Monad.Except - Fix compilation error on recent
mtlpackage
0.0.9 (2018-02-16)
- Use
Control.Monad.Exceptinstead of deprecated Control.Monad.Error
0.0.8 (2016-01-14)
- "→" can be used instead of "->"
- GHC-7.10 support
- Add windows installer
0.0.7 (2014-08-13)
- Clean up internals
- Enable
-fReadlineand-fHaskelineby default
0.0.6 (2009-10-26)
Readline/Haskeline support.
0.0.4
Function defintions are added.
Examples:
> let uncurry(f) = eval . prod(f, I)
uncurry(f) = eval.prod(f,I)
f: *a -> exp(*b,*c)
-----------------------------
uncurry(f): prod(*a,*b) -> *c
> let primrec(f,g) = pi2.pr(pair(0,f), pair(s.pi1, g))
primrec(f,g) = pi2.pr(pair(0,f),pair(s.pi1,g))
f: 1 -> *a g: prod(nat,*a) -> *a
---------------------------------
primrec(f,g): nat -> *a