@spec canonical_name(String.t(), String.t()) :: String.t()
@spec expand_possible_fragment_shorthand(String.t(), String.t()) :: String.t()
@spec match?(String.t()) :: boolean()
@spec re() :: Regex.t()
@spec to_atom_with_fragment(String.t()) :: {atom(), atom()}