Go backward to 1. Version Go up to Top |
Family of procedure domains:
Nat-proc = Nat -> Store -> Poststore_|_
Array-proc = Array -> Store -> Poststore_|_
Record-proc = Proc -> Store -> Poststore_|_
Type-tag =
Nat-tag + Array-tag + Record-tag + Err-tag
where Nat-tag = ...= Unit
T': Type-structure -> Environment ->
Type-tag
D[[proc I1(I2:T) = C]] = lambda e. lambda s.
cases (T'[[T]]e) of
isNat-tag() ->
((updateenv [[I1]] inNat-proc(lambda n.
C[[C]](updateenv [[I2]]
inNat(n) e))
e),
(return s))
isArray-tag() -> ...
isRecord-tag() -> ...
isErr-tag() -> (e, (signalerr s))
end