úÎmĄfĸj      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiTypes about ActionDescription Toshio Ito <debug.ito@gmail.com>SafeOT Class for something describable.)Human-readable description of an action. 6 is used to describe the current binding to the user.-Data types and type classes about front-ends. Toshio Ito <debug.ito@gmail.com>SafeOTInterface to the front-end. s! is the state of the front-end, i is the input.Default  for inputsFAction to grab (or capture) the specified input symbol on the device. 0Action to release the grab for the input symbol.IAction to retrieve the next event. It should block if no event is queued. Event from the front-end. s is the state of the front-end. i is the input. "An event that a new input is made. -An event that the front-end state is changed.     Types about number pads Toshio Ito <debug.ito@gmail.com>SafeOT *Number pad key input with NumLock enabled.+Number pad key input with NumLock disabled.$  !"#$%&'()*+,-./0"  !"#$%&'()*+,-." !"#$%&'()*+,-.   !"#$%&'()*+,-./0Functions to build Binding Toshio Ito <debug.ito@gmail.com>NoneIOT#;A monad to construct =. i is the input symbol, and v is supposed to be the > bound to i.<6WildBind back-end binding between inputs and actions. s# is the front-end state type, and i is the input type.=CWildBind back-end binding with both explicit and implicit states. bs! is the explicit back-end state, fs is the front-end state, and i is the input type. You can make the explicit state bs implicit by [ function.>Action done by WildBind@)Human-readable description of the action.AThe actual job.BMake an >9 that runs the given monadic action before the original >.CMake an >8 that runs the given monadic action after the original >.DA =$ with no bindings. It's the same as j , except D requires no context.EGet the > bound to the specified state s and input i.FGet the >' bound to the specified back-end state bs, front-end state fs and input iG!Get the list of all bound inputs iD and their corresponding actions for the specified front-end state s.H!Get the list of all bound inputs iC and their corresponding actions for the specified back-end state bs and front-end state fs.I!Get the list of all bound inputs i$ for the specified front-end state s.J!Get the list of all bound inputs i$ for the specified front-end state fs and the back-end state bs.KBuild a <u with no explicit or implicit state. The bound actions are activated regardless of the back-end or front-end state.JIf different actions are bound to the same input, the latter action wins.Result of action (r) is discarded.LBuild a = with an explicit state (but no implicit state). The bound actions are activated regardless of the back-end or front-end state.M Create a ; that binds the action v to the input i.NTransform the given action m a into an >L and apply the continuation to it. It discards the result of action (type a). Usually used as an operator.O-Transform the given continuation so that the  is set to the >: passed to the continuation. Usually used as an operator.P#Transform the actions in the given ;.QNon-monadic version of K.RJCreate a binding that behaves differently for different front-end states fs.SICreate a binding that behaves differently for different back-end states bs.TXCreate a binding that behaves differently for different front-end and back-end states, fs and bs.U*Add a condition on the front-end state to <.V)Add a condition on the back-end state to <.W9Add a condition on the back-end and front-end states to <.XContramap the front-end state.YMap the front-end input.ZIConvert the back-end state. Intuitively, it converts a small state type bs into a bigger state type bs', which includes bs.For example, if you have a  l , you can do convBack (set l) (view l) b[Convert = to < by hiding the explicit state bs.\Extend < to =. In the result =>, the explicit back-end state is just ignored and unmodified.]Non-monadic version of L.^j returns a < where no binding is defined. k combines two <Es while preserving their individual implicit states. The right-hand <= has precedence over the left-hand one. That is, if the two <~s both have a binding to the same key in the same front-end and back-end state, the binding from the right-hand one is used.-;lm<=no>?@ABthe monadic action prepended the original >.Cthe monadic action appended. the original >.DEFGHIJpKLMNOPQR The predicateEnabled if the predicate is qEnabled if the predicate is rS The predicateEnabled if the predicate is qEnabled if the predicate is rT The predicateEnabled if the predicate is qEnabled if the predicate is rUThe predicate.Enabled if the predicate is qVThe predicate.Enabled if the predicate is qWThe predicate.Enabled if the predicate is q.sXYZ A setter. It's supposed to set bs into the original bs' and return the result.#A getter. It's supposed to extract bs from bs'.[ Initial stateBinding' with explicit state#Binding containing the state inside\]t^_`#;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]#>?@A<=D;KLMNOQ]RSTUVWPBC[\XYZEFGHIJ&;lm<=no>?@ABCDEFGHIJpKLMNOPQRSTUVWsXYZ[\]t^_`N2O2'Functions to create executable actions. Toshio Ito <debug.ito@gmail.com>NoneOTu!A monad keeping WildBind context.vOInternal state. fst is the current Binding, snd is the current front-end state.dWildBind configuration options.!You can get the default value of d by iF funcion, and modify its members via accessor functions listed below.eMAn action executed when current binding may be changed. Default: do nothing.fOthe handler for exceptions thrown from bound actions. Default: just print the w to x and ignore it.g Combines the  and the < and returns the executable.hBuild the executable with d.uvdyefz{ghi|}~€dfeghighdefiefuvdyefz{ghi|}~€WildBind main module Toshio Ito <debug.ito@gmail.com>NoneOTW  !"#$%&'()*+,-.;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]defghi‚       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsqrtCuEvwxyzxy{|}~q€q‚ƒk„…†‡ˆ‰Š‹Œ(wild-bind-0.1.0.3-Fj8txM2rHslHGjztGqRf9kWildBind.DescriptionWildBind.FrontEndWildBind.Input.NumPadWildBind.Binding WildBind.Exec Control.LensLens'WildBind DescribabledescribeActionDescriptionFrontEndfrontDefaultDescription frontSetGrabfrontUnsetGrabfrontNextEvent FrontEventFEInputFEChange$fShowFrontEvent NumPadLockedNumL0NumL1NumL2NumL3NumL4NumL5NumL6NumL7NumL8NumL9 NumLDivide NumLMulti NumLMinusNumLPlus NumLEnter NumLPeriodNumPadUnlocked NumInsertNumEndNumDown NumPageDownNumLeft NumCenterNumRightNumHomeNumUp NumPageUp NumDivideNumMultiNumMinusNumPlusNumEnter NumDelete$fDescribableNumPadLocked$fDescribableNumPadUnlocked$fEqNumPadUnlocked$fOrdNumPadUnlocked$fShowNumPadUnlocked$fBoundedNumPadUnlocked$fEnumNumPadUnlocked$fEqNumPadLocked$fOrdNumPadLocked$fShowNumPadLocked$fBoundedNumPadLocked$fEnumNumPadLockedBinderBindingBinding'ActionactDescriptionactDobeforeafter noBinding boundAction boundAction' boundActions boundActions' boundInputs boundInputs'bindsbinds'onrunasadvicebindingifFrontifBackifBoth whenFrontwhenBackwhenBoth convFront convInputconvBack startFromextendbinding'$fMonoidBinding'$fFunctorAction $fShowAction $fMonadBinder$fApplicativeBinder$fFunctorBinderOptionoptBindingHookoptCatchwildBind wildBind' defOptionbaseGHC.BasememptymappendunBinder unBinding' runBinderghc-prim GHC.TypesTrueFalse mapResultrunStatefulAction WBContextWBState GHC.Exception SomeExceptionGHC.IO.Handle.FDstderrGrabSet updateGrab askOptionboundDescriptions updateWBStateupdateFrontState updateBindingwildBindInContext