type result =
| Resolved of Shape.Uid.t
(*Shape reduction succeeded and a uid was found
*)| Resolved_alias of Shape.Uid.t * result
(*Reduction led to an alias
*)| Unresolved of Shape.t
(*Result still contains
*)Comp_unit
terms| Approximated of Shape.Uid.t option
(*Reduction failed: it can arrive with first-class modules for example
*)| Internal_error_missing_uid
(*Reduction succeeded but no uid was found, this should never happen
*)
The result of reducing a shape and looking for its uid
val print_result : Format.formatter -> result -> unit
The Make
functor is used to generate a reduction function for shapes.
local_reduce
will not reduce shapes that require loading external compilation units.