h$gjM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                       )!(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portable Safe-Inferredmiso*Concurrent API for SkipChan implementationmiso Create a new miso Create a new " Safe-Inferred*(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone > misoClass from safely parsing  misoConvenience class for creating  from other string-like typesmiso'String type swappable based on compilermiso Parses a ,, throws an error when decoding fails. Use   for as a safe alternative.miso$Convenience function, shorthand for    (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone%&'()*+,%&'()*+,(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNoney-./012-./012(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone&%E#3miso Run given - action asynchronously, in a separate thread.4miso)Creates an asynchronous callback function5misoCreates an asynchronous callback function with a single argument6misoConvert a Callback into a JSVal7misoConvert an Object into a JSVal8misoSet property on object9miso+Register an event listener on given target.:miso%Registers an event listener on window;misoStop propagation of events<misoPrevent default event behavior=misoRetrieves the height (in pixels) of the browser window viewport including, if rendered, the horizontal scrollbar.See https://developer.mozilla.org/en-US/docs/Web/API/Window/innerHeight>misoRetrieves the width (in pixels) of the browser window viewport including, if rendered, the vertical scrollbar.See https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth?miso#Retrieve high resolution time stampSee https://developer.mozilla.org/en-US/docs/Web/API/Performance/now@miso$Outputs a message to the web consoleSee https://developer.mozilla.org/en-US/docs/Web/API/Document/bodyGmiso&Retrieves a reference to the document.See 9https://developer.mozilla.org/en-US/docs/Web/API/DocumentHmisoReturns an Element object representing the element whose id property matches the specified string.See https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementByIdImisoDiff two virtual DOMsJmisoHelper function for converting Integral types to JavaScript stringsKmisoHelper function for converting RealFloat types to JavaScript stringsLmisoHelper function for converting RealFloat types to JavaScript stringsMmiso/Initialize event delegation from a mount point.NmisoCopies DOM pointers into virtual dom entry point into isomorphic javascriptOmiso2Pins down the current callbacks for clearing laterPmiso1Releases callbacks registered by the virtual DOM.QmisoMock for callback registrationRmiso+Fails silently if the element is not found. Analogous to #document.getElementById(id).focus().Smiso+Fails silently if the element is not found. Analogous to "document.getElementById(id).blur()TmisoCalls ,document.getElementById(id).scrollIntoView()Umiso Calls the alert() function.9miso8Event target on which we want to register event listenermiso)Type of event to listen to (e.g. "click")misoCallback which will be called when the event occurs, the event will be passed to it as a parameter.:miso)Type of event to listen to (e.g. "click")misoCallback which will be called when the event occurs, the event will be passed to it as a parameter.EmisodecodeAt :: [JSString]miso(object with impure references to the DOMImisocurrent objectmiso new objectmiso parent nodemisodocument&3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU&345679:=><;?@ABCDE8FGHIJKLMNOPQRSTU(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone &7VWXYZVWXYZ#(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone&RSTURSTU$(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone'DD(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone 8*2[miso$Related to using drop-related events]miso'Options for handling event propagation.amisoType used for Checkbox events.cmisoType used for Keyboard events.See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Browser_compatibilityemisoType useful for both KeyCode and additional key press information.lmisoDefault value for ]. defaultOptions = Options { preventDefault = False, stopPropagation = False }mmisoDefault delegated events[\]^`_abcdefkjihglmefkjihgcdab]^`_l[\m(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone #$. miso$Decoder data type for parsing eventsmisoFromJSON-based Event decodermiso"Location in DOM of where to decodemisoData type representing path (consisting of field names) within event object, where a decoder should be applied.misoSpecify single path within Event object, where a decoder should be applied.misoSpecify multiple paths withing Event object, where decoding should be attempted. The first path where decoding suceeds is the one taken.miso!Smart constructor for building a .misoEmpty decoder for use with events like "click" that do not return any meaningful valuesmiso;Retrieves either "keyCode", "which" or "charCode" field in miso;Retrieves either "keyCode", "which" or "charCode" field in ', along with shift, ctrl, meta and alt.misoRetrieves "value" field in miso$Retrieves "checked" field in Decodermiso instance for   %(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone/ [\]^_`abcdefkjighlm (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone 4n miso:Retrieve a value stored under given key in session storagemiso8Retrieve a value stored under given key in local storagemiso(Set the value of a key in local storage.setLocalStorage key value sets the value of key to value.miso*Set the value of a key in session storage.setSessionStorage key value sets the value of key to value.miso"Removes an item from local storageremoveLocalStorage key removes the value of key.miso%Removes an item from session storage.removeSessionStorage key removes the value of key.misoClear local storageclearLocalStorage' removes all values from local storage.misoClear session storageclearSessionStorage) removes all values from session storage.misoLocal storage lengthlocalStorageLength, returns the count of items in local storagemisoSession storage lengthsessionStorageLength. returns the count of items in session storage   (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone: miso3Function to asynchronously dispatch actions to the & function.miso2Type synonym for constructing event subscriptions.The  callback is used to dispatch actions which are then fed back to the & function.miso5An effect represents the results of an update action.It consists of the updated model and a list of subscriptions. Each  is run in a new thread so there is no risk of accidentally blocking the application.miso2Turn a subscription that consumes actions of type a4 into a subscription that consumes actions of type b% using the supplied function of type a -> b.misoSmart constructor for an  with no actions.misoSmart constructor for an  with exactly one action.miso smart constructor, flippedmisoSmart constructor for an  with multiple actions.misoLike  but schedules a subscription which is an IO computation which has access to a > which can be used to asynchronously dispatch actions to the & function.A use-case is scheduling an IO computation which creates a 3rd-party JS widget which has an associated callback. The callback can then call the sink to turn events into actions. To do this without accessing a sink requires going via a  scription& which introduces a leaky-abstraction.RSTU  None #$/5>LX misoAttribute of a vnode in a .The  callback can be used to dispatch actions which are fed back to the update function. This is especially useful for event handlers like the onclick attribute. The second argument represents the vnode the attribute is attached to.misoConvert custom key types to .Instances of this class do not have to guarantee uniqueness of the generated keys, it is up to the user to do so.  must be an injective function.misoA unique key for a dom node.This key is only used to speed up diffing the children of a DOM node, the actual content is not important. The keys of the children of a given DOM node must be unique. Failure to satisfy this invariant gives undefined behavior at runtime.misoNamespace of DOM elements.misoHTML Namespacemiso SVG NamespacemisoMATHML Namespacemiso(Virtual DOM implemented as a JavaScript . Used for diffing, patching and event delegation. Not meant to be constructed directly, see  instead.miso Convenience class for using ViewmisoCore type for constructing a , use this instead of  directly.miso Create a new Miso.Html.Types.TextRaw. expandable a 5 node takes raw HTML and attempts to convert it to a  at runtime. This is a way to dynamically populate the virtual DOM from HTML received at runtime. If rawHtml cannot parse the HTML it will not render.miso Create a new Miso.Html.Types.Node.node ns tag key attrs children creates a new node with tag tag and  key in the namespace ns. All attrs are called when the node is created and its children are initialized to children.miso Create a new Text with the given content.miso creation. Don't use directlymisoprop k v- is an attribute that will set the attribute k/ of the DOM node associated with the vnode to v.misoConvenience wrapper for onWithOptions defaultOptions. let clickHandler = on "click" emptyDecoder $ \() -> Action in button_ [ clickHandler, class_ "add" ] [ text_ "+" ]miso-onWithOptions opts eventName decoder toAction is an attribute that will set the event handler of the associated DOM node to a function that decodes its argument using decoder", converts it to an action using toAction( and then feeds that action back to the update function.opts2 can be used to disable further event propagation. let clickHandler = onWithOptions defaultOptions "click" emptyDecoder $ \() -> Action in button_ [ clickHandler, class_ "add" ] [ text_ "+" ]misoonCreated action is an event that gets called after the actual DOM element is created.Important note: Any node that uses this event MUST have a unique Key2, otherwise the event may not be reliably called!misoonDestroyed action is an event that gets called after the DOM element is removed from the DOM. The action> is given the DOM element that was removed from the DOM tree.Important note: Any node that uses this event MUST have a unique Key2, otherwise the event may not be reliably called!misoonBeforeDestroyed action is an event that gets called before the DOM element is removed from the DOM. The action> is given the DOM element that was removed from the DOM tree.Important note: Any node that uses this event MUST have a unique Key2, otherwise the event may not be reliably called!miso style_ attrs# is an attribute that will set the style* attribute of the associated DOM node to attrs.style attributes not contained in attrs will be deleted. import qualified Data.Map as M div_ [ style_ $ M.singleton "background" "red" ] [ ] 0https://developer.mozilla.org/en-US/docs/Web/CSSmisoConvert  to misoConvert  to misoConvert  to misoConvert  to misoConvert  to misoConvert  to misoConvert  to misoIdentity instancemiso Converting  to Lucid's miso instancemiso For constructing type-safe links!! (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone MmisoUsed to construct VNode's in '(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNoneNV (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone mmiso Set field to  valuemiso Set field to  valuemiso Set field to  valuemiso Set field to  valuemiso Set field to  valuemiso Set field to  valuemiso%Define multiple classes conditionally /div_ [ classList_ [ ("empty", null items) ] [ ]miso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/titlemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/selectedmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/hiddenmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/valuemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/defaultValuemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/acceptmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/acceptCharsetmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/actionmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/autocompletemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/autosavemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/disabledmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/enctypemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/formationmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/listmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/maxlengthmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/minlengthmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/methodmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/multiplemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/novalidatemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/patternmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/readonlymiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/requiredmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/sizemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/formiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/refmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/formmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/maxmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/minmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/stepmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/colsmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/rowsmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/wrapmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/targetmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/downloadmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/downloadAsmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/hreflangmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/mediamiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/pingmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/relmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/ismapmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/usemapmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/shapemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/coordsmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/srcmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/heightmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/widthmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/altmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/loadingmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/autoplaymiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/controlsmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/loopmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/preloadmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/postermiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/defaultmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/kindmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/srclangmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/sandboxmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/seamlessmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/srcdocmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/reversedmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/startmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/alignmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/colspanmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/rowspanmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/headersmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/scopemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/asyncmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/charsetmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/contentmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/defermiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/httpEquivmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/languagemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/scopedmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/typemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/namemiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/hrefmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/idmiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/placeholdermiso https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/checkedmisoSet "autofocus" property https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/autofocusmisoSet "className" property https://developer.mozilla.org/en-US/docs/Web/API/Element/classNamemisoSet "data-*" property https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/data-*misoSet "style" property view m = div_ [ styleInline_ "background-color:red;color:blue;" ] [ "foo" ] 0https://developer.mozilla.org/en-US/docs/Web/CSS(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone />?vmisoblur" event defined with custom options 8https://developer.mozilla.org/en-US/docs/Web/Events/blurmiso :https://developer.mozilla.org/en-US/docs/Web/Events/changemiso 9https://developer.mozilla.org/en-US/docs/Web/Events/clickmiso 9https://developer.mozilla.org/en-US/docs/Web/Events/focusmiso https://developer.mozilla.org/en-US/docs/Web/Events/mouseentermiso >https://developer.mozilla.org/en-US/docs/Web/Events/mouseleavemiso =https://developer.mozilla.org/en-US/docs/Web/Events/mouseovermiso  experimental non-portableNone emisoUsed to construct VNode's in misoConstruct a node with a miso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/divmiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tablemiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/theadmiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbodymiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/formmiso ;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pmiso ;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/smiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/spanmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strongmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/markmiso >https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rubymiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menumiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldsetmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legendmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalistmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroupmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygenmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/outputmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progressmiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/metermiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/centermiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audiomiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/videomiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sourcemiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/trackmiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/embedmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/objectmiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/parammiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/insmiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/delmiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/smallmiso >https://developer.mozilla.org/en-US/docs/Web/HTML/Element/citemiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dfnmiso >https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbrmiso >https://developer.mozilla.org/en-US/docs/Web/HTML/Element/timemiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/varmiso >https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sampmiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbdmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/captionmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroupmiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colmiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/navmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/articlemiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/asidemiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/addressmiso >https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mainmiso >https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bodymiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figuremiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaptionmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mathmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/selectmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optionmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textareamiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/submiso =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/supmiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/codemiso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/linkmiso ?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style3This takes the raw text to be put in the style tag.That means that if any part of the text is not trusted there's a potential CSS injection. Read more at https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/11-Client_Side_Testing/05-Testing_for_CSS_InjectionYou can also easily shoot yourself in the foot with something like:  [] ""miso https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script4This takes the raw text to be put in the script tag.That means that if any part of the text is not trusted there's a potential JavaScript injection. Read more at ,https://owasp.org/www-community/attacks/xss/You can also easily shoot yourself in the foot with something like:  [] ""((C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone]^_`l(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone '(./5>?misoThis is similar to the  HasServer class from servant-server. It is the class responsible for making API combinators routable. ) is used to build up the handler types. $ is returned, to be interpretted by .misoA mkRouter handler.miso6When routing, the router may fail to match a location.miso7Use a handler to mkRouter a location, represented as a ). All handlers must, in the end, return m a. . will choose a mkRouter and return its result.misoExecutes routermisoRawmisoVerbmisoViewmisoPathmisoHeadermiso QueryFlagmiso QueryParamsmiso QueryParammisoCapturemiso Alternative(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNoneNmiso,Entry point for diffing / patching algorithmmiso4return the configured mountPoint element or the body(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone"miso Entry point for event delegation(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone  #$/misoRetrieves current URI of pagemiso'Pushes a new URI onto the History stackmisoReplaces current URI on stackmisoNavigates backwardsmisoNavigates forwardsmiso'Jumps to a specific position in historymisoSubscription for popstate events, from the History API  (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone #$~misotype for arrow keys currently pressed 37 left arrow ( x = -1 ) 38 up arrow ( y = 1 ) 39 right arrow ( x = 1 ) 40 down arrow ( y = -1 )misoMaps  onto a Keyboard subscriptionmisoMaps WASD, onto a Keyboard subscription for directionsmisoMaps a specified list of keys to directions (up, down, left, right)miso!Returns subscription for Keyboard(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone #$misoCaptures mouse coordinates as they occur and writes them to an event sink(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone #$misoServer-sent events datamisoServer-sent events Subscription(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone #$misoCaptures window coordinates changes as they occur and writes them to an event sinkmiso$windowSub eventName decoder toAction: is a subscription which parallels the attribute handler on<, providing a subscription to listen to window level events.miso7windowSubWithOptions options eventName decoder toAction: is a subscription which parallels the attribute handler on<, providing a subscription to listen to window level events.(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone miso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/accent-heightmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/acceleratemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/accumulatemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/additivemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/alphabeticmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/allowReordermiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/amplitudemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/arabic-formmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/ascentmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/attributeNamemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/attributeTypemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/autoReversemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/azimuthmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/baseFrequencymiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/baseProfilemiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/bboxmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/beginmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/biasmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/bymiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/calcModemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/cap-heightmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/classmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/clipPathUnitsmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/contentScriptTypemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/contentStyleTypemiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/cxmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/cymiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/durmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/dxmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/dymiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/edgeModemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/elevationmiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/endmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/exponentmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/externalResourcesRequiredmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/filterResmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/filterUnitsmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/formatmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/frommiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fxmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fymiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/g1miso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/g2miso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/glyph-namemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/glyphRefmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/gradientTransformmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/gradientUnitsmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/hangingmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/heightmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/horiz-adv-xmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/horiz-origin-xmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/horiz-origin-ymiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/idmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/ideographicmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/inmiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/in2miso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/interceptmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/maxmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/mediamiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/methodmiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/minmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/modemiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/namemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/numOctavesmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/offsetmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/operatormiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/ordermiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/orientmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/orientationmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/originmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/overline-positionmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/overline-thicknessmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/panose-1miso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pathmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pathLengthmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/patternContentUnitsmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/patternTransformmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/patternUnitsmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/point-ordermiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pointsmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pointsAtXmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pointsAtYmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pointsAtZmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAlphamiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAspectRatiomiso https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/primitiveUnitsmiso  experimental non-portableNone ?misoCreates an svg tagmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObjectmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circlemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipsemiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Element/imagemiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linemiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/pathmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygonmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polylinemiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rectmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mpathmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/titlemiso :https://developer.mozilla.org/en-US/docs/Web/SVG/Element/amiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defsmiso :https://developer.mozilla.org/en-US/docs/Web/SVG/Element/gmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/markermiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/maskmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/missingGlyphmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/patternmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/switchmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/symbolmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/altGlyphmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/altGlyphDefmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/altGlyphItemmiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Element/glyphmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/glyphRefmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPathmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/trefmiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Element/tspanmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/fontmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/font-facemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/font-face-formatmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/font-face-namemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/font-face-srcmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/font-face-urimiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Element/hkernmiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Element/vkernmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradientmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradientmiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stopmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feBlendmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feColorMatrixmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feComponentTransfermiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feCompositemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feConvolveMatrixmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDiffuseLightingmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDisplacementMapmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFloodmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncAmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncBmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncGmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncRmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feGaussianBlurmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feImagemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMergemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMergeNodemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMorhpologymiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feOffsetmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feSpecularLightingmiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTilemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTurbulencemiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDistantLightmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/fePointLightmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feSpotLightmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/clipPathmiso https://developer.mozilla.org/en-US/docs/Web/SVG/Element/color-profilemiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/cursormiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/filtermiso ?https://developer.mozilla.org/en-US/docs/Web/SVG/Element/scriptmiso >https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stylemiso =https://developer.mozilla.org/en-US/docs/Web/SVG/Element/view(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone  />" miso onBegin eventmiso onEnd eventmisoonRepeat eventmiso onAbort eventmiso onError eventmisoonResize eventmisoonScroll eventmiso onLoad eventmisoonUnload eventmiso onZoom eventmisoonActivate eventmisoonFocusIn eventmisoonFocusOut eventmisoonMouseDown eventmisoonMouseMove eventmisoonMouseOut eventmisoonMouseOver eventmisoonMouseUp event)(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone"None./'miso6Convert client route type to a server web handler type(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone5miso;A monad for succinctly expressing model transitions in the  function. Transition is a state monad so it abstracts over manually passing the model around. It's also a writer monad where the accumulator is a list of scheduled IO actions. Multiple actions can be scheduled using Control.Monad.Writer.Class.tell from the mtl5 library and a single action can be scheduled using . Tip: use the  Transition) monad in combination with the stateful  http://hackage.haskell.org/package/lens-4.15.4/docs/Control-Lens-Operators.htmllens& operators (all operators ending in "=."). The following example assumes the lenses field1, counter and field2 are in scope and that the  LambdaCase language extension is enabled: myApp = App { update =  . \case MyAction1 -> do field1 .= value1 counter += 1 MyAction2 -> do field2 %= f scheduleIO $ do putStrLn "Hello" putStrLn "World!" , ... } misoOptional Logging for debugging miso internals (useful to see if prerendering is successful)misoApplication entry pointmiso initial modelmisoFunction to update model, optionally providing effects. See the 3 monad for succinctly expressing model transitions.misoFunction to draw miso8List of subscriptions to run during application lifetimemisoList of delegated events that the body element will listen for. You can start with * and modify as needed.miso;Initial action that is run after the application has loadedmiso(Id of the root element for DOM diff. If  is provided, the entire document body is used as a mount point.misoDisplay warning messages when prerendering if the DOM and VDOM are not in sync.misoTurn a transition that schedules subscriptions that consume actions of type a into a transition that schedules subscriptions that consume actions of type b& using the supplied function of type a -> b.miso Convert a  Transition0 computation to a function that can be given to .miso Convert an  function to a  Transition computation.miso0Schedule a single IO action for later execution.5Note that multiple IO action can be scheduled using Control.Monad.Writer.Class.tell from the mtl library.misoLike 6 but doesn't cause an action to be dispatched to the  function.This is handy for scheduling IO computations where you don't care about their results or when they complete.misoLike $ but generalized to any instance of ;This is handy for scheduling IO computations that return a  valuemisoLike  but schedules a subscription which is an IO computation that has access to a > which can be used to asynchronously dispatch actions to the  function.A use-case is scheduling an IO computation which creates a 3rd-party JS widget which has an associated callback. The callback can then call the sink to turn events into actions. To do this without accessing a sink requires going via a  scription' which introduces a leaky-abstraction.misomodel  function.misomodel  function(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone9misoGeneric map function, useful for creating Views from the elements of some Foldable. Particularly handy for Maybe!, as shown in the example below. view model = div_ [] $ withFoldable (model ^. mSomeMaybeVal) $ someVal -> p_ [] [ text $ "Hey, look at this value: " <> ms (show someVal) ] miso Hides the Views the condition is False. Shows them when the condition is True.misoSmart constructor for Attributes. This function is helpful when constructing numerous Attributes Example shown below. div_ [ style_ $ ("background" =: "red" <> "width" =: "250px" <> "height" =: "250px") ] [] (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone 8Dmiso+Code corresponding to a closed connection ;https://developer.mozilla.org/en-US/docs/Web/API/CloseEventmiso1000, Normal closure; the connection successfully completed whatever purpose for which it was created.miso1001, The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.miso1002, The endpoint is terminating the connection due to a protocol error.miso1003, The connection is being terminated because the endpoint received data of a type it cannot accept (for example, a textonly endpoint received binary data).miso1005, Reserved. Indicates that no status code was provided even though one was expected.miso1006, Reserved. Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.miso1007, The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., nonUTF8 data within a text message).miso1008, The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.miso1009, The endpoint is terminating the connection because a data frame was received that is too large.miso1010, The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't.miso1011, The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.miso1012, The server is terminating the connection because it is restarting.miso1013, The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients.miso1015, Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).miso4OtherCode that is reserved and not in the range 0999miso. corresponding to current WebSocket connectionmiso0miso1miso2miso3misoReason for closed connectionmiso7Wether or not the connection closed was done so cleanlymiso"Protocols for Websocket connectionmisoURL of Websocket servermisoWebSocket connection messages""(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone E0  (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone 8FmisoWebSocket subscriptionmiso#Sends message to a websocket servermiso#Sends message to a websocket servermisoConnects to a websocket servermisoRetrieves current status of ''+(C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNoneH  (C) 2016-2018 David M. Johnson!BSD3-style (see the file LICENSE)'David M. Johnson  experimental non-portableNone #$/ImisoRuns an isomorphic miso application. Assumes the pre-rendered DOM is already presentmisoRuns a miso application 3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU[\]^_`abcdefkjighlm,-.,-/,-01231241251261271281289:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~h*                                                                                                                                                                     ^_]&h  !!!!!!Z,,-#miso-1.8.2.0-B5Z9gpR3wHYDZYus9qSuzVMiso.FFIMiso.Subscription.History Miso.StringMiso.FFI.StorageMiso.FFI.History Miso.FFI.SSEMiso.Event.TypesMiso.Event.DecoderMiso.Effect.Storage Miso.EffectMiso.Html.TypesMiso.Mathml.ElementMiso.Html.PropertyMiso.Html.EventMiso.Html.Element Miso.Router Miso.Diff Miso.DelegateMiso.Subscription.KeyboardMiso.Subscription.MouseMiso.Subscription.SSEMiso.Subscription.WindowMiso.Svg.AttributeMiso.Svg.ElementMiso.Svg.EventMiso.TypeLevel Miso.Types Miso.UtilMiso.WebSocketMiso.FFI.WebSocketMiso.Subscription.WebSocketMisoMiso.Concurrent Miso.JSBitsMiso.Effect.DOMMiso.Dev Miso.Eventupdate Miso.Mathml Miso.HtmlMiso.Svg defaultEventsMiso.Subscription&jsaddle-0.9.8.2-73ZoZtsJw8mE0ZmFoYW2CL!Language.Javascript.JSaddle.Types ghcjsPure syncPointJSM*network-uri-2.6.4.1-EI9fbHPgPg3FkBWeXXqPMn Network.URI uriFragmenturiQueryuriPath uriAuthority uriSchemeURIFromMisoStringfromMisoStringEither ToMisoString toMisoString MisoStringfromMisoStringms$fToMisoStringWord$fToMisoStringInt$fToMisoStringDouble$fToMisoStringFloat$fToMisoStringByteString$fToMisoStringByteString0$fToMisoStringJSString$fToMisoStringText$fToMisoString[]$fToMisoStringText0$fFromMisoStringWord$fFromMisoStringInt$fFromMisoStringDouble$fFromMisoStringFloat$fFromMisoStringByteString$fFromMisoStringByteString0$fFromMisoStringJSString$fFromMisoStringText$fFromMisoString[]$fFromMisoStringText0Storage localStoragesessionStoragegetItem removeItemsetItemlengthcleargetWindowLocationHrefgobackforward pushState replaceStateforkJSM asyncCallbackasyncCallback1callbackToJSVal objectToJSValsetaddEventListenerwindowAddEventListenereventStopPropagationeventPreventDefaultwindowInnerHeightwindowInnerWidthnow consoleLogconsoleLogJSVal stringifyparse clearBody objectToJSONgetBodygetDocgetElementByIddiff'integralToJSStringrealFloatToJSStringjsStringToDouble delegateEventcopyDOMIntoVTree swapCallbacksreleaseCallbacksregisterCallbackfocusblurscrollIntoViewalert EventSourcedata'new AllowDropOptionspreventDefaultstopPropagationCheckedKeyCodeKeyInfokeyCodeshiftKeymetaKeyctrlKeyaltKeydefaultOptions$fToJSValOptions$fShowAllowDrop $fEqAllowDrop$fFromJSONAllowDrop $fShowOptions $fEqOptions$fGenericOptions $fShowChecked $fEqChecked $fOrdChecked$fFromJSONChecked $fShowKeyInfo $fEqKeyInfo $fShowKeyCode $fEqKeyCode $fOrdKeyCode$fFromJSONKeyCodeDecoderdecoderdecodeAt DecodeTarget DecodeTargetsat emptyDecoderkeycodeDecoderkeyInfoDecoder valueDecodercheckedDecoder$fToJSValDecodeTargetgetSessionStoragegetLocalStoragesetLocalStoragesetSessionStorageremoveLocalStorageremoveSessionStorageclearLocalStorageclearSessionStoragelocalStorageLengthsessionStorageLengthSinkSubEffectmapSubnoEff<##>batchEff effectSub$fBifunctorEffect $fMonadEffect$fApplicativeEffect$fFunctorEffect AttributePESToKeytoKeyKeyNSHTMLSVGMATHMLVTreegetTreeToViewtoViewViewNodeTextTextRawrawHtmlnodetexttextRawrunViewpropon onWithOptions onCreated onDestroyedonBeforeDestroyedstyle_ $fToJSValNS $fToJSValKey $fToKeyWord $fToKeyFloat $fToKeyDouble $fToKeyInt $fToKey[] $fToKeyText$fToKeyJSString $fToKeyKey $fToHtmlView$fIsStringView$fHasLinkTYPEView $fFunctorView$fFunctorAttribute$fShowNS$fEqNS nodeMathmlboolProp stringProptextPropintProp integerProp doubleProp classList_title_ selected_hidden_value_ defaultValue_accept_acceptCharset_action_ autocomplete_ autosave_ disabled_enctype_ formation_list_ maxlength_ minlength_method_ multiple_ novalidate_pattern_ readonly_ required_size_for_ref_form_max_min_step_cols_rows_wrap_target_ download_ downloadAs_ hreflang_media_ping_rel_ismap_usemap_shape_coords_src_height_width_alt_loading_ autoplay_ controls_loop_preload_poster_default_kind_srclang_sandbox_ seamless_srcdoc_ reversed_start_align_colspan_rowspan_headers_scope_async_charset_content_defer_ httpEquiv_ language_scoped_type_name_href_id_ placeholder_checked_ autofocus_class_data_ styleInline_onBlur onCheckedonClickonFocus onDoubleClickonInputonChangeonKeyDownWithInfo onKeyDown onKeyPressonKeyUp onMouseUp onMouseDown onMouseEnter onMouseLeave onMouseOver onMouseOut onDragStart onDragOver onDragEnd onDragEnter onDragLeaveonDragonDroponSubmitnodeHtml nodeHtmlKeyeddiv_table_thead_tbody_tr_trKeyed_th_td_tfoot_section_header_footer_button_p_s_ul_span_strong_li_liKeyed_h1_h2_h3_h4_h5_h6_hr_pre_input_label_a_mark_ruby_rt_rp_bdi_bdo_wbr_details_summary_ menuitem_menu_ fieldset_legend_ datalist_ optgroup_keygen_output_ progress_meter_center_audio_video_source_track_embed_object_param_ins_del_small_cite_dfn_abbr_time_var_samp_kbd_caption_ colgroup_col_nav_article_aside_address_main_body_figure_ figcaption_dl_dt_dd_img_iframe_canvas_math_select_option_ textarea_sub_sup_br_ol_ blockquote_code_em_i_b_u_q_link_script_ HasRouterRouteT RoutingErrorFailrouterunRoute$fHasRouterTYPERaw$fHasRouterTYPEVerb$fHasRouterTYPEView$fHasRouterTYPE:>$fHasRouterTYPE:>0$fHasRouterTYPE:>1$fHasRouterTYPE:>2$fHasRouterTYPE:>3$fHasRouterTYPE:>4$fHasRouterTYPE:<|>$fShowRoutingError$fEqRoutingError$fOrdRoutingError$fShowLocation $fEqLocation $fOrdLocationdiff mountElement delegator getCurrentURIpushURI replaceURIuriSubArrowsarrowXarrowY arrowsSubwasdSub directionSub keyboardSub $fShowArrows $fEqArrowsmouseSubSSE SSEMessageSSECloseSSEErrorsseSub $fShowSSE$fEqSSEwindowCoordsSub windowSubwindowSubWithOptions accentHeight_ accelerate_ accumulate_ additive_ alphabetic_ allowReorder_ amplitude_ arabicForm_ascent_attributeName_attributeType_ autoReverse_azimuth_baseFrequency_ baseProfile_bbox_begin_bias_by_ calcMode_ capHeight_class_'clipPathUnits_contentScriptType_contentStyleType_cx_cy_d_ decelerate_descent_diffuseConstant_divisor_dur_dx_dy_ edgeMode_ elevation_end_ exponent_externalResourcesRequired_ filterRes_ filterUnits_format_from_fx_fy_g1_g2_ glyphName_ glyphRef_gradientTransform_gradientUnits_hanging_ horizAdvX_ horizOriginX_ horizOriginY_ ideographic_in_'in2_ intercept_k_k1_k2_k3_k4_ kernelMatrix_kernelUnitLength_ keyPoints_ keySplines_ keyTimes_lang_ lengthAdjust_limitingConeAngle_local_ markerHeight_ markerUnits_ markerWidth_maskContentUnits_ maskUnits_ mathematical_mode_ numOctaves_offset_ operator_order_orient_ orientation_origin_overlinePosition_overlineThickness_panose1_path_ pathLength_patternContentUnits_patternTransform_ patternUnits_ pointOrder_points_ pointsAtX_ pointsAtY_ pointsAtZ_preserveAlpha_preserveAspectRatio_primitiveUnits_r_radius_refX_refY_renderingIntent_ repeatCount_ repeatDur_requiredExtensions_requiredFeatures_restart_result_rotate_rx_ry_scale_seed_slope_spacing_specularConstant_specularExponent_speed_ spreadMethod_ startOffset_ stdDeviation_stemh_stemv_ stitchTiles_strikethroughPosition_strikethroughThickness_string_ surfaceScale_systemLanguage_ tableValues_targetX_targetY_ textLength_to_ transform_type_'u1_u2_underlinePosition_underlineThickness_unicode_ unicodeRange_ unitsPerEm_ vAlphabetic_ vHanging_ vIdeographic_vMathematical_values_version_ vertAdvY_ vertOriginX_ vertOriginY_viewBox_ viewTarget_widths_x_xHeight_x1_x2_xChannelSelector_ xlinkActuate_ xlinkArcrole_ xlinkHref_ xlinkRole_ xlinkShow_ xlinkTitle_ xlinkType_xmlBase_xmlLang_ xmlSpace_y_y1_y2_yChannelSelector_z_ zoomAndPan_alignmentBaseline_baselineShift_ clipPath_ clipRule_clip_colorInterpolationFilters_colorInterpolation_ colorProfile_colorRendering_color_cursor_ direction_display_dominantBaseline_enableBackground_ fillOpacity_ fillRule_fill_filter_ floodColor_ floodOpacity_ fontFamily_fontSizeAdjust_ fontSize_ fontStretch_ fontStyle_ fontVariant_ fontWeight_glyphOrientationHorizontal_glyphOrientationVertical_imageRendering_kerning_letterSpacing_lightingColor_ markerEnd_ markerMid_ markerStart_mask_opacity_ overflow_pointerEvents_shapeRendering_ stopColor_ stopOpacity_strokeDasharray_strokeDashoffset_strokeLinecap_strokeLinejoin_strokeMiterlimit_strokeOpacity_ strokeWidth_stroke_ textAnchor_textDecoration_textRendering_ unicodeBidi_ visibility_ wordSpacing_ writingMode_svg_foreignObject_circle_ellipse_image_line_polygon_ polyline_rect_use_animate_ animateColor_animateMotion_animateTransform_mpath_set_desc_ metadata_defs_g_marker_ missingGlyph_switch_symbol_ altGlyph_ altGlyphDef_ altGlyphItem_glyph_ textPath_text_tref_tspan_font_ fontFace_fontFaceFormat_ fontFaceName_ fontFaceSrc_ fontFaceUri_hkern_vkern_linearGradient_radialGradient_stop_feBlend_feColorMatrix_feComponentTransfer_ feComposite_feConvolveMatrix_feDiffuseLighting_feDisplacementMap_feFlood_feFuncA_feFuncB_feFuncG_feFuncR_feGaussianBlur_feImage_feMerge_ feMergeNode_ feMorhpology_ feOffset_feSpecularLighting_feTile_ feTurbulence_feDistantLight_ fePointLight_ feSpotLight_view_onBeginonEndonRepeatonAbortonErroronResizeonScrollonLoadonUnloadonZoom onActivate onFocusIn onFocusOut onMouseMoveToServerRoutes TransitionLogLevelOffDebugPrerenderAppmodelviewsubsevents initialAction mountPointlogLevel mapActionfromTransition toTransition scheduleIO scheduleIO_scheduleIOFor_ scheduleSub$fShowLogLevel $fEqLogLevel withFoldableconditionalViews=: CloseCode CLOSE_NORMALCLOSE_GOING_AWAYCLOSE_PROTOCOL_ERRORCLOSE_UNSUPPORTEDCLOSE_NO_STATUSCLOSE_ABNORMALUnsupported_DataPolicy_ViolationCLOSE_TOO_LARGEMissing_ExtensionInternal_ErrorService_RestartTry_Again_Later TLS_Handshake OtherCode SocketState CONNECTINGOPENCLOSINGCLOSEDReasonWasClean ProtocolsURL WebSocketWebSocketMessageWebSocketClose WebSocketOpenWebSocketError$fShowWebSocket $fEqWebSocket$fShowCloseCode $fEqCloseCode$fGenericCloseCode$fShowSocketState$fEqSocketState$fOrdSocketState$fEnumSocketState $fShowReason $fEqReason$fShowWasClean $fEqWasClean$fShowProtocols $fEqProtocols $fShowURL$fEqURLSocketcreate socketStatesendclosewasCleancodereason websocketSubconnectgetSocketStatemisostartAppNotify newNotifynewEmptyNotifywaitnotifybaseGHC.Base<>Monoidmconcatmemptymappend text-1.2.3.2Data.Text.Internalempty Data.MonoidFirstgetFirstLastgetLastApgetApData.Semigroup.InternalDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt Data.Textcopy stripSuffixcommonPrefixes stripPrefix isInfixOf isSuffixOf isPrefixOfunwordsunlineslineswordszipWithzipcount findIndexindex breakOnAll breakOnEndbreakOnfilter partitionfindchunksOfsplitsplitOntailsinitsgroupgroupBybreakspansplitAtstripstripEnd stripStart dropAround dropWhileEnd dropWhile takeWhileEnd takeWhiledropEnddroptakeEndtakeunfoldrNunfoldr replicate mapAccumR mapAccumLscanr1scanrscanl1scanlminimummaximumallany concatMapconcatfoldr1foldrfoldl1'foldl1foldl'foldl transposecenter justifyRight justifyLefttoTitletoUppertoLower toCaseFoldreplacereverse intersperse intercalatemap compareLengthnullunsnocinittaillastunconsheadappendsnocconspackData.Text.Show singletonunpackCString#unpackGHCJS.Marshal.InternalToJSValObjectghc-prim GHC.TypesWordFloatDoubleIntString"lucid-2.11.0-W7MBzy6Fb41lpUrcbgN2e Lucid.BaseHtml Data.StringIsStringBoolinteger-wired-inGHC.Integer.TypeIntegerRouterrouteLoc GHC.MaybeNothing Data.FoldableFoldableMaybe