let node ?id ?(a = []) name l : t = let id = match id with | Some i -> i | None -> make_id (`Of (name, a, l)) in `Node ({id; name; attributes = a}, l)