úÎ#S!      (C) 2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> experimental non-portableNone-134579>CILNThis is a basic F thread. It may be embellished when running in a more exotic context.'This is an RCU computation. It can use  and , to form new threads, and then you can use  and ƒ to run classic read-side and write-side RCU computations. Contention between multiple write-side computations is managed by STM.DThis is the basic write-side critical section for an RCU computation CThis is the basic read-side critical section for an RCU computation OThis is the executor service that can fork, join and execute critical sections.A read-side critical sectionA write-side critical sectionThreads we can fork and join Fork a thread Join a thread Run a read-side critical section!Run a write-side critical section%This is a write-side critical sectionWrite to a shared reference.Synchronize with other writers.No other writer can straddle this time bound. It will either see writes from before, or writes after, but never some of both!$This is a read-side critical sectionRead a shared reference.Build a new shared referenceShared referencesCopy a shared reference. Run an RCU computation.S  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR!  !   =   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR(C) 2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> experimental non-portable Trustworthy  (C) 2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett <ekmett@gmail.com> experimental non-portable Trustworthy     S        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRrcu_5FkWWkpRoTx1IFRHF9BCk7Control.Concurrent.RCUControl.Concurrent.RCU.InternalControl.Concurrent.RCU.Class RCUThread rcuThreadId rcuThreadVarRCUunRCU WritingRCU runWritingRCU ReadingRCU runReadingRCUMonadRCUReadingWritingThreadforkingjoiningreadingwriting MonadWriting writeSRef synchronize MonadReadingreadSRefMonadNewnewSRefSRefunSRefcopySRefrunRCU $fMonadIORCU$fMonadRCUsRCU$fMonadNewsRCU $fMonadRCU$fApplicativeRCU$fMonadWritingsWritingRCU$fMonadReadingsWritingRCU$fMonadNewsWritingRCU$fMonadPlusWritingRCU$fAlternativeWritingRCU$fMonadWritingRCU$fApplicativeWritingRCU$fMonadReadingsReadingRCU$fMonadNewsReadingRCU$fMonadRCUsWriterT$fMonadRCUsWriterT0$fMonadRCUsMaybeT$fMonadRCUsExceptT$fMonadRCUsIdentityT$fMonadRCUsReaderT$fMonadWritingsMaybeT$fMonadWritingsExceptT$fMonadWritingsIdentityT$fMonadWritingsRWST$fMonadWritingsRWST0$fMonadWritingsStateT$fMonadWritingsStateT0$fMonadWritingsWriterT$fMonadWritingsWriterT0$fMonadWritingsReaderT$fMonadReadingsIdentityT$fMonadReadingsMaybeT$fMonadReadingsExceptT$fMonadReadings'RWST$fMonadReadings'RWST0$fMonadReadings'StateT$fMonadReadings'StateT0$fMonadReadingsWriterT$fMonadReadingsWriterT0$fMonadReadingsReaderT$fMonadNewsIdentityT$fMonadNewsMaybeT$fMonadNewsExceptT$fMonadNews'RWST$fMonadNews'RWST0$fMonadNews'StateT$fMonadNews'StateT0$fMonadNewsWriterT$fMonadNewsWriterT0$fMonadNewsReaderT