Lift an algebra over types to an algebra annotating a structural type.
A transform ensuring unions are disjoint by merging their members.
The structural type representing the given EJson value, annotated with
the result of measure.
The structural type representing the given EJson value annotated with the given measure.
Unfold a StructuralType from a Type.
Whether the StructuralType is constant.
Lens targeting the top-level annotation of a structural type.
Unfold a pair of structural types into their deep structural merge.
Lift a transform over types to a transform over structural types.