úÎ!ž_–¯      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Types about ActionDescription Toshio Ito <debug.ito@gmail.com>Safe Z wild-bind Class for something describable. wild-bind)Human-readable description of an action. 6 is used to describe the current binding to the user. wild-bindFunctions to build Binding Toshio Ito <debug.ito@gmail.com>NoneKQV_P- wild-bindA monad to construct . i is the input symbol, and v is supposed to be the  bound to i. wild-bind6WildBind back-end binding between inputs and actions. s# is the front-end state type, and i is the input type. wild-bindCWildBind 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. wild-bindStateReaderIO Monad wild-bindAction done by WildBind  wild-bind)Human-readable description of the action.  wild-bindThe actual job.  wild-bindMake an 9 that runs the given monadic action before the original .  wild-bindMake an 8 that runs the given monadic action after the original .  wild-bindSame as  , but it returns €. wild-bindSame as  , but it returns €. wild-bindA $ with no bindings. It's the same as  , except  requires no context. wild-bindGet the  bound to the specified state s and input i. wild-bindGet the ' bound to the specified back-end state bs, front-end state fs and input i wild-bind!Get the list of all bound inputs iD and their corresponding actions for the specified front-end state s. wild-bind!Get the list of all bound inputs iC and their corresponding actions for the specified back-end state bs and front-end state fs. wild-bind!Get the list of all bound inputs i$ for the specified front-end state s. wild-bind!Get the list of all bound inputs i$ for the specified front-end state fs and the back-end state bs. wild-bindBuild 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. wild-bindLike K, but this function allows actions to use the current front-end state via ‚. wild-bindBuild a  with an explicit state (but no implicit state). The bound actions are activated regardless of the back-end or front-end state. wild-bindLike K, but this function allows actions to use the current front-end state via ‚. wild-bind Create a  that binds the action v to the input i. wild-bindTransform 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. wild-bind-Transform the given continuation so that the  is set to the : passed to the continuation. Usually used as an operator. wild-bind#Transform the actions in the given . wild-bindNon-monadic version of . wild-bindNon-monadic version of .  wild-bindJCreate a binding that behaves differently for different front-end states fs.! wild-bindICreate a binding that behaves differently for different back-end states bs." wild-bindXCreate a binding that behaves differently for different front-end and back-end states, fs and bs.# wild-bind*Add a condition on the front-end state to .$ wild-bind)Add a condition on the back-end state to .% wild-bind9Add a condition on the back-end and front-end states to .& wild-bindContramap the front-end state.' wild-bindMap the front-end input.( wild-bindIConvert 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) wild-bindConvert  to  by hiding the explicit state bs.* wild-bindExtend  to . In the result >, the explicit back-end state is just ignored and unmodified.+ wild-bindNon-monadic version of ., wild-bindNon-monadic version of .- wild-bind%Revise (modify) actions in the given .. wild-bindLike -7, but this function allows revising the back-end state.1 wild-bind returns a  where no binding is defined. ƒ 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.2 wild-bindSee Monoid instance.  wild-bindthe monadic action prepended wild-bind the original .  wild-bindthe monadic action appended. wild-bind the original .  wild-bind The predicate wild-bindEnabled if the predicate is „ wild-bindEnabled if the predicate is …! wild-bind The predicate wild-bindEnabled if the predicate is „ wild-bindEnabled if the predicate is …" wild-bind The predicate wild-bindEnabled if the predicate is „ wild-bindEnabled if the predicate is …# wild-bindThe predicate. wild-bindEnabled if the predicate is „$ wild-bindThe predicate. wild-bindEnabled if the predicate is „% wild-bindThe predicate. wild-bindEnabled if the predicate is „.( wild-bind A setter. It's supposed to set bs into the original bs' and return the result. wild-bind#A getter. It's supposed to extract bs from bs'.) wild-bind Initial state wild-bindBinding' with explicit state wild-bind#Binding containing the state inside- wild-bind/A function to revise the action. If it returns †, the action is unbound. wild-bindoriginal binding wild-bindrevised binding+  !"#$%&'()*+,-.+ +, !"#$%)*&'(-. 22-Data types and type classes about front-ends. Toshio Ito <debug.ito@gmail.com>Safej°6 wild-bindInterface to the front-end. s! is the state of the front-end, i is the input.8 wild-bindDefault  for inputs9 wild-bindFAction to grab (or capture) the specified input symbol on the device. : wild-bind0Action to release the grab for the input symbol.; wild-bindIAction to retrieve the next event. It should block if no event is queued.< wild-bindEvent from the front-end. s is the state of the front-end. i is the input.= wild-bind"An event that a new input is made.> wild-bind-An event that the front-end state is changed. 679:;8<>= <>=679:;8'Functions to create executable actions. Toshio Ito <debug.ito@gmail.com>Noneuއ wild-bind!A monad keeping WildBind context.ˆ wild-bindOInternal state. fst is the current Binding, snd is the current front-end state.B wild-bindWildBind configuration options.!You can get the default value of B by GF funcion, and modify its members via accessor functions listed below.C wild-bindMAn action executed when current binding may be changed. Default: do nothing.D wild-bindOthe handler for exceptions thrown from bound actions. Default: just print the ‰ to Š and ignore it.E wild-bind Combines the 6 and the  and returns the executable.F wild-bindBuild the executable with B.BDCEFGEFBGCDTypes about number pads Toshio Ito <debug.ito@gmail.com>SafexĢH wild-bind*Number pad key input with NumLock enabled.Y wild-bind+Number pad key input with NumLock disabled."HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi"YZ[\]^_`abcdefghiHIJKLMNOPQRSTUVWX WildBind main module Toshio Ito <debug.ito@gmail.com>NonezÄ_  !"#$%&'()*+,-.679:;8<>=BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi-Support for binding sequence of input events. Toshio Ito <debug.ito@gmail.com>NoneQV–s v wild-bind Intermediate type of building a  for key sequences.w wild-bindPrepend prefix keys to the v.v- is composable in terms of prefixes, that is, P(withPrefix [key1, key2] seq_b) == (withPrefix [key1] $ withPrefix [key2] seq_b)x wild-bind Create a v from  . The result v has no prefixes yet.y wild-bindResolve v to build a  for key sequences.‹ wild-bindA v: that binds the given key for canceling the key sequence.z wild-bindAdd cancel keys to the v.{ wild-bindPrepend prefix keys to a . In the result , the original M is enabled only after you input the prefix input symbols in the same order.xDuring typing prefix keys, you can cancel and reset the key sequence by typing the "cancel keys". This is analogous to C-gw in Emacs. The binding of cancel keys are weak, that is, they are overridden by the original binding and prefix keys.pNote that this function creates an independent implicit state to memorize prefix keys input so far. This means, E(prefix [] [key1, key2] b) /= (prefix [] [key1] $ prefix [] [key2] b)GIf you want a more composable way of building a sequence binding, try v.| wild-bindRevise actions in v. See -.} wild-bindFollows the same rule as .~ wild-bindFollows the same rule as .w wild-bind prefix keys‹ wild-bind cancel keyz wild-bind cancel keys{ wild-bindGThe cancel keys (input symbols for canceling the current key sequence.) wild-bindlist of prefix input symbols wild-bindthe original binding. wild-bindthe result binding.| wild-bindRevising function. [i]! is the prefix keys input so far.vwxyz{|{vxywz|Œ     !"#$%&'()*+,-./0123456789:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Šˆ‰‹ŒŽˆ‰‘’‘“ˆ‰”•–ˆ—˜ˆ™š›œ(wild-bind-0.1.2.2-AzJUq2IswUK4cEB6He8Y1gWildBind.DescriptionWildBind.BindingWildBind.FrontEnd WildBind.ExecWildBind.Input.NumPad WildBind.Seq Control.LensLens'WildBind DescribabledescribeActionDescription$fDescribableEitherBinderBindingBinding'ActionactDescriptionactDobeforeafter justBefore justAfter noBinding boundAction boundAction' boundActions boundActions' boundInputs boundInputs'bindsbindsFbinds'bindsF'onrunasadvicebindingbindingFifFrontifBackifBoth whenFrontwhenBackwhenBoth convFront convInputconvBack startFromextendbinding' bindingF'reviserevise'$fFunctorAction $fShowAction$fMonoidBinding'$fSemigroupBinding' $fMonadBinder$fApplicativeBinder$fFunctorBinderFrontEndfrontDefaultDescription frontSetGrabfrontUnsetGrabfrontNextEvent FrontEventFEInputFEChange$fShowFrontEvent$fEqFrontEvent$fOrdFrontEventOptionoptBindingHookoptCatchwildBind wildBind' defOption NumPadLockedNumL0NumL1NumL2NumL3NumL4NumL5NumL6NumL7NumL8NumL9 NumLDivide NumLMulti NumLMinusNumLPlus NumLEnter NumLPeriodNumPadUnlocked NumInsertNumEndNumDown NumPageDownNumLeft NumCenterNumRightNumHomeNumUp NumPageUp NumDivideNumMultiNumMinusNumPlusNumEnter NumDelete$fDescribableNumPadUnlocked$fDescribableNumPadLocked$fEqNumPadUnlocked$fOrdNumPadUnlocked$fShowNumPadUnlocked$fBoundedNumPadUnlocked$fEnumNumPadUnlocked$fEqNumPadLocked$fOrdNumPadLocked$fShowNumPadLocked$fBoundedNumPadLocked$fEnumNumPadLocked SeqBinding withPrefixtoSeqfromSeq withCancelprefix reviseSeq$fMonoidSeqBinding$fSemigroupSeqBindingSRIMbaseGHC.BaseJustmemptytransformers-0.5.5.0Control.Monad.Trans.ReaderReaderTmappendghc-prim GHC.TypesTrueFalseNothing WBContextWBState GHC.Exception SomeExceptionGHC.IO.Handle.FDstderrcancelOn