See https://egghead.io/lessons/reason-working-with-cryptic-error-messages-from-reasonml-when-writing-custom-decco-decoders