packages feed

egison-2.4.4: lib/tree.egi

(define $Tree
  (lambda [$a]
    (type
      {[,$val []
      {[$tgt (match [tgt val] [(Tree a) (Tree a)]
               {[[<node $n1 $n2> <node ,n1 ,n2>] {[]}]
                [[<leaf $x> <leaf ,x>] {[]}]
                [[_ _] {}]})]}]
     [<node _ _> [(Tree a) (Tree a)]
      {[<node $n1 $n2> {[n1 n2]}]}]
     [<leaf _> [a]
      {[<leaf $x> {[x]}]}]
     [_ [Something]
      {[$tgt {tgt}]}]
     }))