Obj.Case
Case objects.
Case objects are used to describe objects whose member list depend on the tag value of a distinguished case member. See an example.
type ('o, 'dec) obj_map := ('o, 'dec) map
The type for a case object represented by 'case
belonging to a type represented by 'cases
depending on the value of a case member of type 'tag
.
The type for a case part of the type 'cases
. This is t
with its 'case
representation hidden.
map ~dec v obj
defines the object map obj
as being the case for the tag value v
of the case member. dec
indicates how to inject the object case into the type for cases.