Module types

Module types 

Source
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.weave handles the Yield effect, strand.spawn requires pure quotations

Structs§

Effect
Stack effect: transformation from input stack to output stack Example: ( ..a Int – ..a Bool ) means:
UnionTypeInfo
Type information for a union definition (used by type checker)
VariantFieldInfo
Information about a variant field
VariantInfo
Information about a union variant (used by type checker)

Enums§

SideEffect
Computational side effects (beyond stack transformation)
StackType
Stack types with row polymorphism
Type
Base types in the language