let all_positional vl =
let cmp u v = match compare_containment u v with
| Some x -> x
| None -> match compare_positional u v with
| Some x -> x
| None -> assert false
in
let vl = List.sort ~cmp vl in
let rec loop vl =
match vl with
| [] | _::[] -> true
| u::v::vl -> (before u v) && loop (v::vl)
in loop vl