Hopac.Plus


Example Usage

 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
#r "Hopac.Core.dll"
#r "Hopac.dll"
#r "Hopac.Plus.dll"
open Hopac
open Hopac.Plus.Collections

let smap = run <| SharedMap.create ()

let printMap smap =
  SharedMap.freeze smap
  |> Job.map (printfn "%A")

let example smap = job {
  let key = "Example"
  do! SharedMap.add key 10 smap
  do! printMap smap

  do! SharedMap.add key 20 smap
  do! printMap smap

  do! SharedMap.mutate key ((*) 5) smap
  do! printMap smap

  do! SharedMap.remove key smap
  do! printMap smap
}

run <| example smap
namespace Hopac
Multiple items
module Hopac

from Hopac

--------------------
namespace Hopac
namespace Hopac.Plus
namespace Hopac.Plus.Collections
val smap : SharedMap<string,int>

Full name: Tutorial.smap
val run : Job<'x> -> 'x

Full name: Hopac.Hopac.run
Multiple items
module SharedMap

from Hopac.Plus.Collections

--------------------
type SharedMap<'k,'v (requires comparison)>

Full name: Hopac.Plus.Collections.SharedMap<_,_>
val create : unit -> Job<SharedMap<'k,'v>> (requires comparison)

Full name: Hopac.Plus.Collections.SharedMap.create
val printMap : smap:SharedMap<'a,'b> -> Job<unit> (requires comparison)

Full name: Tutorial.printMap
val smap : SharedMap<'a,'b> (requires comparison)
val freeze : sm:SharedMap<'k,'v> -> Job<Map<'k,'v>> (requires comparison)

Full name: Hopac.Plus.Collections.SharedMap.freeze
type Job<'T> =

Full name: Hopac.Job<_>
val map : ('x -> 'y) -> Job<'x> -> Job<'y>

Full name: Hopac.Job.map
val printfn : format:Printf.TextWriterFormat<'T> -> 'T

Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.printfn
val example : smap:SharedMap<string,int> -> Job<unit>

Full name: Tutorial.example
val smap : SharedMap<string,int>
val job : JobBuilder

Full name: Hopac.Hopac.job
val key : string
val add : k:'k -> v:'v -> sm:SharedMap<'k,'v> -> Alt<unit> (requires comparison)

Full name: Hopac.Plus.Collections.SharedMap.add
val mutate : k:'k -> v2v:('v -> 'v) -> sm:SharedMap<'k,'v> -> Alt<unit> (requires comparison)

Full name: Hopac.Plus.Collections.SharedMap.mutate
val remove : k:'k -> sm:SharedMap<'k,'v> -> Alt<unit> (requires comparison)

Full name: Hopac.Plus.Collections.SharedMap.remove
Fork me on GitHub