let rec EltMember = lambda x. lambda L. if null L then false else if x = hd L then true else EltMember x tl L, ListEq = lambda x. lambda y. if null x then null y else if null y then false else if hd x = hd y then ListEq tl x tl y else false, ListMember = lambda L. lambda LL. if null LL then false else if ListEq L (hd LL) then true else ListMember L tl LL, Combinatorial = lambda Length. if Length = 0 then (nil :: nil) else list L st EltMember (hd L) (1::(2::nil)) and ListMember (tl L) (Combinatorial (Length-1)) in Combinatorial 2