static Either<Error, A> decode<A>(String input, Decoder<A> decoder) => parse(input).leftMap<Error>(identity).flatMap((a) => decoder.decode(a));