;;;;; ;;;;; ;;;;; Base ;;;;; ;;;;; (define $builtin-data-matcher (matcher-dfs {[,$val [] {[$tgt (if (eq? val tgt) {[]} {})]}] [$ [something] {[$tgt {tgt}]}] })) (define $id (lambda [$x] x)) (define $fst (lambda [$x $y] x)) (define $snd (lambda [$x $y] y))(define $bool builtin-data-matcher) (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 builtin-data-matcher) (define $eq?/m (lambda [$a $x $y] (match x a {[,y #t] [_ #f]}))) (define $compose (lambda [$f $g] (lambda $x (apply g (apply f x))))) (define $compose3 (lambda [$f $g $h] (lambda $x (apply h (apply g (apply f x))))))