((|base|
(#1=(#2=(|SpadAst|) $) (#3=(|List| #4=(|SpadAst|)) (|second| #4# #3#))
(|arguments| (|x| . $))))
(|body| (#5=((|SpadAst|) $) (#3# (|third| #4# #3#)) (|arguments| (|x| . $))))
(|coerce|
((#6=(|OutputForm|) $) (#2# (|coerce| (|OutputForm|) #2#))
(#6# (|elt| #6# #6# (|List| #6#)) (= #6# #6# #6#)) (|arguments| (|x| . $))
($ (|body| . #5#) (|base| . #1#))))
(|constructor|
(NIL
(|locals|
(|Rep| |Join| (|ListAggregate| #7=(|SpadAst|))
(CATEGORY |domain| (SIGNATURE |nil| ($) |constant|)
(SIGNATURE |null| ((|Boolean|) $)) (SIGNATURE |cons| ($ #7# $))
(SIGNATURE |append| #8=($ $ $))
(IF (|has| #7# (|SetCategory|))
(PROGN
(SIGNATURE |setUnion| #8#)
(SIGNATURE |setIntersection| #8#)
(SIGNATURE |setDifference| #8#))
|%noBranch|)))))))