Module type Structure.Shape

module type Shape = sig .. end
A Key module with its structure type.

include Structure.Key
type 'a data 
type 'a structure = 
| Unit : unit structure
| Void : 'a0 structure
| Leaf : 'a1 key * 'a1 data -> 'a1 structure
| Node : 'a2 structure * 'b structure -> ('a2 * 'b) structure
| Option : 'a3 structure * 'a3 -> 'a3 option structure
The gadt, based on keys giving the type of each node. Describes the internal structure of a data type. Used internally to automatically generate efficient accessors of its nodes.
val eq_structure : 'a structure ->
'b structure -> ('a, 'b) Structure.eq option