Why is Json.Decoder.Decoder a rank-2 type? It's encoding an Either so why not just write the Either directly?