Emily Taylor, despite being reunited with her husband from prison, becomes severely depressed with emotional episodes and suicide attempts. Her psychiatrist, Jonathan Banks, after conferring with her previous doctor, eventually prescribes an experimental new medication called Ablixa. The plot thickens when the side effects of the drug lead to Emily killing her husband in a "sleepwalking" state. With Emily plea-bargained into mental hospital confinement and Dr. Banks' practice crumbling around him, the case seems closed. However, Dr. Banks cannot accept full responsibility and investigates to clear his name. What follows is a dark quest that threatens to tear what's left of his life apart even as he discovers the diabolical truth of this tragedy. Written by Kenneth Chisholm (kchishol@)
Side effects should be avoided where possible. Any combination of concurrency with shared state will commonly demand the need for complex locking, deep understanding of CPU architectures and how they work with the locking and optimization features of the language you use. The simple and preferred approach is to avoid shared state, favor immutable data types and utilize query composition and transformation. Hiding side effects into Where or Select clauses can make for very confusing code. If a side effect is required, then the Do method expresses intent that you are creating a side effect by being explicit.