Puts Chc( Cat( Lit(Atom(This)) Lit(Atom(That)) Lit(Atom(The-Other)) ) ) Puts Chc( Cat( Lit(Atom(This)) ) Cat( Lit(Atom(That)) ) Cat( Lit(Atom(The-Other)) ) ) Puts Chc( 5: Cat( Lit(Atom(This)) ) Cat( Lit(Atom(That)) ) ) Puts Chc( Cat( Ap( Ap( Var(foo) Var(bar) ) Var(baz) ) ) ) Puts Chc( Cat( Tup( Chc( Cat( ) ) ) ) ) Puts Chc( Cat( Tup( Chc( Cat( Num(1) ) ) ) ) ) Puts Chc( Cat( Tup( Chc( Cat( Num(1) ) ) Chc( Cat( Num(2) ) ) ) ) ) Puts Chc( Cat( Tup( Chc( Cat( Num(1) ) ) Chc( Cat( Num(2) ) ) Chc( Cat( Num(3) ) ) ) ) ) Puts Chc( Cat( Range( Num(0) Num(20) ) ) ) Puts Chc( Cat( Range( Var(x) Var(y) ) ) ) Puts Chc( Cat( Ap( Var(f) Var(x) ) ) ) Puts Chc( Cat( Fun( x => Chc( Cat( Var(x) ) ) ) ) ) Puts Chc( Cat( Fun( True => Chc( Cat( Str("yes") ) ) False => Chc( Cat( Str("no") ) ) ) ) )