Decoder<A> ensure(Function1<A, bool> p, Function0<String> message) => Decoder.instance((c) => decodeC(c) .filterOrElse(p, () => DecodingFailure.fromString(message(), c)));