static Agent <string> StartAgentFor (string ccyPair, Agent <FxRateResponse> sendResponse) => Agent.Start <Option <decimal>, string>(None, async(optRate, recipient) => { decimal rate = await optRate.Map(Async) .GetOrElse(() => Yahoo.GetRate(ccyPair)); sendResponse.Tell(new FxRateResponse { CcyPair = ccyPair, Rate = rate, Recipient = recipient, }); return(Some(rate)); });