Future in f# is this an unavoidable use of a mutable variable?
This looks pretty close to a Clojure Promise. On .NET, the similar type is (very Microsoftish) called TaskCompletionSource&lt;TResult&gt;.

However, you should consider if F# Lazy Computations isn't what you need.