module PrependAll; // def List append(List l1, List l2) = // case l1 { // Nil => l2; // Cons(x,xs) => Cons(x, append(xs, l2)); // }; // def List> prependAll(List xs, List> ys) = map((List s) => append(xs,s))(ys); // let rec append xs ys = // match xs with // | [] -> ys // | x :: xs' -> x :: (append xs' ys) // ;; def List append(List xs, List ys) = case xs { Nil => ys; Cons(x,xsP) => Cons(x, append(xsP, ys)); }; def List> prependAll(List xs, List> ys) = map((List bs) => append(xs,bs))(ys); def List> start(List xs, List> ys) = prependAll(xs,ys); { }