using afIoc::StrategyRegistry** (Service) - Contribute your `ResponseProcessor` implementations to this.constmixin ResponseProcessors {** Recursively processes the response object until 'true' or 'false' is returned @NoDoc // not for public useabstract Bool processResponse(Obj response)}internalconstclass ResponseProcessorsImpl : ResponseProcessors {privateconst StrategyRegistry processorStrategyinternalnew make(Type:ResponseProcessor responseProcessors){ processorStrategy = StrategyRegistry(responseProcessors)}override Bool processResponse(Obj response){while(!response.typeof.fits(Bool#)){try{ response = get(response.typeof).process(response)// We handle ReProcessErrs as close to the source as possible as not to bounce back through any // HTTPPipelineFilters}catch(ReProcessErr rpe){// re-process any, um, ReProcessErrs! response = rpe.responseObj}}// false is fine, it means it wasn't handled, fall through to the next route / filterreturn response}private ResponseProcessor get(Type responseType){ processorStrategy.findBestFit(responseType)}}