๚ฮงไ อf      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde None xTH function for building types and functions to ensure the functioning of the chain enclosed in each other's effectsfghijklmnopqrstuvwxyz{|}~‚The name of the new type - the element chain effects. Based on this name mkEff will create new names with prefixes and suffixes.The type of effect. e.g. State or Reader. bThe type used in the first argument runEEEE and / or in the result of runEEEE. For example, for State' effect, of items this type used in get, put, modify.3The name of previous (outer) element chain effects.fghijklmnopqrstuvwxyz{|}~Main module of TH Eff package. (c) Kolodezny Diver, 2015GPL-3kolodeznydiver@gmail.com experimentalPortableNone !"357>IN fThe first effect in a chain of monadic effects. The chain of effects should start or that type, or NoEff.iHelper class to transfer the monadic action effects by chain. Instances of this class are created in mkEff.CHelper data type for transfer the monadic action effects by chain. mThe first effect in a chain of effects not use monads. The chain of effects should start or that type, or Lift (See below.) aHelper class to transfer the action effects by chain. Instances of this class are created in mkEff.The Monad of effectsThis function is used in the % generated runEEEE... functions. > _effNoEff _ = error "THEff: Attempting to call the effect NoEff that does not have any actions!"This function is used in the 9 generated runEEEE... functions. Do not use it alone.Lift a Monad to an Effect.This function is used in the mkEff9 generated runEEEE... functions. Do not use it alone. €‚ƒ      €‚ƒNone4>INResult type of runEEEE. GType of fourth argument of runEffReader and first argument of runEEEE. LType implements link in the chain of effects. Constructors must be named -{EffectName}{Outer|WriterAction|WriterResult}- and have a specified types of fields. - m - Or Monad (if use the ") or phantom type - stub (if used  ). - o - Type of outer effect. - a5 - The result of mkEff generated runEEEE... function.Actually, the effect type - v+ - Type - the parameter of the effect. - e - mkEff generated type.This function is used in the c generated runEEEE functions and typically in effect action functions. Calling the effect action.MThe main function of the effect implementing. This function is used in the  generated runEEEE functions. Get reader value 'Get and convert the value of the reader „The outer effect function"The chain of effects link wrapper.$The chain of effects link unwrapper.(The initial value of argument of effect.   „ None4>IN !Result type of runEEEE. "FType of fourth argument of runEffState and first argument of runEEEE. #LType implements link in the chain of effects. Constructors must be named -{EffectName}{Outer|WriterAction|WriterResult}- and have a specified types of fields. - m - Or Monad (if use the ") or phantom type - stub (if used  ). - o - Type of outer effect. - a5 - The result of mkEff generated runEEEE... function.'Actually, the effect type - v+ - Type - the parameter of the effect. - e - mkEff generated type.(This function is used in the c generated runEEEE functions and typically in effect action functions. Calling the effect action.)MThe main function of the effect implementing. This function is used in the  generated runEEEE functions. *Get state value+Put state value,Modify state value- 4 stateOnly runExample1 123 === snd (runExample1 123). 7 withoutState runExample1 123 === fst (runExample1 123)!"#$%&'…()The outer effect function"The chain of effects link wrapper.$The chain of effects link unwrapper.(The initial value of argument of effect.*+,-State effect runEEEE function)The initial value of argument of effect. Eff (MyState m ...) ... .State effect runEEEE function)The initial value of argument of effect. Eff (MyState m ...) ... !"#$%&'()*+,-.'#$%&"!()*+,-. !"#$%&'…()*+,-.None4>IN/Result type of runEEEE. 0GType of fourth argument of runEffExcept and first argument of runEEEE. 1LType implements link in the chain of effects. Constructors must be named -{EffectName}{Outer|WriterAction|WriterResult}- and have a specified types of fields. - m - Or Monad (if use the ") or phantom type - stub (if used  ). - o - Type of outer effect. - a5 - The result of mkEff generated runEEEE... function.5Actually, the effect type - v+ - Type - the parameter of the effect. - e - mkEff generated type.6This function is used in the c generated runEEEE functions and typically in effect action functions. Calling the effect action.7MThe main function of the effect implementing. This function is used in the  generated runEEEE functions. 8 Throw effect specific exception.9:Throw effect specific exception if first argument is True. /012345†67The outer effect function"The chain of effects link wrapper.$The chain of effects link unwrapper.1The argument of effect. Except value map. Usualy id.89 /0123456789 512340/6789/012345†6789None4>IN:Result type of runEEEE. ;FType of fourth argument of runEffCatch and first argument of runEEEE. <LType implements link in the chain of effects. Constructors must be named -{EffectName}{Outer|WriterAction|WriterResult}- and have a specified types of fields. - m - Or Monad (if use the ") or phantom type - stub (if used  ). - o - Type of outer effect. - a2 - The result of mkEff generated runEEEE function.@Actually, the effect type - v+ - Type - the parameter of the effect. - e - mkEff generated type.AThis function is used in the c generated runEEEE functions and typically in effect action functions. Calling the effect action.BMThe main function of the effect implementing. This function is used in the  generated runEEEE functions. C Throw effect specific exception.D:Throw effect specific exception if first argument is True. :;<=>?@‡ABThe outer effect function"The chain of effects link wrapper.$The chain of effects link unwrapper.=The argument of effect. Checking and/or correction function. CD :;<=>?@ABCD @<=>?;:ABCD:;<=>?@‡ABCDNone4>INEResult type of runEEEE. FLType implements link in the chain of effects. Constructors must be named -{EffectName}{Outer|WriterAction|WriterResult}- and have a specified types of fields. - m - Or Monad (if use the ") or phantom type - stub (if used  ). - o - Type of outer effect. - a5 - The result of mkEff generated runEEEE... function.JActually, the effect type - v+ - Type - the parameter of the effect. - e - mkEff generated type.KThis function is used in the c generated runEEEE functions and typically in effect action functions. Calling the effect action.LMThe main function of the effect implementing. This function is used in the  generated runEEEE functions. MAdd value to monoid. EFGHIJˆKLThe outer effect function"The chain of effects link wrapper.VThe chain of effects link unwrapper. -> WriterArgT v -- unused argument!M EFGHIJKLM JFGHIEKLMEFGHIJˆKLMNone4>INNResult type of runEEEE. OFType of fourth argument of runEffFresh and first argument of runEEEE. PLType implements link in the chain of effects. Constructors must be named -{EffectName}{Outer|WriterAction|WriterResult}- and have a specified types of fields. - m - Or Monad (if use the ") or phantom type - stub (if used  ). - o - Type of outer effect. - a5 - The result of mkEff generated runEEEE... function.TActually, the effect type - v+ - Type - the parameter of the effect. - e - mkEff generated type.UThis function is used in the c generated runEEEE functions and typically in effect action functions. Calling the effect action.VMThe main function of the effect implementing. This function is used in the  generated runEEEE functions. WGet a unique value. NOPQRST‰UVThe outer effect function"The chain of effects link wrapper.$The chain of effects link unwrapper.(The initial value of argument of effect.W NOPQRSTUVW TPQRSONUVWNOPQRST‰UVWNone4>IN XResult type of runEEEE. YJType of fourth argument of runEffValidator and first argument of runEEEE. ZLType implements link in the chain of effects. Constructors must be named -{EffectName}{Outer|WriterAction|WriterResult}- and have a specified types of fields. - m - Or Monad (if use the ") or phantom type - stub (if used  ). - o - Type of outer effect. - a5 - The result of mkEff generated runEEEE... function.^Actually, the effect type - v+ - Type - the parameter of the effect. - e - mkEff generated type._This function is used in the c generated runEEEE functions and typically in effect action functions. Calling the effect action.`MThe main function of the effect implementing. This function is used in the  generated runEEEE functions. a?Check the conditions specified by the first argument of runEEEEbvalidator returns Right v# if the predicate returns True and Left v else.c$If the value is outside this range, c/ sets the value of the range. Always returns Right. dright ~(Right v) = veRIf the runEEEE return value is out of range, it is set on the border of the range.XYZ[\]^Š_`The outer effect function"The chain of effects link wrapper.$The chain of effects link unwrapper.4The argument of effect. A value validator function. ab predicatevaluecThe lower limit of the range.The upper limit of the range The valuede!Validator effect runEEEE functionThe lower limit of the range.The upper limit of the range.Eff (MyValidator m ...) ... XYZ[\]^_`abcde^Z[\]YX_`abcde XYZ[\]^Š_`abcde‹     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl m n o p p q r s t u v w x y z { | } ~  €  ‚ ƒ „ …†‡ˆ‰#.<GQ[eŠTHEff_2cHdz1nRkluEp9TdyQlxz1 Control.THEffControl.THEff.ReaderControl.THEff.StateControl.THEff.ExceptionControl.THEff.CatchControl.THEff.WriterControl.THEff.FreshControl.THEff.ValidatorControl.THEff.TH.InternalmkEffLiftLift_ LiftResult EffClassMeffLifttoEffMLift'NoEffunNoEffEffClass effActiontoEffEffrunEffeffNoEffrunNoEffliftrunLift ReaderResT ReaderArgTReader ReaderOuter ReaderAction ReaderResultReader' effReader runEffReaderaskasks StateResT StateArgTState StateOuter StateAction StateResultState'effState runEffStategetputmodify stateOnly withoutState ExceptResT ExceptArgTExcept ExceptOuter ExceptAction ExceptResultExcept' effExcept runEffExceptthrowExcthrowIf CatchResT CatchArgTCatch CatchOuter CatchAction CatchResultCatch'effCatch runEffCatch throwCtch throwCtchIf WriterResTWriter WriterOuter WriterAction WriterResultWriter' effWriter runEffWritertell FreshResT FreshArgTFresh FreshOuter FreshAction FreshResultFresh'effFresh runEffFreshfresh ValidatorResT ValidatorArgT ValidatorValidatorOuterValidatorActionValidatorResult Validator' effValidatorrunEffValidatorchk validatorrangeright withRange InstnType InstnAction InstnOuterDescrEffdModuledName dEffModuledEffNamedType splitLastgetModuleAndNameparseConmkN_E mkEffName' mkPrimName mkTypePrimmkCon mkTypeMainlookEff lookEffType lookEffValue lookEffFnmkInstnis2armkRunFun$fEffClassMmLift $fMonadEff$fApplicativeEff $fFunctorEff