private Evaluatable(T value = default, Interpretable <T> interpretable = default) { if (value.Equals(default(T)) && interpretable == default(Interpretable <T>)) { throw new InvalidOperationException("Value or Interpretable must be provided"); } isInterpretable = interpretable is not null; this.value = value; this.interpretable = interpretable; }
public static Evaluatable <T> Interpretable(Interpretable <T> interpretable) => new Evaluatable <T>(interpretable: interpretable);