We follow certain conventions in the code samples. Understanding these may help you read and comprehend GPars code samples better.

 * The _leftShift_ operator _<<_ has been overloaded on actors, agents and dataflow expressions (both variables and streams) to mean _send_ a message or _assign_ a value.

{code}
myActor << 'message'

myAgent << {account -> account.add('5 USD')}

myDataflowVariable << 120332
{code}

 * On actors and agents the default _call()_ method has been also overloaded to mean _send_ . So sending a message to an actor or agent may look like a regular method call.

{code}
myActor "message"

myAgent {house -> house.repair()}
{code}

 * The _rightShift_ operator _>>_ in GPars has the _when bound_ meaning. So
 {code}
 myDataflowVariable >> {value -> doSomethingWith(value)}
 {code}
 will schedule the closure to run only after _myDataflowVariable_ is bound to a value, with the value as a parameter.

In samples we tend to statically import frequently used factory methods:
 * GParsPool.withPool()
 * GParsPool.withExistingPool()
 * GParsExecutorsPool.withPool()
 * GParsExecutorsPool.withExistingPool()
 * Actors.actor()
 * Actors.reactor()
 * Actors.fairReactor()
 * Actors.messageHandler()
 * Actors.fairMessageHandler()
 * Agent.agent()
 * Agent.fairAgent()
 * Dataflow.task()
 * Dataflow.operator()

It is more a matter of style preferences and personal taste, but we think static imports make the code more compact and readable.
