public static NUMTYPE append <NUMTYPE, NUM, A, PRED>(NumType <NUMTYPE, NUM, A, PRED> x, NumType <NUMTYPE, NUM, A, PRED> y) where NUMTYPE : NumType <NUMTYPE, NUM, A, PRED> where PRED : struct, Pred <A> where NUM : struct, Num <A> => from a in x from b in y select default(NUM).Append(a, b);
public static NUMTYPE subtract <NUMTYPE, NUM, A, PRED>(NumType <NUMTYPE, NUM, A, PRED> x, NUMTYPE y) where NUM : struct, Num <A> where PRED : struct, Pred <A> where NUMTYPE : NumType <NUMTYPE, NUM, A, PRED> => from a in x from b in y select default(NUM).Subtract(a, b);
public static NUMTYPE map <NUMTYPE, NUM, T, PRED>(NumType <NUMTYPE, NUM, T, PRED> value, Func <T, T> map) where NUM : struct, Num <T> where PRED : struct, Pred <T> where NUMTYPE : NumType <NUMTYPE, NUM, T, PRED> => value.Map(map);
public static bool forall <NUMTYPE, NUM, T, PRED>(NumType <NUMTYPE, NUM, T, PRED> value, Func <T, bool> predicate) where NUM : struct, Num <T> where PRED : struct, Pred <T> where NUMTYPE : NumType <NUMTYPE, NUM, T, PRED> => predicate((T)value);
public static int count <NUMTYPE, NUM, T, PRED>(NumType <NUMTYPE, NUM, T, PRED> value) where NUM : struct, Num <T> where PRED : struct, Pred <T> where NUMTYPE : NumType <NUMTYPE, NUM, T, PRED> => 1;
public static A sum <NUMTYPE, NUM, A>(NumType <NUMTYPE, NUM, A> self) where NUMTYPE : NumType <NUMTYPE, NUM, A> where NUM : struct, Num <A> => (A)self;
public static NUMTYPE divide <NUMTYPE, NUM, A>(NumType <NUMTYPE, NUM, A> x, NUMTYPE y) where NUM : struct, Num <A> where NUMTYPE : NumType <NUMTYPE, NUM, A> => from a in x from b in y select default(NUM).Divide(a, b);
public static Unit iter <NUMTYPE, NUM, T, PRED>(NumType <NUMTYPE, NUM, T, PRED> value, Action <T> f) where NUM : struct, Num <T> where PRED : struct, Pred <T> where NUMTYPE : NumType <NUMTYPE, NUM, T, PRED> => value.Iter(f);
public static int count <NUMTYPE, NUM, T>(NumType <NUMTYPE, NUM, T> value) where NUM : struct, Num <T> where NUMTYPE : NumType <NUMTYPE, NUM, T> => 1;
public static Unit iter <NUMTYPE, NUM, T>(NumType <NUMTYPE, NUM, T> value, Action <T> f) where NUM : struct, Num <T> where NUMTYPE : NumType <NUMTYPE, NUM, T> => value.Iter(f);
public static NUMTYPE bind <NUMTYPE, NUM, T>(NumType <NUMTYPE, NUM, T> value, Func <T, NUMTYPE> bind) where NUM : struct, Num <T> where NUMTYPE : NumType <NUMTYPE, NUM, T> => value.Bind(bind);
public static A sum <NUMTYPE, NUM, A, PRED>(NumType <NUMTYPE, NUM, A, PRED> self) where NUMTYPE : NumType <NUMTYPE, NUM, A, PRED> where PRED : struct, Pred <A> where NUM : struct, Num <A> => (A)self;
public static NUMTYPE bind <NUMTYPE, NUM, T, PRED>(NumType <NUMTYPE, NUM, T, PRED> value, Func <T, NUMTYPE> bind) where NUM : struct, Num <T> where PRED : struct, Pred <T> where NUMTYPE : NumType <NUMTYPE, NUM, T, PRED> => value.Bind(bind);
public static int compare <NEWTYPE, NUM, T, PRED>(NEWTYPE x, NumType <NEWTYPE, NUM, T, PRED> y) where NUM : struct, Num <T> where PRED : struct, Pred <T> where NEWTYPE : NumType <NEWTYPE, NUM, T, PRED> => OrdNumType <NEWTYPE, NUM, T, PRED> .Inst.Compare(x, y);
static A ValueOrDefault(NumType <SELF, NUM, A, PRED> numType) => ReferenceEquals(numType, null) ? default(NUM).Empty() : numType.Value;
public static S fold <NUMTYPE, NUM, T, S, PRED>(NumType <NUMTYPE, NUM, T, PRED> value, S state, Func <S, T, S> folder) where NUM : struct, Num <T> where PRED : struct, Pred <T> where NUMTYPE : NumType <NUMTYPE, NUM, T, PRED> => value.Fold(state, folder);
public static bool exists <NUMTYPE, NUM, T>(NumType <NUMTYPE, NUM, T> value, Func <T, bool> predicate) where NUM : struct, Num <T> where NUMTYPE : NumType <NUMTYPE, NUM, T> => predicate((T)value);
public static SELF Sum<SELF, NUM, A>(this IEnumerable<NumType<SELF, NUM, A>> self) where SELF : NumType<SELF, NUM, A> where NUM : struct, Num<A> => self.Fold(NumType<SELF, NUM, A>.FromInteger(0), (s, x) => s + x);