-record(decoder, {run :: fun((binary()) -> {ok, any()} | {error, binary()})}).