h$       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyBSD-3autotaker@gmail.com experimental Safe-Inferred>methodTuple constructormethod Nullary tuple11BSD-3autotaker@gmail.com experimentalNone 9>?V methodMethod a is a function of the form a1 -> a2 -> ... -> an -> m b where m is MonadTypical monads in transformers package are supported. If you want to support other monads (for example M#), add the following boilerplate. >instance Method (M a) where Base (M a) = M Ret (M a) = a Caution Function monad (-> r) cannot be an instance of methodUnderling monad !Base (a1 -> ... -> an -> m b) = mmethodArguments tuple of the method /Args (a1 -> ... -> an -> m b) = a1 :* ... :* anmethodReturn type of the method !Ret (a1 -> ... -> an -> m b) = bmethod Convert method to unary functionmethod&Reconstruct method from unary functionmethodGeneralization of join functionmethod5Insert hooks before/after calling the argument methodmethod5Insert hooks before/after calling the argument methodmethodInsert hooks only before calling the argument method. Because it's free from z* constraint, any methods are supported. method+invoke method taken from reader environment  BSD-3autotaker@gmail.com experimental Safe-Inferred> 7method Matcher for "args ((==2), (>3)) (2 :* 4 :* Nil)Trueargs even (1 :* Nil)False args () NilTrue9method2Convert a tuple of matchers to a matcher of tuples;methodMatcher that matches anything<method synonym of {7 function. Use this function for improving readability=method0Convert a tuple matcher to a tuple-like matcher..args' (\(a, b) -> a * b == 10) (2 :* 5 :* Nil)True.args' (\(a, b) -> a * b == 10) (2 :* 4 :* Nil)False 789:;<= ;<:789=BSD-3autotaker@gmail.com experimentalNone>? Hmethodgenerate a method from Mock DSL. Mock DSL consists of rules. On a call of generated method, the first rule matched the arguments is applied.Imethod matcher `I` value means the method return value if the arguments matches matcher.Jmethod matcher `J` action means the method executes action if the arguments matches matcher.Kmethod matcher `K` action means the method call method. with the arguments if the arguments matches matcher.LmethodL matcher means the method raises a runtime exception if the arguments matches matcher%. The argument tuple is converted to | by using } function.MmethodL fshow matcher means the method raises runtime exception if the arguments matches matcher%. The argument tuple is converted to | by using fshow function.FGHIJKLMGFHIJKLMBSD-3autotaker@gmail.com experimentalNonePmethodMonitor arg ret: is an event monitor of methods, which logs method calls.Tmethodnewtype to compare values via }Vmethod8newtype to implement show instance which shows its type.YmethodY args ret is a function call event`method` represents call identifiercmethodGenerate new instance of Pdmethod0Increment the clock and return the current tick.emethod logs an eventPQSRTUVWXY[Z_^]\`abcde`abY[Z_^]\XVWTUPQSRcdeBSD-3autotaker@gmail.com experimentalNone?}smethod!watchBy fArgs fRet monitor method decorates method so that monitor logs the method calls. This function is suited for monitoring multiple methods.fArgs and fRet: is converter for arguments/return values of given method. foo :: Int -> IO String foo = ... bar :: Int -> String -> IO () bar = ... data MonitorArgs = FooArgs Int | BarArgs (Int,String) deriving(Eq,Show) data MonitorRet = FooRet String | BarRet () deriving(Eq, Show) foo' :: Monitor MonitorArgs MonitorRet -> Int -> IO String foo' monitor = watch monitor (FooArgs . toTuple) FooRet foo bar' :: Monitor MonitorArgs MonitorRet -> Int -> String -> IO () bar' monitor = watch monitor (BarArgs . toTuple) BarRet bar tmethodSimplified version of s*. It is suitable to monitor single method.umethod#Get current event logs from monitorvmethodv countMatcher eventMatcher counts events that matches  eventMatcher , and then the count matches  countMatcherwmethodw matcher- matches method call whose arguments matches matcherxmethod withMonitor f calls f with P, and then returns monitored event logs during the function call in addition to the return value of the function callymethodwithMonitor_ f calls f with P), and returns event logs during the call. PYcstuvwxy YPctsuxyvwBSD-3autotaker@gmail.com experimentalNone79:;<=HIJKLMPYcstuvwxyHIJKLMPYstxywvcu:;<79=        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYYZZ[\]^_`abccdefghijklmnopqrstuvwxyz{|}~%method-0.2.0.0-BzqIWiZzNsH22neBIxkrDqControl.Method.InternalControl.MethodTest.Method.MatcherTest.Method.MockTest.Method.Monitor.InternalTest.Method.MonitorArgs Test.Method:*Nil TupleLikeAsTuple fromTupletoTuple$fTupleLikeNil $fTupleLike:*$fTupleLike:*0$fTupleLike:*1$fTupleLike:*2$fTupleLike:*3$fTupleLike:*4$fTupleLike:*5$fEq:*$fOrd:*$fShow:*$fEqNil$fOrdNil $fShowNilMethodBaseRet uncurryMethod curryMethodliftJoindecorate decorate_decorateBefore_invoke $fMethod->$fMethodWriterT$fMethodWriterT0$fMethodWriterT1$fMethodStateT$fMethodStateT0$fMethodSelectT$fMethodReaderT $fMethodRWST $fMethodRWST0 $fMethodRWST1$fMethodMaybeT$fMethodExceptT $fMethodContT$fMethodAccumT $fMethodST$fMethodEither $fMethod[] $fMethodMaybe$fMethodIdentity $fMethodRIO $fMethodIO ArgsMatcher EachMatcherargsMatcheranythingwhenargs'$fArgsMatcher:*$fArgsMatcher:*0$fArgsMatcher:*1$fArgsMatcher:*2$fArgsMatcher:*3$fArgsMatcher:*4$fArgsMatcher:*5$fArgsMatcherNilMockSpecMockmockup thenReturn thenAction thenMethodthrowNoStubShow throwNoStub$fMonoidMockSpec$fSemigroupMockSpecMonitor monitorTrace monitorClock EqUptoShowShowTypeClockEventEnterLeave eventTick eventArgseventEnterTickeventRetTickunTick newMonitorticklogEvent$fShowShowType$fOrdEqUptoShow$fEqEqUptoShow$fShowEqUptoShow $fEqEvent $fOrdEvent $fShowEvent $fEqShowType $fOrdShowType$fEqTick $fOrdTick $fShowTick $fEnumTickwatchBywatchlistenEventLogtimescall withMonitor withMonitor_,unliftio-core-0.2.0.1-9GVcmaajsglG88oErAZOTVControl.Monad.IO.Unlift MonadUnliftIObaseGHC.BaseidStringGHC.Showshow