Builds a codec around a decoder that may throw while parsing.
domain type to decode and encode.
serialized representation produced during encoding.
human readable identifier included in decode errors.
transformation applied when encoding I to O.
transformation that converts O back to I; thrown exceptions are captured as failures.