-'W      SafeOT A  (Model s a b) converts a stream of (a)s into a stream of (b)%s while interacting with a state (s)An effectful sink Vcontramap f (v1 <> v2) = contramap f v1 <> contramap f v2 contramap f mempty = memptyA concurrent source Bfmap f (c1 <> c2) = fmap f c1 <> fmap f c2 fmap f mempty = mempty Create a  from an  0Think of the type as one of the following types: okeeps :: Prism' a b -> Controller a -> Controller b keeps :: Traversal' a b -> Controller a -> Controller b(keeps prism controller) only emits values if the prism matches the  controller 's output. 4keeps (p1 . p2) = keeps p2 . keeps p1 keeps id = id Fkeeps p (c1 <> c2) = keeps p c1 <> keeps p c2 keeps p mempty = mempty  Create a  from a sink  Create a  from a ! 0Think of the type as one of the following types: [handles :: Prism' a b -> View b -> View a handles :: Traversal' a b -> View b -> View a(handles prism view) only runs the view if the prism matches the input. <handles (p1 . p2) = handles p1 . handles p2 handles id = id Nhandles p (v1 <> v2) = handles p v1 <> handles p v2 handles p mempty = mempty  Create a  from a " ;asPipe (p1 <-< p2) = asPipe p1 . asPipe p2 asPipe cat = id  Connect a , , and 3 and initial state into a complete application. Connect a , , and _ and initial state into a complete application over arbitrary monad given a morphism to IO.#$%   Initial state Program logicEffectful output and inputReturns final stateMonad morphism Initial state Program logicEffectful output and inputReturns final stateb&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW"XYZ[\]^_`abcdefg hijklmnopqrstuv   #$% Safe .Fork managed computation in a new thread. See  source for usage example. Create a  from a W, using the given mIf you're not sure what m to use, try oRead lines from standard inputRead lines from a filew? values from a file, one value per line, skipping failed parses.Emit empty values spaced by a delay in seconds Create a  from a XWrite lines to standard outputWrite lines to a filex% values to a file, one value per line Read from a y using a  z Write to a y using a  z @Setup action returning thread's main, managed value, finalizer.   {      !"#$%&'()*+,-./012342562572582592:;2<=2<>2?@2?A2?B2?C2?D2EF2EG2HI25J25K25LMNOMNPQRSQRTQRUQRVWXYWXZ[\[][^[_[`[a[b[c[d[e[f[g[h[i[j[k[l[m[n[o-p-q-r-s-t-u-vwxwyz{|'(}'(~'('('('('('('('()'('('('('('('('('('('(WWW2222 mvc-1.1.5-79MDOyIvKETFHcdG7t9LqDMVC MVC.Prelude$managed-1.0.5-83xU3i5xYzoBicHocI7GYoControl.Monad.ManagedmanagedManaged"pipes-4.3.4-EdJRymDRrdF6E5vBcIpxE9 Pipes.PreludeloopModelModelMView ControllerasInputkeepsasSinkasFoldhandlesasPiperunMVC generalizeMVC$fCategoryTYPEModelM$fContravariantView $fMonoidView$fMonoidController$fFunctorController forkManagedproducer stdinLinesinLinesinReadtickconsumer stdoutLinesoutLinesoutShowinHandle outHandle.pipes-concurrency-2.0.7-JYBDAUepiWBEHNZKMno15hPipes.ConcurrentInput"foldl-1.3.0-FCtlCjTDM92A62nruK2uxA Control.FoldlFoldM Pipes.CorePipeAsPipeAsFoldAsInputbase Data.FoldableFoldableGHC.BaseMonoidmemptymappendmconcat System.Mem performGCControl.Monad.IO.ClassMonadIOliftIO GHC.Conc.SyncreadTVar newTVarIO atomicallyforkIOSTM Data.Monoid<>First Data.Functorvoid MonadPlusmzeromplus(contravariant-1.4-2ZEIQcIYz4Q4N5hzlLOWcgData.Functor.Contravariant Contravariant contramap#mmorph-1.0.9-BlUMuETLS27BjTIGbug5LIControl.Monad.MorphMFunctorhoistMMonadembedtransformers-0.5.2.0Control.Monad.Trans.Class MonadTransliftPipes<-<discardeveryeachnextrunListT>->cat~<>~await<~~>foryieldListTSelect enumerate EnumerabletoListT runEffectEffectProducerConsumerEffect' Producer' Consumer'Pipes.InternalProxyX"stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88VeControl.Concurrent.STM.TVar mkWeakTVarnewestlatestbounded unbounded withSpawnspawn'spawn fromInputtoOutputrecvOutputsendBufferBoundedSingle UnboundedLatestNewestNewData.Functor.ConstantConstant getConstant Text.ReadreadGHC.ShowshowGHC.IOFilePathGHC.IO.Handle.TypesHandle