let mutable _value: 'a option = None
if _value.IsSome then failwith "can only resolve once"
member x.IsResolved with get () = _value.IsSome
| None -> failwith "hasn't resolved yet"
let testHttpGet response =
let urlFuture = Future<string>()
let get, urlFuture = testHttpGet "resp"
let result = get "http://test"
printfn "result %s" result
printfn "future %s" urlFuture.Value