public static IEnumerable <object[]> ApplyLaws() => new ApplyLawsTests <ResultOkF <bool>, string, int, long>( ResultK <bool> .Apply(), ResultK.EqK(BooleanK.Eq())).Wrap();
public static IEnumerable <object[]> EqLaws() => new EqLawsTests <Result <int, string> >(ResultK.Eq(Int32K.Eq(), StringK.Eq())).Wrap();
public static IEnumerable <object[]> InvariantLaws() => new InvariantLawsTests <ResultOkF <bool>, string, int, long>( ResultK <bool> .Invariant(), ResultK.EqK(BooleanK.Eq())).Wrap();
public bool EqK <TOk, TError>( IKind2 <ResultF, TOk, TError> x, IKind2 <ResultF, TOk, TError> y, IEq <TOk> eqOk, IEq <TError> eqError) => ResultK.Eq(eqOk, eqError).Eqv(x.Fix(), y.Fix());