TypeCheck.TypeError.Formatter behaviour (TypeCheck v0.10.1) View Source

Behaviour to format your own type errors

Link to this section Summary

Types

A problem tuple contains four fields

Callbacks

A formatter is expected to turn a problem_tuple into a string that can be used as :message of the TypeCheck.TypeError exception.

Link to this section Types

Specs

A problem tuple contains four fields:

  1. the module of the type for which a check did not pass
  2. an atom describing the exact error; for many types there are multiple checks
  3. a map with fields containing extra information about the error. in the cases of a compound type, this often contains information about the deeper problem that happened as well.
  4. the datastructure that did not pass the check

See the module documentation of all TypeCheck.Builtin.* modules for more information about the checks that they perform and the problem tuples they might return.

(This type is managed by TypeCheck, which allows checking values against the type at runtime.)

Full definition:

problem_tuple :: TypeCheck.Builtin.Any.problem_tuple()
| TypeCheck.Builtin.Atom.problem_tuple()
| TypeCheck.Builtin.Binary.problem_tuple()
| TypeCheck.Builtin.Bitstring.problem_tuple()
| TypeCheck.Builtin.Boolean.problem_tuple()
| TypeCheck.Builtin.FixedList.problem_tuple()
| TypeCheck.Builtin.FixedMap.problem_tuple()
| TypeCheck.Builtin.FixedTuple.problem_tuple()
| TypeCheck.Builtin.Float.problem_tuple()
| TypeCheck.Builtin.Integer.problem_tuple()
| TypeCheck.Builtin.List.problem_tuple()
| TypeCheck.Builtin.Literal.problem_tuple()
| TypeCheck.Builtin.Map.problem_tuple()
| TypeCheck.Builtin.NamedType.problem_tuple()
| TypeCheck.Builtin.NegInteger.problem_tuple()
| TypeCheck.Builtin.NonNegInteger.problem_tuple()
| TypeCheck.Builtin.None.problem_tuple()
| TypeCheck.Builtin.Number.problem_tuple()
| TypeCheck.Builtin.OneOf.problem_tuple()
| TypeCheck.Builtin.PosInteger.problem_tuple()
| TypeCheck.Builtin.PID.problem_tuple()
| TypeCheck.Builtin.Range.problem_tuple()
| TypeCheck.Builtin.Tuple.problem_tuple()

Link to this section Callbacks

Link to this callback

format(problem_tuple, location)

View Source

Specs

A formatter is expected to turn a problem_tuple into a string that can be used as :message of the TypeCheck.TypeError exception.