úÎKXF<8      !"#$%&'()*+,-./01234567 Trustworthy -2346:<BJKMA class for implementing actions on a backend. E.g Run IO Output provides an interpreter for the Output action in the IO monad.”Subsumption of two functors. You shouldn't define any of your own instances of this when writing back-ends, rely only on GeneralizedNewtypeDeriving.Coproduct of two functorsA  Wizard b a. is a conversation with the user via back-end b! that will result in a data type a, or may fail. A H is made up of one or more "primitives" (see below), composed using the 8, 9 and : instances. The :p instance is, as you might expect, a maybe-style cascade. If the first wizard fails, the next one is tried. ;( can be used to induce failure directly.The z constructor is exported here for use when developing backends, but it is better for end-users to simply pretend that N is an opaque data type. Don't depend on this unless you have no other choice.‹s are, internally, just a maybe transformer over a free monad built from some coproduct of functors, each of which is a primitive action.A string for a promptWInjection function for free monads, see "Data Types a la Carte" from Walter Swierstra, Chttp://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf!Run a wizard using some back-end.  <=>?@AB      <=>?@AB  Trustworthy3JKOutput a string. Does not fail.5Output a string followed by a newline. Does not fail.gRead one line of input from the user. Cannot fail (but may throw exceptions, depending on the backend).jRead a single character only from input. Cannot fail (but may throw exceptions, depending on the backend).gRead one line of input, with some default text already present, before and/or after the editing cursor.ARead one line of password input, with an optional mask character.aRetry produces a wizard that will retry the entire conversation again if it fails. It is simply retry x = x <|> retry x. Same as +, except an error message can be specified.!x `defaultTo` y will return y if x fails, e.g parseRead line `defaultTo` 0."Like C&, except the function may be partial (D causes the wizard to fail).# validator pL causes a wizard to fail if the output value does not satisfy the predicate p.$Simply validator (not . null)1, makes a wizard fail if it gets an empty string.%NMakes a wizard fail if it gets an ordered quantity outside of the given range.&Simply  parser readP. Attaches a simple read parser to a .'5Translate a maybe value into wizard success/failure. (7Ensures that a maybe value satisfies a given predicate.)A read-based parser for the " modifier.Text to the left of the cursorText to the right of the cursorMask character, if any. !"#$%&'()E  !"#$%&'()   !"#$%&'() !"#$%&'()E Trustworthy +-2346BJK,:Haskeline supports all the following features completely. -†The Haskeline back-end will throw this exception if EOF is encountered when it is not expected. Specifically, when actions such as F return D./?Modifies a wizard so that it will run with different Haskeline G to the top level input monad.0¼A simple identity function, used to restrict types if the type inferred by GHC is too general. You could achieve the same effect with a type signature, but this is slightly less typing.*+,H-./I0JKLMNOPQR*+,-./0-.,0/*+*+,H-./I0JKLMNOPQR Trustworthy246BJK1The 1? backend supports only simple input and output. Support for  and , features can be added with a shim from . 2¼A simple identity function, used to restrict types if the type inferred by GHC is too general. You could achieve the same effect with a type signature, but this is slightly less typing.1S2TUVWX12121S2TUVWX Trustworthy $+246BJK3The 3? backend supports only simple input and output. Support for  and , features can be added with a shim from System.Console.Wizard.Shim. 4QThe pure backend is actually just a simple state monad, with the following state.59Thrown if the wizard ever unexpectedly runs out of input.7 Run a wizard in the Pure backend3Y4567Z[\]^_`abc34567356743Y4567Z[\]^_`abcd           !"#$%&'())*++,-./012234564784594:;<=>?@AB47C4DEFGHIGJK*LMNOPQRSTU.VWXYZ0[\]^_`abcde wizards-1.0.2System.Console.Wizard.InternalSystem.Console.WizardSystem.Console.Wizard.HaskelineSystem.Console.Wizard.BasicIOSystem.Console.Wizard.PureShim ArbitraryIOPasswordLinePrewritten CharacterLineOutputLnOutputRun runAlgebra:<::+:InrInlWizard PromptStringinjectrunoutputoutputLnline characterlinePrewrittenpasswordretryretryMsg defaultToparser validatornonEmptyinRange parseRead liftMaybeensurereadP WithSettings Haskeline UnexpectedEOF withSettings haskelineBasicIObasicIOPure PureState UnexpectedEOIrunPurebaseControl.Applicative ApplicativeGHC.BaseMonad Alternative Control.Monadmzeroinjrun'$fFunctorArbitraryIO $fRunb:+: $f:<:f:+: $f:<:f:+:0$f:<:fffmap Data.MaybeNothing$fMonadIOWizardhaskeline-0.7.1.2System.Console.Haskeline getInputLineSystem.Console.Haskeline.InputTSettingsmEof$fRunInputTWithSettings$fRunInputTArbitraryIO$fRunInputTPassword$fRunInputTLinePrewritten$fRunInputTCharacter$fRunInputTLine$fRunInputTOutputLn$fRunInputTOutput$fExceptionUnexpectedEOF$fRunIOArbitraryIO$fRunIOCharacter $fRunIOLine$fRunIOOutputLn $fRunIOOutput getPureLine crashIfNull getPureChar outputPure outputLnPure$fRunStateTCharacter$fRunStateTLine$fRunStateTOutputLn$fRunStateTOutput$fExceptionUnexpectedEOI