### Records
[ Datatype records Funcon record Funcon record-map Funcon record-select ] Meta-variables T <: values Datatype records(T) ::= record(_:maps(identifiers,T))
*/ Funcon record-map(_:records(T)) : =>maps(identifiers,T)
Rule
record-map(record(M:maps(_,_))) ~> M
Funcon record-select(R:records(T), I:identifiers) : =>T?
~> map-lookup(record-map(R), I)
/*
A value of type `records(T)` contains a map from identifiers to values of type `T`.