A detailed walkthrough of Cure programming language releases v0.16.0 through v0.19.1. Key changes include: FSMs rewritten to integrate transition handlers directly (inspired by Finitomata), eliminating boilerplate GenServer wrappers; dependent types now actually enforced with Sigma/Pi/equality types, implicit arguments with unification, and hole-driven development; pattern matching completely rewritten to correctly handle nested map, record, and cons patterns; and v0.19.0 adding record field defaults, @derive macros, property-based testing, lazy iterators, and a package version resolver. v0.19.1 added Dialyzer to CI. The author candidly reflects on years of shipping features that 'almost worked' and the effort to make each subsystem genuinely load-bearing.

19m read timeFrom rocket-science.ru
Post cover image
Table of contents
v0.16.0: the turnstile that could not contain itselfv0.17.0: toward Idris, at lastv0.18.0: pattern matching grows upv0.19.0: the furniture arrivesv0.19.1: Dialyzer and the small sinsWhat all this adds up to

Sort: