runtime features / purity checking
✓ 8 passing ○ 2 planned
Lessons
1 ✓
Passing
001 pure annotation
2 ⏭
Skipped 002 inline proc — Inline procs are a feature that we will 97% surely be removing, and/or rethink.
3 ✓
Passing 003 flow purity
4 ✓
Passing 004 transitive pure
5 ○
Planned 005 transitive impure — COMPILER BUG: Transitive purity cannot see .handler() calls
6 ✓
Passing 006 event purity
7 ✓
Passing 007 cyclic calls
8 ✓
Passing 008 mixed impls
9 ✓
Passing 009 subflow pure
10 ✓
Passing 010 subflow impure
11 ○
Planned 011 opaque procs — The point of an [opaque] proc is to have to highlight it as opaque because you're intentionally calling Koru-events FROM a Koru-event, breaking the flow. This has performance implications, and is almost ALWAYS mechanically refactoringable to returning to the calling flow, making the code easier to optimize.