Try this - I'm not sure how much it is rated on the "idiomatic Suave scale":
let appDemo:WebPart = request (fun req -> DateTime.Now.ToString() |> sprintf "Server timestamp: %s" |> Successful.OK)
You are right in that you see the same value, because it was fixed at the moment appDemo is evaluated. This is a feature of how F # works, and has nothing to do with caching it.
Please note that the WebPart type is an alias for the HttpContext -> Async<HttpContext option> function - therefore, by its very nature, it allows itself to be recalculated for each request, and not calculated once.
source share