An exception for when there is an error parsing a string.
@type reason() :: {:expected_exact, expected :: String.t(), got :: String.t()} | {:conflict, expected :: term(), got :: term()} | :invalid_input | :invalid_integer | :invalid_string
@type t() :: %Datix.ParseError{ __exception__: true, modifier: String.t(), reason: reason() }