h$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}BSD-3autotaker@gmail.com experimental Safe-Inferred>methodTuple constructormethod Nullary tuple11BSD-3autotaker@gmail.com experimentalNone 9>?f 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 ~* 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>? Jmethodgenerate a method from Mock DSL. Mock DSL consists of rules. On a call of generated method, the first rule matched the arguments is applied.Kmethod matcher `K` value means the method return value if the arguments matches matcher.Lmethod matcher `L` action means the method executes action if the arguments matches matcher.Mmethod matcher `M` action means the method call method. with the arguments if the arguments matches matcher.NmethodN matcher means the method throws a F if the arguments matches matcher%. The argument tuple is converted to  by using  function.OmethodN fshow matcher means the method throws a F if the arguments matches matcher%. The argument tuple is converted to  by using fshow function. FGHIJKLMNO IHJKLMNOFGBSD-3autotaker@gmail.com experimentalNoneTmethodMonitor arg ret: is an event monitor of methods, which logs method calls.Xmethodnewtype to compare values via Zmethod8newtype to implement show instance which shows its type.]method] args ret is a function call eventdmethodd represents call identifiergmethodGenerate new instance of Thmethod0Increment the clock and return the current tick.imethod logs an eventTUWVXYZ[\]_^cba`defghidef]_^cba`\Z[XYTUWVghiBSD-3autotaker@gmail.com experimentalNone?wmethod!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 xmethodSimplified version of w*. It is suitable to monitor single method.ymethod#Get current event logs from monitorzmethodz countMatcher eventMatcher counts events that matches  eventMatcher , and then the count matches  countMatcher{method{ matcher- matches method call whose arguments matches matcher|method withMonitor f calls f with T, and then returns monitored event logs during the function call in addition to the return value of the function call}methodwithMonitor_ f calls f with T), and returns event logs during the call. T]gwxyz{|} ]Tgxwy|}z{BSD-3autotaker@gmail.com experimentalNone79:;<=FGJKLMNOT]gwxyz{|}JKLMNOFGT]wx|}{zgy:;<79=        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYYZ[\\]]^_`abcdeffghijklmnopqrstuvwxyz{|}~%method-0.1.0.0-2ctxPu1NWvh5gSnGYvX5b1Control.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$fArgsMatcherNilNoStubExceptionMockSpecMockmockup thenReturn thenAction thenMethodthrowNoStubShow throwNoStub$fMonoidMockSpec$fSemigroupMockSpec$fExceptionNoStubException$fShowNoStubExceptionMonitor 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