Îõ³h&‹«      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™ š › œ  ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª  Safe-Inferredú unique-logicŠDuplicate ways to determine a variable value are allowed as long as every way yields the same result. "Same" is meant with respect to the « class. unique-logicØDuplicate ways to determine a variable value are always considered an error. If you use Rules or  Expression?s this is not a good idea, since every rule is over-determined. unique-logicäIgnore duplicate ways to determine a variable. The chosen value depends on the particular algorithm. Safe-Inferred0  )(&%$"!#' )(&%$"!#' Safe-Inferredn- unique-logicÃBuild a regular monad for generic monad transformer and monad. The ¬Õ type allows us to force the kind (m :: * -> *) without using ExplicitKindSignatures./ unique-logic:Provide the methods that make a transformed monad a monad.-./10234/10-.234 Safe-InferredPP unique-logic#This function allows to generalize N and OË to more arguments. You could achieve the same with nested applications of assignment3 (,).<=>?@ABCDEFGHIJKLMNOPQBC=>MKL?@ADENO arg x <*> arg yBuilding rules with k0 provides more granularity than using auxiliary s rules!q unique-logicøWe are not able to implement a full Ord instance including Eq superclass and comparisons, but we need to compute maxima.s unique-logicConstruct or decompose a pair.defghijklmnopqrsefghijdklpomnqrso4p0 Safe-Inferred ±xy{z|~}€‚ƒ„…†‡ˆ‰‚ƒ€„…|~}y{zx†‡ˆ‰ Safe-Inferred ?@ABCDEFG*HIJKLMNOPQRSTUVWXYZ?@>[\]^_`abcdefD*KghijVWklmnaob45\]HppqrrsttuvvwxIyz{|}~€‚ƒ„…†‡H*I H u v v I K ˆ ‰ ‡ H * I J K L M { {Š‹ŒŽ+‘+unique-logic-0.4.0.1-FsmJCC97QpQIVAsCtyQyIfUniqueLogic.ST.DuplicateUniqueLogic.ST.Example.TermUniqueLogic.ST.MonadTransUniqueLogic.ST.SystemUniqueLogic.ST.RuleUniqueLogic.ST.ExpressionUniqueLogic.ST.Example.VerifyUniqueLogic.ST.System.LabelUniqueLogic.ST.Example.LabelUniqueLogic.ST.System.SimpleUniqueLogic.ST.Example.Rule!UniqueLogic.ST.Example.ExpressionVerifyForbidIgnoreCaccept$fC(,,)$fC(,)$fFloatingIgnore$fFractionalIgnore $fNumIgnore $fCIgnore$fFloatingForbid$fFractionalForbid $fNumForbid $fCForbid$fFloatingVerify$fFractionalVerify $fNumVerify $fCVerify $fEqVerify $fOrdVerify $fShowVerify $fEqForbid $fOrdForbid $fShowForbid $fEqIgnore $fOrdIgnore $fShowIgnoreNameTConstVarMaxAddSubMulDivAbsSignum $fFractionalT$fNumT$fShowTWrappointbindwrapunwraplift $fCMaybeT$fCExceptionalT $fCWriterT $fCIdentityT $fMonadWrap$fApplicativeWrap $fFunctorWrapApplydoUpdateFragilebreakVariableglobalVariable localVariableconstantsolvequery queryForbid queryIgnore queryVerify updateIfNewupdateAndCheck simpleUpdate assignment2 assignment3argrunApply$fMonadT$fApplicativeT $fFunctorT$fFragileExceptionalT$fApplicativeApply$fFunctorApplygeneric2generic3equmaxpairaddmulsquarepow fromVariable fromRule1 fromRule2 fromRule3sqrsqrt=!==:=maximum ExceptionAnonymousExceptionTrackrunTrack TrackedNumberAssignsAssigntn1tn2 inconsistencyupdateexample$fCTrackedNumber$fFractionalTrackedNumber$fNumTrackedNumber$fCTrack $fCTrack0$fMonadTransTrack $fMonadTrack$fApplicativeTrack$fFunctorTrack$fShowException$fShowTrackedNumber $fShowAssignrule expressionghc-prim GHC.ClassesEqbaseData.Functor.ConstGHC.Base Applicative