At: apply alist non member21111 1. T: Type 2. as: (LabelT) List 3. u1: Pattern 4. ground_ptn(u1) 5. u2: T 6. v: (LabelT) List 7. d:T, x:Label. (x map(p.1of(p);v)) apply_alist(v;x;d) = d 8. d: T 9. x: Pattern 10. ground_ptn(x) 11. apply_alist([ < u1,u2 > / v];x;d) ~ if u1 = x u2 else apply_alist(v;x;d) fi 12. u1 = x