;; ;; Base.egi ;; (define $bool (matcher {[,$val [] {[$tgt (if (eq? val tgt) {[]} {})]}] [$ [something] {[$tgt {tgt}]}] })) (define $or (lambda [$b1 $b2] (if b1 #t b2))) (define $and (lambda [$b1 $b2] (if b1 b2 #f))) (define $not (lambda [$b] (match b bool {[,#t #f] [,#f #t]}))) (define $char (matcher {[,$c [] {[$tgt (if (eq? tgt c) {[]} {})]}] [$ [something] {[$tgt {tgt}]}] })) (define $ordering (algebraic-data-matcher { })) (define $match? (lambda [$a] (lambda [$x $y] (match x a {[,y #t] [_ #f]}))))