úÎnúhrw      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvSafe #$.2349;OT[& Instances of  are ws with nodes of type n), interspersed with annotations of type a,, and perhaps some other extra information.They must satisfy @bifoldMap f (\_ -> mempty) s == foldMap (foldMap f) (toForest s)7Forget about the annotations and return the underlying w. The execution of a  M can make progress by skipping a step, starting a step, or finishing a step. (Provides the substeps that were skipped. 1Provides the substeps that will be executed next.  Provides a - of measurements for the completed substeps.  for the 6 gives the finishing measurement for the current step.-Represents some kind of progress through the  of a   while the plan executes.lThe ascending list of contexts provides the current position of the execution along the hierarchy of steps.NIf the plan only has a linear sequence of steps, the list will have only one .<Represents how far we are along a sequence of sibling steps.#For the already completed steps, a  of measurements is provided.  for the 6 returns the starting measurement of the current step.A w of steps tags of type s) interspersed with measurements of type t.A w of steps tags of type s1 interspersed with monoidal annotations of type w. (A computation that takes inputs of type i and produces outputs of type o! working in the underlying monad m. The x- instance cares only about the outputs, the y/ instance cares about both inputs and outputs.CParts of the computation can be labeled as steps with tags of type s. <Computations can have monoidal resource annotations of type w.[The structure of steps and the monoidal annotations can be inspected before executing the  ."A catamorphism on , that "destroys" the  value from the leaves upwards.Unlike z or y, it allows a more structured analysis of the annotations, by preserving their relationship with the hierarchy of steps.$ Adapt the Step value inside a   without extracting it.%:Use a lens setter to "zoom" the monoidal annotations of a   into a wider monoidal context.&!Change the underlying monad of a  .'$Inspect a plan without executing it.(JDecorate each step tag with its mandatoriness. Useful in combination with .)IDeclare a step by wrapping an existing plan (which may contain substeps).*rDeclare an optional step by wrapping an existing arrow plan. The step will only be executed when the input is {..This function only makes sense when using the y instance of  , because for x<s an effect cannot depend on previously obtained values.:{ * let example :: Plan String () IO () () example = proc () -> do J i <- step "reading" (plan (readMaybe @Int <$> getLine)) -< () 2 skippable "writing" (kplan print) -< i^ in putStr . drawForest . fmap (fmap show) . toForest . mandatoriness . getSteps $ example :}(Mandatory,"reading")(Skippable,"writing")+`Declare a monoidal annotation. The annotation can be later inspected without having to run the  .:Usually the annotations will represent resources that the   is expected to require.,Lift a monadic action to a  %. The input type remains polymorphic.-Lift an | action to a  %. The input type remains polymorphic..Lift a Kleisli arrow to a  ./ Lift a Kleisli arrow working in | to a  .1Pair each step tag s inside a  ' with the corresponding element of the w.UIf the forest doesn't have the same structure as the steps, the function fails with }.¢This function can be useful to annotate each step tag with some information, for example the time duration of the step in a previous execution of the plan. See , 8, and .2ÏA given step might not have been reached yet. It it has been reached, either it has been skipped at a certain time, or started at a certain time. If if has been started, maybe it has already finished, too..This function can be used in combination with  and ~( to render the state of each step for a .6?Forget that there is a plan, get the underlying monadic action.7>Forget that there is a plan, get the underlying Kleisli arrow.8‡Decorate each step tag with either the time the step was skipped, or the time it was started and finished. Useful in combination with .9A catamorphism on s, that "destroys" the  value from the leaves upwards.;/Specify a monadic callback for processing each  update.<2Runs a plan that doesn't need input. It returns a  of J updates that are emitted every time the execution advances through the .  For each ' update, a monadic measurement of type tI is taken. Usually the measurement consists in getting the current time.When the execution finishes, a ! with the measurements for each + is returned, along with the result value. ,Even if the plan didn't have any steps, the A will contain a measurement taken when the computation finished.=Like < , but for y-like  s that take inputs.>A w is a  for which no annotations exist.?. forgets about the measurements and returns a w of step tags.@- forgets about the annotations and returns a w of step tags.J(s always have at least one measurement.  gives the final measurement.P; allows extracting the steps and the annotations together. P  !"5A function that consumes a list of step tags of type s6, surrounded and interleaved with annotations of type wI. Each step is also annotated with its mandatoriness and with the result r. of consuming its substeps, if there were any.#$%&'()*+,-./01234567895A function that consumes a list of step tags of type s7, surrounded and interleaved with measurements of type t‘. Each step is also annotated with either its substeps, if it the step was skipped, or the results of consuming the substeps, if it was executed.:;<-Monadic measurement to be taken on each tick.Plan without input.=-Monadic measurement to be taken on each tick.Plan that takes input.>?@ABCDEFGHIJKLMNOPQRSTU8  !"#$%&'()*+,-./0123456789:;<=P !UTSRQPON"#$%&'()*+,-./01234567MLKJ89:IHGFE DCBA;<= @?>>   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUSafe/  "$%&'()*+,-./126789;<=/ ,-./)*+'("$%1&6<;2 897=€   !"#$%&'(())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡‚ˆ‰Š‹‚Œ€Ž/plan-applicative-2.0.0.1-I83bpvagQbp6FsHHho2k9B Control.PlanControl.Plan.CorebaseData.Bifunctorbimap&bifunctors-5.4.1-4T44Oecc7oBmQFSz9nTeTData.Bitraversable bitraverseData.Bifoldable bifoldMap comonad-5-Eyc9WkfrOnk20DfhEff30dControl.Comonadextract#mmorph-1.0.9-7Fxwo0Ga2nU9I92PguUETdControl.Monad.Morphhoist(streaming-0.1.4.3-12Oh9owwGMOH3UETx1rSCrStreaming.PreludeeffectsSylvantoForestRunStateProgressSkippedStartedFinishedTickContext completedcurrentpendingTimelineTick'Skipped'Started' Finished' Mandatoriness Skippable MandatoryStepsPlan foldSteps foldSteps' bimapSteps zoomSteps hoistPlangetSteps mandatorinessstep skippableforetellplanplanIOkplankplanIO zipSteps'zipSteps completednesscontextCompletednessadaptprogressCompletedness unliftPlan unliftKPlaninstants foldTimeline foldTimeline'onTickrunPlanrunKPlan $fSylvanClown$fSylvanTimeline $fSylvanSteps$fBitraversableProgress$fBifoldableProgress$fBifunctorProgress$fSylvanProgress $fSylvanTick$fBitraversableTick$fBifoldableTick$fBifunctorTick$fBifunctorContext$fComonadTimeline$fBitraversableTimeline$fBifoldableTimeline$fBifunctorTimeline $fMonoidSteps$fBitraversableSteps$fBifoldableSteps$fBifunctorSteps$fProfunctorPlan $fArrowPlan$fCategoryTYPEPlan$fApplicativePlan$fShowMandatoriness$fEqMandatoriness$fOrdMandatoriness$fFunctorSteps$fFoldableSteps$fTraversableSteps $fEqSteps $fShowSteps $fEqTick' $fOrdTick' $fEnumTick' $fShowTick' $fFunctorPlan$fFunctorTimeline$fFoldableTimeline$fTraversableTimeline $fEqTimeline$fShowTimeline$fFunctorContext$fFoldableContext$fTraversableContext $fEqContext $fShowContext$fFunctorProgress$fFoldableProgress$fTraversableProgress $fEqProgress$fShowProgress $fFunctorTick$fFoldableTick$fTraversableTick$fEqTick $fShowTickcontainers-0.5.7.1 Data.TreeForestGHC.Base Applicative Control.ArrowArrow Data.FoldablefoldMapJustghc-prim GHC.TypesIONothing drawForestStreaming.InternalStream