Module Type_shape
module Uid = Shape.Uidmodule Layout = Jkind_types.Sort.Consttype base_layout = Jkind_types.Sort.basemodule Type_shape : sig ... endmodule Type_decl_shape : sig ... endmodule Evaluation_diagnostics : sig ... endmodule Evaluated_shape : sig ... endEvaluated_shape.unfold_and_evaluate performs call-by-value evaluation of shapes. It should be applied after reduce (from shape_reduce.ml) has already been used. More specifically, when producing a type shape with of_type_expr, the resulting shape is not a normal form. A normal form---at least for the emission into DWARF debug information---should no longer contain structures (from modules), lambdas (from functors and parametric types), application (from functor instantiation and type application), mutually recursive declarations and their projections (Constr and Proj_decl). (Due to missing information, it might still contain compilation units Comp_unit and projections Proj from them.)
val all_type_shapes : shape_with_layout Uid.Tbl.tval add_to_type_decls :
(Ident.t * Types.type_declaration) list ->
path_lookup ->
unitval add_to_type_shapes :
Uid.t ->
Types.type_expr ->
Layout.t ->
name:string ->
path_lookup ->
unitval print_table_all_type_decls : Format.formatter -> unitval print_table_all_type_shapes : Format.formatter -> unitval print_debug_uid_tables : Format.formatter -> unit