| 1 |
16. x@0:Id.
16. deq-member(IdDeq;x@0;1of(1of(2of(2of(if eqof(IdDeq)(x,i)
16. deq-member(IdDeq;x@0;1of(1of(2of(2of(if <<[x], x.T>,,<[x], x.v>,,,,,, >
16. deq-member(IdDeq;x@0;1of(1of(2of(2of(else fi)))))
16. 
16. s(x;0).x@0
16. =
16. 2of(1of(2of(2of(if eqof(IdDeq)(x,i) <<[x], x.T>,,<[x], x.v>,,,,,, >
16. 2of(1of(2of(2of(else fi))))
16. (x@0)
16. if deq-member(IdDeq;x@0;1of(1of(if eqof(IdDeq)(x,i)
16. if deq-member(IdDeq;x@0;1of(1of(if <<[x], x.T>,,<[x], x.v>,,,,,, >
16. if deq-member(IdDeq;x@0;1of(1of(else fi)))
16. if 2of(1of(if eqof(IdDeq)(x,i) <<[x], x.T>,,<[x], x.v>,,,,,, > else fi))
16. if (x@0)
16. else Void fi
17. a:Action(x).
17. isnull(a)
17. 
17. (valtype(x;a) r if eqof(IdDeq)(x,i) <<[x], x.T>,,<[x], x.v>,,,,,, >
17. (valtype(x;a) r else fi.da(kind(a)))
18. x@0:Id.
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if eqof(IdDeq)(x,i)
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if <<[x], x.T>
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if ,
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if ,<[x], x.v>
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if ,
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if ,
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if ,
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if ,
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if ,
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(if , >
18. vartype(x;x@0) r if deq-member(IdDeq;x@0;1of(1of(else fi)))
18. vartype(x;x@0) r if 2of(1of(if eqof(IdDeq)(x,i)
18. vartype(x;x@0) r if 2of(1of(if <<[x], x.T>,,<[x], x.v>,,,,,, >
18. vartype(x;x@0) r if 2of(1of(else fi))
18. vartype(x;x@0) r if (x@0)
18. vartype(x;x@0) r else Top fi
19. vartype(i;x) r T
20. e1 : Id
21. e2 :
22. isnull(a(1of(<e1,e2>);2of(<e1,e2>)))
23. e1 = i
24. t: , j:Id. first(<j,t>)  s(j;t).x = s(j;0).x vartype(j;x)
25. first(<e1,e2>)
26. s(e1;e2).x = s(e1;0).x vartype(e1;x)
27. s(i;0).x = v T
s(e1;e2).x = v T
 | 7 steps |