To page top

trait InPort[T]  { def ?(): T;  def closeIn;  }
trait OutPort[T] { def !(x: T); def closeOut; }
trait Chan[T] extends InPort[T] with OutPort[T] { def close }
def OneOne[T], N2N[T](writers, readers), OneMany[T], ManyOne[T]
	: Chan[T]
def OneOneBuf[T](size): Chan[T]
def N2NBuf[T](size, writers, readers): Chan[T]
alt( in1 =?=> { x => ... }
   | (guard && in2) =?=> { x => ... }
   | out1 =!=> { expr }
   | (guard && out2) =!=> { expr } ==> { doAfter }
   )
alt(| (for (...) yield ... =?=> ...)) // | on collection

Copyright © 2021 Chua Hou.