anchor.diff:    signal f1;signal f2; signal f3; signal f4;signal f5
     fork p1; fork p2; fork p3; fork p4
     
  +*)
positive.code:    member def.async<'a>() = Asynchronous.CreateChannel<'a>(def)
     member def.sync<'a,'r>() = Synchronous<'r>.CreateChannel<'a>(def)
     member def.sync<'a>() = Synchronous<'a>.CreateChannel(def)   
    
  let buffer<'a>() =
      let def = Join.Create(2)
      let put = Asynchronous.CreateChannel<'a>(def)
  
negative.code: 
  
  open Microsoft.Research.Joins
  type SC = Join.Scalable
  type LB = Join.LockBased
  type Flavor = LB
  
  // some tentative helper functions to avoid F#'s  c.Invoke() syntax for channel sends
  // perhaps we should just stick to c.Invoke()
  