protected bool Equals(SpecBase <T> other) => Equals(_compiledFunc, other._compiledFunc);
internal Or(SpecBase <T> first, SpecBase <T> second) { First = first ?? throw new ArgumentNullException(nameof(first)); Second = second ?? throw new ArgumentNullException(nameof(second)); }
internal Not(SpecBase <T> spec) => Inner = spec ?? throw new ArgumentNullException(nameof(spec));