public Maybe <TRequestExodata> TryResolve <TRequestExodata, TContext, TSubject>(IExodataRequest <TRequestExodata, TContext, TSubject> request)
 {
     return(ExodataRequest <TExodata, TContext, TSubject>
            .TryToAdapt(request)
            .SelectMaybe(r => _Attribute.TryResolve(r))
            .Cast <TRequestExodata>());
 }
 public Maybe <TRequestExodata> TryResolve <TRequestExodata, TRequestContext, TRequestSubject>(IExodataRequest <TRequestExodata, TRequestContext, TRequestSubject> request)
 {
     return(ExodataRequest <TExodata, TContext, TSubject>
            .TryToAdapt(request)
            .Where(Matches)
            .SelectMaybe(ValueFactory)
            .Cast <TRequestExodata>());
 }