public void AddPredicateAndResult(DelegateFunc <Option <T>, bool> predicate, TResult result) { _predicatesAndResults.Add(Tuple.Create(predicate, Union <DelegateFunc <T, TResult>, DelegateFunc <Option <T>, TResult>, TResult> .CreateThird(result))); }