module ListConcat = struct type a and b = a list and c = a list let op = fun (x: a) y -> y @ [x] ;; let init = [] ;; end