let mask_of_enum = Enum.fold (snd |- String.enum |- Enum.map (function '-' | '?' -> false | _ -> true) |- Array.of_enum |- Array.map2 (||) |> flip) initial_mask