let create ?n () = 
    create [] ident (fun x xs -> x :: xs)