E+<      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$(C) 2015 Edward Kmett and Ted Cooper BSD-style (see the file LICENSE)PEdward Kmett <ekmett@gmail.com> Ted Cooper <anthezium@gmail.com> experimental non-portableSafe7;<=>?AFQTVOThis 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 section Write 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 section Read a shared reference.Build a new shared referenceCopy a shared reference.      1(C) 2015 Edward Kmett, Paul Khuong and Ted Cooper BSD-style (see the file LICENSE)QEdward Kmett <ekmett@gmail.com>, Ted Cooper <anthezium@gmail.com> experimental non-portableNone$3;<=>?FKQTV]$ 4This is a basic 8F thread. It may be embellished when running in a more exotic context.8'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. Writers are serialized using an MVar, readers are able to proceed while writers are updating.;DThis is the basic write-side critical section for an RCU computation>CThis is the basic read-side critical section for an RCU computationAState for an RCU computation.C Global stateG Thread stateCounter for causal ordering.IShared referencesLRun an RCU computation.M?Run an RCU computation in a thread pinned to a particular core.456789:;<=>?@ABCDEFGHIJKLMIJK456789:LM>?@;<=ABCDEFGH456789:;<=>?@ABCDEFGHIJK1(C) 2015 Edward Kmett, Paul Khuong and Ted Cooper BSD-style (see the file LICENSE)PEdward Kmett <ekmett@gmail.com> Ted Cooper <anthezium@gmail.com> experimental non-portable Trustworthy( 468;>ILI8L   >;46$(C) 2015 Edward Kmett and Ted Cooper BSD-style (see the file LICENSE)QEdward Kmett <ekmett@gmail.com>, Ted Cooper <anthezium@gmail.com> experimental non-portableNone$3;<=>?FKQTV7 eThis is a basic iF thread. It may be embellished when running in a more exotic context.i'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. Writers are serialized using an MVar, readers are able to proceed while writers are updating.lDThis is the basic write-side critical section for an RCU computationoCThis is the basic read-side critical section for an RCU computationrState for an RCU computation.t Global statex Thread stateCounter for causal ordering.zShared references}Run an RCU computation.~?Run an RCU computation in a thread pinned to a particular core.efghijklmnopqrstwxyuvz{|}~z{|efghijk}~opqlmnrstuvwxyefghijklmnopqrstuvwxyz{|$(C) 2015 Edward Kmett and Ted Cooper BSD-style (see the file LICENSE)PEdward Kmett <ekmett@gmail.com> Ted Cooper <anthezium@gmail.com> experimental non-portable Trustworthy; egiloz}zi}   oleg      !"#$%&'()*+,-./0123456789::;<==>??@AABCCDEFGHIJJKLMNOPQRSTUVWXYZ[\]^_`abcd::;<==>??@AABCCDefGHIJJKLMNOPQRSTUVWXYZ[\]^_`abcdghhgggircu-0.2.2-q93XTmsJxoKTm7isP8WDQControl.Concurrent.RCU.GCControl.Concurrent.RCU.Class"Control.Concurrent.RCU.GC.InternalControl.Concurrent.RCU.QSBR$Control.Concurrent.RCU.QSBR.InternalMonadRCUReadingWritingThreadforkingjoiningreadingwriting MonadWriting writeSRef synchronize MonadReadingreadSRefMonadNewnewSRefcopySRef$fMonadNewsIdentityT$fMonadNewsMaybeT$fMonadNewsExceptT$fMonadNews'RWST$fMonadNews'RWST0$fMonadNews'StateT$fMonadNews'StateT0$fMonadNewsWriterT$fMonadNewsWriterT0$fMonadNewsReaderT$fMonadReadingsIdentityT$fMonadReadingsMaybeT$fMonadReadingsExceptT$fMonadReadings'RWST$fMonadReadings'RWST0$fMonadReadings'StateT$fMonadReadings'StateT0$fMonadReadingsWriterT$fMonadReadingsWriterT0$fMonadReadingsReaderT$fMonadWritingsMaybeT$fMonadWritingsExceptT$fMonadWritingsIdentityT$fMonadWritings'RWST$fMonadWritings'RWST0$fMonadWritings'StateT$fMonadWritings'StateT0$fMonadWritingsWriterT$fMonadWritingsWriterT0$fMonadWritingsReaderT$fMonadRCUsWriterT$fMonadRCUsWriterT0$fMonadRCUsMaybeT$fMonadRCUsExceptT$fMonadRCUsIdentityT$fMonadRCUsReaderT RCUThread rcuThreadId rcuThreadVarRCUunRCU WritingRCU runWritingRCU ReadingRCU runReadingRCURCUStatercuStateGlobalCounterrcuStateGlobalVersionrcuStateThreadCountersVrcuStateWriterLockVrcuStateMyCounterrcuStatePinnedSRefunSRefrunRCUrunOnRCU $fEqCounter$fMonadReadingSRefReadingRCU$fMonadNewSRefReadingRCU$fMonadPlusReadingRCU$fAlternativeReadingRCU$fMonadReadingRCU$fApplicativeReadingRCU$fMonadWritingSRefWritingRCU$fMonadReadingSRefWritingRCU$fMonadNewSRefWritingRCU$fMonadPlusWritingRCU$fAlternativeWritingRCU$fMonadWritingRCU$fApplicativeWritingRCU $fMonadIORCU$fMonadNewSRefRCU $fMonadRCU$fApplicativeRCU$fMonadRCUSRefRCU$fEqSRef$fFunctorReadingRCU$fFunctorWritingRCU $fFunctorRCUrcuStateThreadCountersRrcuStateThreadCountersLockVCounterVersion