fun append(x)(y) = x@y; fun cons(a)(l) = a::l; fun tuple3(one::two::three::[]) = (one,two,three); fun reduce(F,[],z) = z | reduce(F,(x::xs),z) = F(x)(reduce(F,xs,z));