úÎS=OwC      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFCDEFGG)$The initial state of the Mud monad. HYields all accumulated results and removes them from the state. Used by Network.Yogurt.Engine in runMud. Calls  with priority 0. wCreates and installs a hook that watches messages headed to the specified destination and match the specified pattern. )Saves a changed hook, or reactivates it. Disables a hook. 4Yields all current hooks in preferred firing order. *Yields the hook that is currently firing. =Yields the message that triggered the currently firing hook. QYields the part of the triggering message that comes before the matched pattern. 1Yields the regex group from the matched pattern. group 0S yields the complete match; higher indices correspond to the parenthesized groups. PYields the part of the triggering message that comes after the matched pattern. *Creates a variable with an initial value. #Updates a variable to a new value. Yields the variable's current value. 0Updates the variable using the update function. mkTimer interval prog creates a timer that executes prog every interval milliseconds. Disables the timer. "Checks whether a timer is active. $Yields all currently active timers.  Short for  (const True). ‰If the message triggers a hook that passes the specified test, it is fired. Otherwise, the message is passed on to the destination using . HExecutes the hook'(s action based on the matching message. HImmediately write a message to a destination, without triggering hooks. !Invokes withIO, discarding the IO' s result. ,Executes the IO action soon. The computation'Ss result is passed to the function, and the resulting Mud computation is executed. A Result! is a consequence of executing a Mud program. Interval in milliseconds. The abstract Timer type. Yields the timer' s action. Yields the timer' s interval. I1Variables hold temporary, updatable, typed data. !#A Pattern is a regular expression. "DUsed to distinguish between messages going in different directions. %SThe abstract Hook type. Two hooks are considered equal if they were created (using ) at the same time. Hook h1 <+ hook h2 if h1 will match earlier than h2. &Yields the hook' s priority. '*Yields the destination this hook watches. (=Yields the pattern messages must have for this hook to fire. )7Yields the Mud program to execute when the hook fires. *!State internal to the Mud monad. +'The Mud monad is a simple state monad. ,  !"#$%&'()*+,+*%"#$!&'()  ,connect hostname port programJ connects to a MUD and executes the specified program. Input is read from stdin, and output is written to stdout. -|Runs a Mud computation, executes the results (such as sending messages to the screen or the MUD) and returns the computation's result. The MVar is updated. .#Provides a way to output messages. /Used by -; to output messages and update the state during execution. ,-./,/.-0ŽCreates a hook that watches messages headed to the terminal. When fired, the message is passed on to the terminal and the action is executed. 1Like 0, but fires at most once. 2mkAlias command substj creates a hook that watches messages headed to the remote MUD. If the message is or starts with the word command, the command is replaced by subst before being sent to the MUD. 3Like 2, mkArgAlias command subst½ creates a hook that watches messages headed to the remote MUD. But here the whole message is substituted instead of just the first command word, and the substitution depends on the command' s arguments. 4Like 2B, but instead of substituting the command, a program is executed. 5&Creates a timer that fires only once. 63Sends a message to the terminal, triggering hooks. 7PSends a message appended with a newline character to the MUD, triggering hooks. 8;Sends a message to the terminal, without triggering hooks. 9]Sends a message appended with a newline character to the terminal, without triggering hooks. :XSends a message appended with a newline character to the MUD, without triggering hooks. ;(Sends a bell character to the terminal. <startLogging name3 causes all messages to be logged in a file called name-yyyymmdd-hhmm.log$. The used hooks have priority 100. =Stops the logger. >4When called from a hook body, gives hooks that haven'•t been considered yet a chance to match on the currently triggering message. Useful if you want to build a hook that only has a side-effect and doesn'2t want to directly affect the other active hooks. ?Like >=, but allows specification of the message that is passed on. @Like ?F, but also makes the currently firing hook eligible for firing again. AExecutes a shell command. ?  !"#$%&'()*+0123456789:;<=>?@AB0123456789:;B<=>?@A0  !"#$%&'()*+,-./J      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ Yogurt-0.2Network.Yogurt.MudNetwork.Yogurt.EngineNetwork.Yogurt.UtilsNetwork.Yogurt.IONetwork.Yogurt.AnsiNetwork.YogurtemptyMud flushResultsmkHook mkPrioHooksetHookrmHookallHooks triggeredHook matchedLinebeforegroupaftermkVarsetVarreadVar modifyVarmkTimerrmTimer existsTimer allTimerstrigger triggerJustiorunIOwithIOResultNewTimerRunIOSendIntervalTimertAction tIntervalPattern DestinationRemoteLocalHook hPriority hDestinationhPatternhActionMudStateMudconnectrunMudOutput Environment mkTrigger mkTriggerOncemkAlias mkArgAlias mkCommand mkTimerOncereceivesendlnechoecholnechorlnbell startLogging stopLogging matchMore matchMoreOn matchMoreOn'systemLogger writeToTTY splitAtPrompt maybeInputhGetImpatientLinermAnsifireVar