Crate kind_pass

source ·
Expand description

A lot of transformations that we can apply into kind trees.

  • desugar - That desugars the sugared tree into a version that does not contain a lot of constructions like match, inductive types etc.
  • erasure - Erases all of the definitions that are marked as erased from the runtime.
  • expand - Expand some attributes and derivations of each construction.
  • unbound - Collects all of the unbound definitions and check the linearity of them.
  • inline - Inlines expressions

Modules

  • This pass transforms a sugared tree into a simpler tree.
  • Expand some attributes and derivations of each construction. Currently it just derives match and open for sum type and record types respectively.
  • Collects all the unbound variables, check if patterns are linear and check if the name belongs to the current module.