MapClassRep:
TYPE ~
RECORD [
Functional: PROC [map: Map] RETURNS [BOOL],
MMutability: PROC [map: Map] RETURNS [Mutability],
Has: PROC [map: Map, elt: VersionTuple] RETURNS [BOOL] ← NIL,
Scan: PROC [map: Map, Consume: TupleConsumer, inOrder: BOOL, pfml: PatternFactoredMapList] RETURNS [MaybeTuple] ← NIL,
CreateGenerator: PROC [map: Map, inOrder: BOOL, pfml: PatternFactoredMapList] RETURNS [Generator] ← NIL,
Size: PROC [map: Map, limit: INT] RETURNS [INT] ← NIL,
PatternFactorMap: PROC [map: Map] RETURNS [PatternFactoredMap] ← NIL,
AddTuple: PROC [map: Map, t: VersionTuple, if: IfHads] RETURNS [had: Hads] ← NIL,
AddMap: PROC [map, other: Map, if: IfHads] RETURNS [some: HadSets] ← NIL,
RemTuple: PROC [map: Map, t: VersionTuple] RETURNS [had: Hads] ← NIL,
RemMap: PROC [map, other: Map] RETURNS [some: HadSets] ← NIL,
Negate: PROC [map: Map] RETURNS [Map] ← NIL,
IsNegation: PROC [map: Map] RETURNS [MaybeMap] ← NIL,
Intersect: PROC [map, other: Map] RETURNS [Map] ← NIL,
IsIntersection: PROC [map: Map] RETURNS [Maybe2Maps] ← NIL,
Union: PROC [map, other: Map, test: UnionTest, ordered: BOOL] RETURNS [Map] ← NIL,
IsUnion: PROC [map: Map] RETURNS [Maybe2Maps] ← NIL,
Difference: PROC [map, other: Map] RETURNS [Map] ← NIL,
IsDifference: PROC [map: Map] RETURNS [Maybe2Maps] ← NIL,
SymmetricDifference: PROC [map, other: Map] RETURNS [Map] ← NIL,
IsSymmetricDifference: PROC [map: Map] RETURNS [Maybe2Maps] ← NIL,
other: Atom.PropList ← NIL,
data: REF ANY];