Expand description
Type system for Seq
Based on cem2’s row polymorphism design with improvements. Supports stack effect declarations like: ( ..a Int – ..a Bool )
§Computational Effects
Beyond stack effects, Seq tracks computational side effects using the | syntax:
( a -- b | Yield T )- may yield values of type T (generators)- Effects propagate through function calls
strand.weavehandles the Yield effect,strand.spawnrequires pure quotations
Structs§
- Effect
- Stack effect: transformation from input stack to output stack Example: ( ..a Int – ..a Bool ) means:
- Union
Type Info - Type information for a union definition (used by type checker)
- Variant
Field Info - Information about a variant field
- Variant
Info - Information about a union variant (used by type checker)
Enums§
- Side
Effect - Computational side effects (beyond stack transformation)
- Stack
Type - Stack types with row polymorphism
- Type
- Base types in the language