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.