@type flag() :: atom()
@type flags() :: [flag()]
@type raw() :: non_neg_integer()
@spec to_flags(flags(), flags() | raw()) :: flags()
@spec to_integer(flags(), flags()) :: raw()