React.Basic
#ComponentSpec
type ComponentSpec props state action = (initialState :: state, update :: Self props state action -> action -> StateUpdate props state action, render :: Self props state action -> JSX, didMount :: Self props state action -> Effect Unit, shouldUpdate :: Self props state action -> { nextProps :: props, nextState :: state } -> Boolean, didUpdate :: Self props state action -> { prevProps :: props, prevState :: state } -> Effect Unit, willUnmount :: Self props state action -> Effect Unit)ComponentSpec represents a React-Basic component implementation.
These are the properties your component definition may override
with specific implementations. None are required to be overridden, unless
an overridden function interacts with state, in which case initialState
is required (the compiler enforces this). While you can use state and
dispatch actions without defining update, doing so doesn't make much sense
and will emit a warning.
initialState- The component's starting state.
- Avoid mirroring prop values in state.
update- All state updates go through
update. updateis called whensendis used to dispatch an action.- State changes are described using
StateUpdate. OnlyUpdateandUpdateAndSideEffectswill cause rerenders and a call todidUpdate. - Side effects requested are only invoked after any corrosponding state update has completed its render cycle and the changes have been applied. This means it is safe to interact with the DOM in a side effect, for example.
- All state updates go through
render- Takes a current snapshot of the component (
Self) and converts it to renderableJSX.
- Takes a current snapshot of the component (
didMount- The React component's
componentDidMountlifecycle. Useful for initiating an action on first mount, such as fetching data from a server.
- The React component's
shouldUpdate- Can be useful for performance optimizations. Rarely necessary.
didUpdate- The React component's
componentDidUpdatelifecycle. Rarely necessary.
- The React component's
willUnmount- The React component's
componentWillUnmountlifecycle. Any subscriptions or timers created indidMountordidUpdateshould be disposed of here.
- The React component's
The component spec is generally not exported from your component
module and this type is rarely used explicitly. make will validate whether
your component's internal types line up.
For example:
component :: Component Props
component = createComponent "Counter"
type Props =
{ label :: String
}
data Action
= Increment
counter :: Props -> JSX
counter = make component
{ initialState: { counter: 0 }
, update: \self action -> case action of
Increment ->
Update self.state { counter = self.state.counter + 1 }
, render: \self ->
R.button
{ onClick: capture_ self Increment
, children: [ R.text (self.props.label <> ": " <> show self.state.counter) ]
}
}
This example component overrides initialState, update, and render.
Note: A ComponentSpec is not a valid React component by itself. If you would like to use
a React-Basic component from JavaScript, use toReactComponent.
See also: Component, ComponentSpec, make, makeStateless
#createComponent
createComponent :: forall props. String -> Component propsCreates a Component with a given Display Name.
The resulting component spec is usually given the simplified Component type:
component :: Component Props
component = createComponent "Counter"
This function should be used at the module level and considered side effecting.
This is because React uses referential equality when deciding whether a new
JSX tree is a valid update or if it needs to be replaced entirely
(expensive and clears component state lower in the tree).
Note: A specific type for the props in Component props should always be chosen at this point.
It's technically possible to declare the component with forall props. Component props
but doing so is unsafe. Leaving the prop type open allows the use of a single Component
definition in multiple React-Basic components that may have different prop types. Because
component lifecycles are managed by React, it becomes possible for incompatible prop values to
be passed by React into lifecycle functions.
Note: A Component is not a valid React component by itself. If you would like to use
a React-Basic component from JavaScript, use toReactComponent.
See also: Component, make, makeStateless
#Component
data Component propsOpaque component information for internal use.
Note: Never define a component with
a less specific type for props than its associated ComponentSpec and make
calls, as this can lead to unsafe interactions with React's lifecycle management.
For the curious: This is the "class" React will use to render and
identify the component. It receives the ComponentSpec as a prop and knows
how to defer behavior to it. It requires very specific props and is not useful by
itself from JavaScript. For JavaScript interop, see toReactComponent.
#StateUpdate
data StateUpdate props state actionUsed by the update function to describe the kind of state update and/or side
effects desired.
See also: ComponentSpec, capture
Constructors
NoUpdateUpdate stateSideEffects (Self props state action -> Effect Unit)UpdateAndSideEffects state (Self props state action -> Effect Unit)
#Self
type Self props state action = { props :: props, state :: state, instance_ :: ReactComponentInstance }Self represents the component instance at a particular point in time.
props- A snapshot of
propstaken when thisSelfwas created.
- A snapshot of
state- A snapshot of
statetaken when thisSelfwas created.
- A snapshot of
instance_- Unsafe escape hatch to the underlying component instance (
thisin the JavaScript React paradigm). Avoid as much as possible, but it's still frequently better than rewriting an entire component in JavaScript.
- Unsafe escape hatch to the underlying component instance (
See also: ComponentSpec, send, capture, readProps, readState
#send
#sendAsync
sendAsync :: forall props state action. Self props state action -> Aff action -> Effect UnitConvenience function for sending an action when an Aff completes.
Note: Potential failure should be handled in the given Aff and converted
to an action, as the default error handler will simply log the error to
the console.
See also: send
#capture
capture :: forall props state action a. Self props state action -> EventFn SyntheticEvent a -> (a -> action) -> EventHandlerCreate a capturing* EventHandler to send an action when an event occurs. For
more complicated event handlers requiring Effect, use handler from React.Basic.Events.
*calls preventDefault and stopPropagation
See also: update, capture_, monitor, React.Basic.Events
#capture_
capture_ :: forall props state action. Self props state action -> action -> EventHandlerLike capture, but for actions which don't need to extract information from the Event.
See also: update, capture, monitor_
#monitor
monitor :: forall props state action a. Self props state action -> EventFn SyntheticEvent a -> (a -> action) -> EventHandlerLike capture, but does not cancel the event.
See also: update, capture, monitor\_
#monitor_
monitor_ :: forall props state action. Self props state action -> action -> EventHandlerLike capture_, but does not cancel the event.
See also: update, monitor, capture_, React.Basic.Events
#readProps
readProps :: forall props state action. Self props state action -> Effect propsRead the most up to date props directly from the component instance
associated with this Self.
_Note: This function is for specific, asynchronous edge cases.
Generally, the props snapshot on Self is sufficient.
See also: Self
#readState
readState :: forall props state action. Self props state action -> Effect stateRead the most up to date state directly from the component instance
associated with this Self.
_Note: This function is for specific, asynchronous edge cases.
Generally, the state snapshot on Self is sufficient.
See also: Self
#make
make :: forall spec spec_ props state action. Union spec spec_ (ComponentSpec props state action) => Component props -> { initialState :: state, render :: Self props state action -> JSX | spec } -> props -> JSXTurn a Component and ComponentSpec into a usable render function.
This is where you will want to provide customized implementations:
component :: Component Props
component = createComponent "Counter"
type Props =
{ label :: String
}
data Action
= Increment
counter :: Props -> JSX
counter = make component
{ initialState: { counter: 0 }
, update: \self action -> case action of
Increment ->
Update self.state { counter = self.state.counter + 1 }
, render: \self ->
R.button
{ onClick: capture_ self Increment
, children: [ R.text (self.props.label <> ": " <> show self.state.counter) ]
}
}
See also: makeStateless, createComponent, Component, ComponentSpec
#makeStateless
makeStateless :: forall props. Component props -> (props -> JSX) -> props -> JSXMakes stateless component definition slightly less verbose:
component :: Component Props
component = createComponent "Xyz"
myComponent :: Props -> JSX
myComponent = makeStateless component \props -> JSX
Note: The only difference between a stateless React-Basic component and
a plain props -> JSX function is the presense of the component name
in React's dev tools and error stacks. It's just a conceptual boundary.
If this isn't important simply write a props -> JSX function.
See also: make, createComponent, Component, ComponentSpec
#JSX
data JSX :: TypeRepresents rendered React VDOM (the result of calling React.createElement
in JavaScript).
JSX is a Monoid:
append- Merge two
JSXnodes usingReact.Fragment.
- Merge two
mempty- The
emptynode; renders nothing.
- The
Hint: Many useful utility functions already exist for Monoids. For example,
guard can be used to conditionally render a subtree of components.
Instances
#empty
#keyed
#fragment
#element
element :: forall props. ReactComponent { | props } -> { | props } -> JSXCreate a JSX node from a ReactComponent, by providing the props.
This function is for non-React-Basic React components, such as those imported from FFI.
See also: ReactComponent, elementKeyed
#elementKeyed
elementKeyed :: forall props. ReactComponent { | props } -> { key :: String | props } -> JSXCreate a JSX node from a ReactComponent, by providing the props and a key.
This function is for non-React-Basic React components, such as those imported from FFI.
See also: ReactComponent, element, React's documentation regarding the special key prop
#displayNameFromComponent
displayNameFromComponent :: forall props. Component props -> StringRetrieve the Display Name from a ComponentSpec. Useful for debugging and improving
error messages in logs.
See also: displayNameFromSelf, createComponent
#displayNameFromSelf
displayNameFromSelf :: forall props state action. Self props state action -> StringRetrieve the Display Name from a Self. Useful for debugging and improving
error messages in logs.
See also: displayNameFromComponent, createComponent
#ReactComponent
data ReactComponent propsRepresents a traditional React component. Useful for JavaScript interop and FFI. For example:
foreign import ComponentRequiringJSHacks :: ReactComponent { someProp :: String }
See also: element, toReactComponent
#ReactComponentInstance
data ReactComponentInstanceAn opaque representation of a React component's instance (this in the JavaScript
React paradigm). It exists as an escape hatch to unsafe behavior. Use it with
caution.
#toReactComponent
toReactComponent :: forall spec spec_ jsProps props state action. Union spec spec_ (ComponentSpec props state action) => ({ | jsProps } -> props) -> Component props -> { render :: Self props state action -> JSX | spec } -> ReactComponent { | jsProps }Convert a React-Basic ComponentSpec to a JavaScript-friendly React component.
This function should only be used for JS interop and not normal React-Basic usage.
Note: Like createComponent, toReactComponent is side effecting in that
it creates a "class" React will see as unique each time it's called. Lift
any usage up to the module level, usage in render or any other function,
and applying any type classes to the props.
See also: ReactComponent
Modules
- Affjax
- Affjax.RequestBody
- Affjax.RequestHeader
- Affjax.ResponseFormat
- Affjax.ResponseHeader
- Affjax.StatusCode
- Ansi.Codes
- Ansi.Output
- CSS
- CSS.Animation
- CSS.Background
- CSS.Border
- CSS.Box
- CSS.Color
- CSS.Common
- CSS.Display
- CSS.Elements
- CSS.Flexbox
- CSS.Font
- CSS.FontFace
- CSS.Geometry
- CSS.Gradient
- CSS.ListStyle
- CSS.ListStyle.Image
- CSS.ListStyle.Position
- CSS.ListStyle.Type
- CSS.Media
- CSS.Overflow
- CSS.Property
- CSS.Pseudo
- CSS.Render
- CSS.Selector
- CSS.Size
- CSS.String
- CSS.Stylesheet
- CSS.Text
- CSS.Text.Shadow
- CSS.Text.Transform
- CSS.Text.Whitespace
- CSS.TextAlign
- CSS.Time
- CSS.Transform
- CSS.Transition
- CSS.VerticalAlign
- Chirashi
- ChocoPie
- Color
- Color.Blending
- Color.Scale
- Color.Scale.Perceptual
- Color.Scheme.Clrs
- Color.Scheme.HTML
- Color.Scheme.Harmonic
- Color.Scheme.MaterialDesign
- Color.Scheme.X11
- Control.Alt
- Control.Alternative
- Control.Applicative
- Control.Applicative.Free
- Control.Applicative.Free.Gen
- Control.Apply
- Control.Biapplicative
- Control.Biapply
- Control.Bind
- Control.Category
- Control.Comonad
- Control.Comonad.Cofree
- Control.Comonad.Cofree.Class
- Control.Comonad.Env
- Control.Comonad.Env.Class
- Control.Comonad.Env.Trans
- Control.Comonad.Store
- Control.Comonad.Store.Class
- Control.Comonad.Store.Trans
- Control.Comonad.Traced
- Control.Comonad.Traced.Class
- Control.Comonad.Traced.Trans
- Control.Comonad.Trans.Class
- Control.Coroutine
- Control.Coroutine.Aff
- Control.Error.Util
- Control.Extend
- Control.Lazy
- Control.Monad
- Control.Monad.Cont
- Control.Monad.Cont.Class
- Control.Monad.Cont.Trans
- Control.Monad.Error.Class
- Control.Monad.Except
- Control.Monad.Except.Trans
- Control.Monad.Fork.Class
- Control.Monad.Free
- Control.Monad.Free.Class
- Control.Monad.Free.Trans
- Control.Monad.Gen
- Control.Monad.Gen.Class
- Control.Monad.Gen.Common
- Control.Monad.List.Trans
- Control.Monad.Maybe.Trans
- Control.Monad.Morph
- Control.Monad.RWS
- Control.Monad.RWS.Trans
- Control.Monad.Reader
- Control.Monad.Reader.Class
- Control.Monad.Reader.Trans
- Control.Monad.Rec.Class
- Control.Monad.ST
- Control.Monad.ST.Internal
- Control.Monad.ST.Ref
- Control.Monad.State
- Control.Monad.State.Class
- Control.Monad.State.Trans
- Control.Monad.Trampoline
- Control.Monad.Trans.Class
- Control.Monad.Writer
- Control.Monad.Writer.Class
- Control.Monad.Writer.Trans
- Control.MonadPlus
- Control.MonadZero
- Control.Parallel
- Control.Parallel.Class
- Control.Plus
- Control.Promise
- Control.Semigroupoid
- DOM.HTML.Indexed
- DOM.HTML.Indexed.ButtonType
- DOM.HTML.Indexed.CrossOriginValue
- DOM.HTML.Indexed.DirValue
- DOM.HTML.Indexed.FormMethod
- DOM.HTML.Indexed.InputType
- DOM.HTML.Indexed.KindValue
- DOM.HTML.Indexed.MenuType
- DOM.HTML.Indexed.MenuitemType
- DOM.HTML.Indexed.OnOff
- DOM.HTML.Indexed.OrderedListType
- DOM.HTML.Indexed.PreloadValue
- DOM.HTML.Indexed.ScopeValue
- DOM.HTML.Indexed.StepValue
- DOM.HTML.Indexed.WrapValue
- Data.Argonaut
- Data.Argonaut.Core
- Data.Argonaut.Decode
- Data.Argonaut.Decode.Class
- Data.Argonaut.Decode.Combinators
- Data.Argonaut.Decode.Generic.Rep
- Data.Argonaut.Encode
- Data.Argonaut.Encode.Class
- Data.Argonaut.Encode.Combinators
- Data.Argonaut.Encode.Generic.Rep
- Data.Argonaut.Gen
- Data.Argonaut.JCursor
- Data.Argonaut.JCursor.Gen
- Data.Argonaut.Parser
- Data.Argonaut.Prisms
- Data.Argonaut.Traversals
- Data.Argonaut.Types.Generic.Rep
- Data.Array
- Data.Array.NonEmpty
- Data.Array.NonEmpty.Internal
- Data.Array.Partial
- Data.Array.ST
- Data.Array.ST.Iterator
- Data.Array.ST.Partial
- Data.ArrayBuffer.Types
- Data.Bifoldable
- Data.Bifunctor
- Data.Bifunctor.Clown
- Data.Bifunctor.Flip
- Data.Bifunctor.Join
- Data.Bifunctor.Joker
- Data.Bifunctor.Product
- Data.Bifunctor.Wrap
- Data.BigInt
- Data.Bitraversable
- Data.Boolean
- Data.BooleanAlgebra
- Data.Bounded
- Data.CatList
- Data.CatQueue
- Data.Char
- Data.Char.Gen
- Data.Char.Unicode
- Data.Char.Unicode.Internal
- Data.CommutativeRing
- Data.Compactable
- Data.Comparison
- Data.Const
- Data.Coyoneda
- Data.Date
- Data.Date.Component
- Data.Date.Component.Gen
- Data.Date.Gen
- Data.DateTime
- Data.DateTime.Gen
- Data.DateTime.Instant
- Data.Decidable
- Data.Decide
- Data.Decimal
- Data.Distributive
- Data.Divide
- Data.Divisible
- Data.DivisionRing
- Data.Either
- Data.Either.Inject
- Data.Either.Nested
- Data.EitherR
- Data.Enum
- Data.Enum.Gen
- Data.Eq
- Data.Equivalence
- Data.EuclideanRing
- Data.Exists
- Data.Field
- Data.Filterable
- Data.Foldable
- Data.FoldableWithIndex
- Data.FormURLEncoded
- Data.Formatter.DateTime
- Data.Formatter.Internal
- Data.Formatter.Interval
- Data.Formatter.Number
- Data.Formatter.Parser.Interval
- Data.Formatter.Parser.Number
- Data.Formatter.Parser.Utils
- Data.Function
- Data.Function.Memoize
- Data.Function.Uncurried
- Data.Functor
- Data.Functor.App
- Data.Functor.Compose
- Data.Functor.Contravariant
- Data.Functor.Coproduct
- Data.Functor.Coproduct.Inject
- Data.Functor.Coproduct.Nested
- Data.Functor.Invariant
- Data.Functor.Mu
- Data.Functor.Nu
- Data.Functor.Pairing
- Data.Functor.Pairing.Co
- Data.Functor.Product
- Data.Functor.Product.Nested
- Data.Functor.Variant
- Data.FunctorWithIndex
- Data.Generic.Rep
- Data.Generic.Rep.Bounded
- Data.Generic.Rep.Enum
- Data.Generic.Rep.Eq
- Data.Generic.Rep.HeytingAlgebra
- Data.Generic.Rep.Monoid
- Data.Generic.Rep.Ord
- Data.Generic.Rep.Ring
- Data.Generic.Rep.Semigroup
- Data.Generic.Rep.Semiring
- Data.Generic.Rep.Show
- Data.Group
- Data.Group.Action
- Data.Group.Free
- Data.HTTP.Method
- Data.HashMap
- Data.HashSet
- Data.Hashable
- Data.HeytingAlgebra
- Data.Identity
- Data.Int
- Data.Int.Bits
- Data.Interval
- Data.Interval.Duration
- Data.Interval.Duration.Iso
- Data.JSDate
- Data.Lazy
- Data.Lens
- Data.Lens.At
- Data.Lens.Common
- Data.Lens.Fold
- Data.Lens.Fold.Partial
- Data.Lens.Getter
- Data.Lens.Grate
- Data.Lens.Index
- Data.Lens.Indexed
- Data.Lens.Internal.Exchange
- Data.Lens.Internal.Focusing
- Data.Lens.Internal.Forget
- Data.Lens.Internal.Grating
- Data.Lens.Internal.Indexed
- Data.Lens.Internal.Market
- Data.Lens.Internal.Re
- Data.Lens.Internal.Shop
- Data.Lens.Internal.Tagged
- Data.Lens.Internal.Wander
- Data.Lens.Internal.Zipping
- Data.Lens.Iso
- Data.Lens.Iso.Newtype
- Data.Lens.Lens
- Data.Lens.Lens.Product
- Data.Lens.Lens.Tuple
- Data.Lens.Lens.Unit
- Data.Lens.Lens.Void
- Data.Lens.Prism
- Data.Lens.Prism.Coproduct
- Data.Lens.Prism.Either
- Data.Lens.Prism.Maybe
- Data.Lens.Record
- Data.Lens.Setter
- Data.Lens.Traversal
- Data.Lens.Types
- Data.Lens.Zoom
- Data.List
- Data.List.Lazy
- Data.List.Lazy.NonEmpty
- Data.List.Lazy.Types
- Data.List.NonEmpty
- Data.List.Partial
- Data.List.Types
- Data.List.ZipList
- Data.Machine.Mealy
- Data.Map
- Data.Map.Gen
- Data.Map.Internal
- Data.Maybe
- Data.Maybe.First
- Data.Maybe.Last
- Data.MediaType
- Data.MediaType.Common
- Data.Monoid
- Data.Monoid.Additive
- Data.Monoid.Alternate
- Data.Monoid.Conj
- Data.Monoid.Disj
- Data.Monoid.Dual
- Data.Monoid.Endo
- Data.Monoid.Multiplicative
- Data.NaturalTransformation
- Data.Newtype
- Data.NonEmpty
- Data.Nullable
- Data.Number
- Data.Number.Approximate
- Data.Number.Format
- Data.Op
- Data.Options
- Data.Ord
- Data.Ord.Down
- Data.Ord.Max
- Data.Ord.Min
- Data.Ord.Unsafe
- Data.Ordering
- Data.Posix
- Data.Posix.Signal
- Data.Predicate
- Data.Profunctor
- Data.Profunctor.Choice
- Data.Profunctor.Closed
- Data.Profunctor.Clown
- Data.Profunctor.Cochoice
- Data.Profunctor.Costar
- Data.Profunctor.Costrong
- Data.Profunctor.Cowrap
- Data.Profunctor.Join
- Data.Profunctor.Joker
- Data.Profunctor.Split
- Data.Profunctor.Star
- Data.Profunctor.Strong
- Data.Profunctor.Wrap
- Data.Ratio
- Data.Rational
- Data.Ring
- Data.Semigroup
- Data.Semigroup.Commutative
- Data.Semigroup.First
- Data.Semigroup.Foldable
- Data.Semigroup.Last
- Data.Semigroup.Traversable
- Data.Semiring
- Data.Semiring.Free
- Data.Set
- Data.Set.NonEmpty
- Data.Show
- Data.String
- Data.String.CaseInsensitive
- Data.String.CodePoints
- Data.String.CodeUnits
- Data.String.Common
- Data.String.Gen
- Data.String.HtmlElements
- Data.String.NonEmpty
- Data.String.NonEmpty.CaseInsensitive
- Data.String.NonEmpty.CodePoints
- Data.String.NonEmpty.CodeUnits
- Data.String.NonEmpty.Internal
- Data.String.Pattern
- Data.String.Regex
- Data.String.Regex.Flags
- Data.String.Regex.Unsafe
- Data.String.Unsafe
- Data.Symbol
- Data.TacitString
- Data.These
- Data.These.Gen
- Data.Time
- Data.Time.Component
- Data.Time.Component.Gen
- Data.Time.Duration
- Data.Time.Duration.Gen
- Data.Time.Gen
- Data.Traversable
- Data.Traversable.Accum
- Data.Traversable.Accum.Internal
- Data.TraversableWithIndex
- Data.Tuple
- Data.Tuple.Nested
- Data.Typelevel.Bool
- Data.Typelevel.Num
- Data.Typelevel.Num.Aliases
- Data.Typelevel.Num.Ops
- Data.Typelevel.Num.Reps
- Data.Typelevel.Num.Sets
- Data.Typelevel.Undefined
- Data.Unfoldable
- Data.Unfoldable1
- Data.Unit
- Data.Validation.Semigroup
- Data.Validation.Semiring
- Data.Variant
- Data.Variant.Internal
- Data.Void
- Data.Witherable
- Data.Yoneda
- Database.Postgres
- Database.Postgres.SqlValue
- Database.Postgres.Transaction
- Debug.Trace
- Effect
- Effect.AVar
- Effect.Aff
- Effect.Aff.AVar
- Effect.Aff.Class
- Effect.Aff.Compat
- Effect.Class
- Effect.Class.Console
- Effect.Console
- Effect.Exception
- Effect.Exception.Unsafe
- Effect.Now
- Effect.Random
- Effect.Ref
- Effect.Timer
- Effect.Uncurried
- Effect.Unsafe
- ExpectInferred
- FRP.Behavior
- FRP.Behavior.Keyboard
- FRP.Behavior.Mouse
- FRP.Behavior.Time
- FRP.Event
- FRP.Event.AnimationFrame
- FRP.Event.Class
- FRP.Event.Keyboard
- FRP.Event.Mouse
- FRP.Event.Semantic
- FRP.Event.Time
- Foreign
- Foreign.Class
- Foreign.Generic
- Foreign.Generic.Class
- Foreign.Generic.EnumEncoding
- Foreign.Generic.Types
- Foreign.Index
- Foreign.Internal
- Foreign.JSON
- Foreign.Keys
- Foreign.NullOrUndefined
- Foreign.Object
- Foreign.Object.Gen
- Foreign.Object.ST
- Foreign.Object.ST.Unsafe
- Foreign.Object.Unsafe
- Global
- Global.Unsafe
- Gomtang.Basic
- Graphics.Canvas
- Halogen
- Halogen.Aff
- Halogen.Aff.Driver
- Halogen.Aff.Driver.Eval
- Halogen.Aff.Driver.State
- Halogen.Aff.Util
- Halogen.Component
- Halogen.Component.ChildPath
- Halogen.Component.Profunctor
- Halogen.Data.OrdBox
- Halogen.Data.Prism
- Halogen.HTML
- Halogen.HTML.CSS
- Halogen.HTML.Core
- Halogen.HTML.Elements
- Halogen.HTML.Elements.Keyed
- Halogen.HTML.Events
- Halogen.HTML.Properties
- Halogen.HTML.Properties.ARIA
- Halogen.Query
- Halogen.Query.EventSource
- Halogen.Query.ForkF
- Halogen.Query.HalogenM
- Halogen.Query.InputF
- Halogen.Themes.Bootstrap3
- Halogen.Themes.Bootstrap3.InputGroup
- Halogen.VDom
- Halogen.VDom.DOM
- Halogen.VDom.DOM.Prop
- Halogen.VDom.Driver
- Halogen.VDom.Machine
- Halogen.VDom.Types
- Halogen.VDom.Util
- Heterogeneous.Folding
- Heterogeneous.Mapping
- Jajanmen
- Kancho
- LenientHtmlParser
- Makkori
- Math
- Milkis
- Milkis.Impl
- Milkis.Impl.Node
- Milkis.Impl.Window
- Naporitan
- Node.Buffer
- Node.Buffer.Unsafe
- Node.ChildProcess
- Node.Encoding
- Node.FS
- Node.FS.Aff
- Node.FS.Async
- Node.FS.Internal
- Node.FS.Perms
- Node.FS.Stats
- Node.FS.Stream
- Node.FS.Sync
- Node.Globals
- Node.HTTP
- Node.HTTP.Client
- Node.HTTP.Secure
- Node.Path
- Node.Platform
- Node.Process
- Node.ReadLine
- Node.Stream
- Node.URL
- Node.Yargs
- Node.Yargs.Applicative
- Node.Yargs.Setup
- PSCI.Support
- Partial
- Partial.Unsafe
- Performance.Minibench
- Phoenix
- Pipes
- Pipes.Core
- Pipes.Internal
- Pipes.ListT
- Pipes.Prelude
- Polyform.Field
- Polyform.Field.Generic
- Polyform.Field.Generic.Option
- Polyform.Field.Html5
- Polyform.Field.Validation.Combinators
- Polyform.Form.Component
- Polyform.Input.Foreign
- Polyform.Input.Http
- Polyform.Input.Interpret
- Polyform.Input.Interpret.Http
- Polyform.Input.Interpret.Record
- Polyform.Input.Interpret.Validation
- Polyform.Validation
- Polyform.Validation.Par
- Prelude
- Prim
- Prim.Boolean
- Prim.Ordering
- Prim.Row
- Prim.RowList
- Prim.Symbol
- Prim.TypeError
- Random.LCG
- React
- React.Basic
- React.Basic.Compat
- React.Basic.Components.Async
- React.Basic.DOM
- React.Basic.DOM.Components.GlobalEvents
- React.Basic.DOM.Components.LogLifecycles
- React.Basic.DOM.Components.Ref
- React.Basic.DOM.Events
- React.Basic.DOM.Generated
- React.Basic.DOM.Internal
- React.Basic.Events
- React.DOM
- React.DOM.Dynamic
- React.DOM.Props
- React.DOM.SVG
- React.DOM.SVG.Dynamic
- React.SyntheticEvent
- ReactDOM
- Record
- Record.Builder
- Record.Extra
- Record.Format
- Record.ST
- Record.Unsafe
- Record.Unsafe.Union
- ReduxDevTools
- Renderless.State
- Routing
- Routing.Hash
- Routing.Match
- Routing.Match.Error
- Routing.Parser
- Routing.PushState
- Routing.Types
- Run
- Run.Choose
- Run.Except
- Run.Internal
- Run.Reader
- Run.State
- Run.Writer
- SQLite3
- SQLite3.Internal
- Select
- Select.Setters
- Shoronpo
- Signal
- Signal.Aff
- Signal.Channel
- Signal.DOM
- Signal.Effect
- Signal.Time
- Sijidou
- Simple.JSON
- Simple.JSON.Generics
- Simple.JSON.Generics.EnumSumRep
- Simple.JSON.Generics.TaggedSumRep
- Simple.JSON.Generics.UntaggedProductRep
- Simple.JSON.Generics.UntaggedSumRep
- Sunde
- Svg.Parser
- Svg.Parser.Halogen
- TelegramBot
- Test.Assert
- Test.Spec
- Test.Spec.Assertions
- Test.Spec.Assertions.Aff
- Test.Spec.Assertions.String
- Test.Spec.Color
- Test.Spec.Console
- Test.Spec.Reporter
- Test.Spec.Reporter.Base
- Test.Spec.Reporter.Console
- Test.Spec.Reporter.Dot
- Test.Spec.Reporter.Spec
- Test.Spec.Reporter.Tap
- Test.Spec.Runner
- Test.Spec.Runner.Event
- Test.Spec.Speed
- Test.Spec.Summary
- Test.StrongCheck
- Test.StrongCheck.Arbitrary
- Test.StrongCheck.Data.AlphaNumString
- Test.StrongCheck.Data.ApproxNumber
- Test.StrongCheck.Data.ArbBoundedEnum
- Test.StrongCheck.Data.ArbDateTime
- Test.StrongCheck.Data.Negative
- Test.StrongCheck.Data.NonZero
- Test.StrongCheck.Data.Positive
- Test.StrongCheck.Data.Signum
- Test.StrongCheck.Gen
- Test.StrongCheck.LCG
- Test.StrongCheck.Landscape
- Test.StrongCheck.Perturb
- Text.Email.Parser
- Text.Email.Validate
- Text.Parsing.Indent
- Text.Parsing.Parser
- Text.Parsing.Parser.Combinators
- Text.Parsing.Parser.Expr
- Text.Parsing.Parser.Language
- Text.Parsing.Parser.Pos
- Text.Parsing.Parser.String
- Text.Parsing.Parser.Token
- Text.Parsing.StringParser
- Text.Parsing.StringParser.CodePoints
- Text.Parsing.StringParser.CodeUnits
- Text.Parsing.StringParser.Combinators
- Text.Parsing.StringParser.Expr
- Text.Prettier
- Text.Smolder.HTML
- Text.Smolder.HTML.Attributes
- Text.Smolder.Markup
- Text.Smolder.Renderer.String
- Text.Smolder.SVG
- Text.Smolder.SVG.Attributes
- Toppokki
- Tortellini
- Tortellini.Parser
- Type.Data.Boolean
- Type.Data.Ordering
- Type.Data.Row
- Type.Data.RowList
- Type.Data.Symbol
- Type.Equality
- Type.IsEqual
- Type.Prelude
- Type.Proxy
- Type.Row
- Type.Row.Homogeneous
- Unsafe.Coerce
- Unsafe.Reference
- Web.Clipboard.ClipboardEvent
- Web.Clipboard.ClipboardEvent.EventTypes
- Web.DOM
- Web.DOM.CharacterData
- Web.DOM.ChildNode
- Web.DOM.Comment
- Web.DOM.DOMTokenList
- Web.DOM.Document
- Web.DOM.DocumentFragment
- Web.DOM.DocumentType
- Web.DOM.Element
- Web.DOM.HTMLCollection
- Web.DOM.Internal.Types
- Web.DOM.MutationObserver
- Web.DOM.MutationRecord
- Web.DOM.Node
- Web.DOM.NodeList
- Web.DOM.NodeType
- Web.DOM.NonDocumentTypeChildNode
- Web.DOM.NonElementParentNode
- Web.DOM.ParentNode
- Web.DOM.ProcessingInstruction
- Web.DOM.Text
- Web.Event.CustomEvent
- Web.Event.Event
- Web.Event.EventPhase
- Web.Event.EventTarget
- Web.Event.Internal.Types
- Web.File.Blob
- Web.File.File
- Web.File.FileList
- Web.File.FileReader
- Web.File.FileReader.ReadyState
- Web.File.Url
- Web.HTML
- Web.HTML.Event.BeforeUnloadEvent
- Web.HTML.Event.BeforeUnloadEvent.EventTypes
- Web.HTML.Event.DataTransfer
- Web.HTML.Event.DragEvent
- Web.HTML.Event.DragEvent.EventTypes
- Web.HTML.Event.ErrorEvent
- Web.HTML.Event.EventTypes
- Web.HTML.Event.HashChangeEvent
- Web.HTML.Event.HashChangeEvent.EventTypes
- Web.HTML.Event.PageTransitionEvent
- Web.HTML.Event.PageTransitionEvent.EventTypes
- Web.HTML.Event.PopStateEvent
- Web.HTML.Event.PopStateEvent.EventTypes
- Web.HTML.Event.TrackEvent
- Web.HTML.Event.TrackEvent.EventTypes
- Web.HTML.HTMLAnchorElement
- Web.HTML.HTMLAreaElement
- Web.HTML.HTMLAudioElement
- Web.HTML.HTMLBRElement
- Web.HTML.HTMLBaseElement
- Web.HTML.HTMLBodyElement
- Web.HTML.HTMLButtonElement
- Web.HTML.HTMLCanvasElement
- Web.HTML.HTMLDListElement
- Web.HTML.HTMLDataElement
- Web.HTML.HTMLDataListElement
- Web.HTML.HTMLDivElement
- Web.HTML.HTMLDocument
- Web.HTML.HTMLDocument.ReadyState
- Web.HTML.HTMLElement
- Web.HTML.HTMLEmbedElement
- Web.HTML.HTMLFieldSetElement
- Web.HTML.HTMLFormElement
- Web.HTML.HTMLHRElement
- Web.HTML.HTMLHeadElement
- Web.HTML.HTMLHeadingElement
- Web.HTML.HTMLIFrameElement
- Web.HTML.HTMLImageElement
- Web.HTML.HTMLInputElement
- Web.HTML.HTMLKeygenElement
- Web.HTML.HTMLLIElement
- Web.HTML.HTMLLabelElement
- Web.HTML.HTMLLegendElement
- Web.HTML.HTMLLinkElement
- Web.HTML.HTMLMapElement
- Web.HTML.HTMLMediaElement
- Web.HTML.HTMLMediaElement.CanPlayType
- Web.HTML.HTMLMediaElement.NetworkState
- Web.HTML.HTMLMediaElement.ReadyState
- Web.HTML.HTMLMetaElement
- Web.HTML.HTMLMeterElement
- Web.HTML.HTMLModElement
- Web.HTML.HTMLOListElement
- Web.HTML.HTMLObjectElement
- Web.HTML.HTMLOptGroupElement
- Web.HTML.HTMLOptionElement
- Web.HTML.HTMLOutputElement
- Web.HTML.HTMLParagraphElement
- Web.HTML.HTMLParamElement
- Web.HTML.HTMLPreElement
- Web.HTML.HTMLProgressElement
- Web.HTML.HTMLQuoteElement
- Web.HTML.HTMLScriptElement
- Web.HTML.HTMLSelectElement
- Web.HTML.HTMLSourceElement
- Web.HTML.HTMLSpanElement
- Web.HTML.HTMLStyleElement
- Web.HTML.HTMLTableCaptionElement
- Web.HTML.HTMLTableCellElement
- Web.HTML.HTMLTableColElement
- Web.HTML.HTMLTableDataCellElement
- Web.HTML.HTMLTableElement
- Web.HTML.HTMLTableHeaderCellElement
- Web.HTML.HTMLTableRowElement
- Web.HTML.HTMLTableSectionElement
- Web.HTML.HTMLTemplateElement
- Web.HTML.HTMLTextAreaElement
- Web.HTML.HTMLTimeElement
- Web.HTML.HTMLTitleElement
- Web.HTML.HTMLTrackElement
- Web.HTML.HTMLTrackElement.ReadyState
- Web.HTML.HTMLUListElement
- Web.HTML.HTMLVideoElement
- Web.HTML.History
- Web.HTML.Location
- Web.HTML.Navigator
- Web.HTML.SelectionMode
- Web.HTML.ValidityState
- Web.HTML.Window
- Web.Internal.FFI
- Web.Socket.BinaryType
- Web.Socket.Event.CloseEvent
- Web.Socket.Event.EventTypes
- Web.Socket.Event.MessageEvent
- Web.Socket.ReadyState
- Web.Socket.WebSocket
- Web.Storage.Event.StorageEvent
- Web.Storage.Storage
- Web.TouchEvent
- Web.TouchEvent.EventTypes
- Web.TouchEvent.Touch
- Web.TouchEvent.TouchEvent
- Web.TouchEvent.TouchList
- Web.UIEvent.CompositionEvent
- Web.UIEvent.CompositionEvent.EventTypes
- Web.UIEvent.EventTypes
- Web.UIEvent.FocusEvent
- Web.UIEvent.FocusEvent.EventTypes
- Web.UIEvent.InputEvent
- Web.UIEvent.InputEvent.EventTypes
- Web.UIEvent.KeyboardEvent
- Web.UIEvent.KeyboardEvent.EventTypes
- Web.UIEvent.MouseEvent
- Web.UIEvent.MouseEvent.EventTypes
- Web.UIEvent.UIEvent
- Web.UIEvent.WheelEvent
- Web.UIEvent.WheelEvent.EventTypes
- Web.XHR.EventTypes
- Web.XHR.FormData
- Web.XHR.ProgressEvent
- Web.XHR.ReadyState
- Web.XHR.ResponseType
- Web.XHR.XMLHttpRequest
- Web.XHR.XMLHttpRequestUpload
- Xiaomian