string := *top*. *list* := *top*. *null* := *list*. *ne-list* := *list* & [ FIRST *top*, REST *list* ]. diff-list := *top* & [ LIST *list*, LAST *list* ]. a := *top* & [F b, G *top*]. b := *top* & [H *top*]. c := a & b & [I d]. d := a & b & [F #x, G #x].