The immutable state of the phase that can also be accessed by other phases.
The immutable state of the phase that can also be accessed by other phases.
Run the phase
Run the phase
Create a Node representing a structure of null values of the given Type
Collect discriminator candidate fields in a predicate.
Collect discriminator candidate fields in a predicate. These are all paths below an OptionApply, which indicates their future use under a discriminator guard.
Expand multi-column conditional expressions and SilentCasts.
Expand multi-column conditional expressions and SilentCasts. Single-column conditionals involving NULL values are optimized away where possible.
Fuse unnecessary Option operations
The unique name of the phase
The unique name of the phase
Create a SilentCast call unless the type already matches
Strip nominal types and convert all atomic types to OptionTypes
Perform the sum expansion on a Type
Translate an Option-extended left outer, right outer or full outer join
Expand sum types and their catamorphisms to equivalent product type operations.