NumericStruct.Add<NumericStruct.FromNumeric<A, Fail>, NumericStruct.FromNumeric<B, Fail>>
// ^ fail as input not accepting `Fail`
Instead of:
type NumericStruct.Add<A extends NumericStruct, B extends NumericStruct> ...
Accept Maybe<NumericStruct> and propagate the error.
This will simplify many implementation.
Instead of:
Accept
Maybe<NumericStruct>and propagate the error.This will simplify many implementation.