Control.MonadZero
This module is deprecated and will be removed in a future release.
The annihilation law witnessed by MonadZero
is trivially satisfied by
lawful monads due to parametricity: while evaluating empty >>= f
, the
function f
can’t ever be called, since that would require empty
to
produce a value, which means that empty >>= f
must be the same as
empty >>= pure
, which by the monad laws is just empty
.
Use Monad
and Alternative
constraints instead.
#MonadZeroIsDeprecated
class MonadZeroIsDeprecated
Instances
(Warn (Text "\'MonadZero\' is deprecated, use \'Monad\' and \'Alternative\' constraints instead")) => MonadZeroIsDeprecated
#MonadZero
class (Monad m, Alternative m, MonadZeroIsDeprecated) <= MonadZero m
The MonadZero
type class has no members of its own; it just specifies
that the type has both Monad
and Alternative
instances.
Types which have MonadZero
instances should also satisfy the following
laws:
- Annihilation:
empty >>= f = empty
Instances
Re-exports from Control.Alt
#Alt
class (Functor f) <= Alt f where
The Alt
type class identifies an associative operation on a type
constructor. It is similar to Semigroup
, except that it applies to
types of kind * -> *
, like Array
or List
, rather than concrete types
String
or Number
.
Alt
instances are required to satisfy the following laws:
- Associativity:
(x <|> y) <|> z == x <|> (y <|> z)
- Distributivity:
f <$> (x <|> y) == (f <$> x) <|> (f <$> y)
For example, the Array
([]
) type is an instance of Alt
, where
(<|>)
is defined to be concatenation.
A common use case is to select the first "valid" item, or, if all items are "invalid", the last "invalid" item.
For example:
import Control.Alt ((<|>))
import Data.Maybe (Maybe(..)
import Data.Either (Either(..))
Nothing <|> Just 1 <|> Just 2 == Just 1
Left "err" <|> Right 1 <|> Right 2 == Right 1
Left "err 1" <|> Left "err 2" <|> Left "err 3" == Left "err 3"
Members
alt :: forall a. f a -> f a -> f a
Instances
#(<|>)
Operator alias for Control.Alt.alt (left-associative / precedence 3)
Re-exports from Control.Alternative
#Alternative
class (Applicative f, Plus f) <= Alternative f
The Alternative
type class has no members of its own; it just specifies
that the type constructor has both Applicative
and Plus
instances.
Types which have Alternative
instances should also satisfy the following
laws:
- Distributivity:
(f <|> g) <*> x == (f <*> x) <|> (g <*> x)
- Annihilation:
empty <*> f = empty
Instances
#guard
guard :: forall m. Alternative m => Boolean -> m Unit
Fail using Plus
if a condition does not hold, or
succeed using Applicative
if it does.
For example:
import Prelude
import Control.Alternative (guard)
import Data.Array ((..))
factors :: Int -> Array Int
factors n = do
a <- 1..n
b <- 1..n
guard $ a * b == n
pure a
Re-exports from Control.Applicative
#Applicative
class (Apply f) <= Applicative f where
The Applicative
type class extends the Apply
type class
with a pure
function, which can be used to create values of type f a
from values of type a
.
Where Apply
provides the ability to lift functions of two or
more arguments to functions whose arguments are wrapped using f
, and
Functor
provides the ability to lift functions of one
argument, pure
can be seen as the function which lifts functions of
zero arguments. That is, Applicative
functors support a lifting
operation for any number of function arguments.
Instances must satisfy the following laws in addition to the Apply
laws:
- Identity:
(pure identity) <*> v = v
- Composition:
pure (<<<) <*> f <*> g <*> h = f <*> (g <*> h)
- Homomorphism:
(pure f) <*> (pure x) = pure (f x)
- Interchange:
u <*> (pure y) = (pure (_ $ y)) <*> u
Members
pure :: forall a. a -> f a
Instances
#when
when :: forall m. Applicative m => Boolean -> m Unit -> m Unit
Perform an applicative action when a condition is true.
#unless
unless :: forall m. Applicative m => Boolean -> m Unit -> m Unit
Perform an applicative action unless a condition is true.
#liftA1
liftA1 :: forall f a b. Applicative f => (a -> b) -> f a -> f b
liftA1
provides a default implementation of (<$>)
for any
Applicative
functor, without using (<$>)
as provided
by the Functor
-Applicative
superclass
relationship.
liftA1
can therefore be used to write Functor
instances
as follows:
instance functorF :: Functor F where
map = liftA1
Re-exports from Control.Apply
#Apply
class (Functor f) <= Apply f where
The Apply
class provides the (<*>)
which is used to apply a function
to an argument under a type constructor.
Apply
can be used to lift functions of two or more arguments to work on
values wrapped with the type constructor f
. It might also be understood
in terms of the lift2
function:
lift2 :: forall f a b c. Apply f => (a -> b -> c) -> f a -> f b -> f c
lift2 f a b = f <$> a <*> b
(<*>)
is recovered from lift2
as lift2 ($)
. That is, (<*>)
lifts
the function application operator ($)
to arguments wrapped with the
type constructor f
.
Put differently...
foo =
functionTakingNArguments <$> computationProducingArg1
<*> computationProducingArg2
<*> ...
<*> computationProducingArgN
Instances must satisfy the following law in addition to the Functor
laws:
- Associative composition:
(<<<) <$> f <*> g <*> h = f <*> (g <*> h)
Formally, Apply
represents a strong lax semi-monoidal endofunctor.
Members
apply :: forall a b. f (a -> b) -> f a -> f b
Instances
#(<*>)
Operator alias for Control.Apply.apply (left-associative / precedence 4)
#(<*)
Operator alias for Control.Apply.applyFirst (left-associative / precedence 4)
#(*>)
Operator alias for Control.Apply.applySecond (left-associative / precedence 4)
Re-exports from Control.Bind
#Bind
class (Apply m) <= Bind m where
The Bind
type class extends the Apply
type class with a
"bind" operation (>>=)
which composes computations in sequence, using
the return value of one computation to determine the next computation.
The >>=
operator can also be expressed using do
notation, as follows:
x >>= f = do y <- x
f y
where the function argument of f
is given the name y
.
Instances must satisfy the following laws in addition to the Apply
laws:
- Associativity:
(x >>= f) >>= g = x >>= (\k -> f k >>= g)
- Apply Superclass:
apply f x = f >>= \f’ -> map f’ x
Associativity tells us that we can regroup operations which use do
notation so that we can unambiguously write, for example:
do x <- m1
y <- m2 x
m3 x y
Members
bind :: forall a b. m a -> (a -> m b) -> m b
Instances
#join
#ifM
#(>>=)
Operator alias for Control.Bind.bind (left-associative / precedence 1)
#(>=>)
Operator alias for Control.Bind.composeKleisli (right-associative / precedence 1)
#(=<<)
Operator alias for Control.Bind.bindFlipped (right-associative / precedence 1)
#(<=<)
Operator alias for Control.Bind.composeKleisliFlipped (right-associative / precedence 1)
Re-exports from Control.Monad
#Monad
class (Applicative m, Bind m) <= Monad m
The Monad
type class combines the operations of the Bind
and
Applicative
type classes. Therefore, Monad
instances represent type
constructors which support sequential composition, and also lifting of
functions of arbitrary arity.
Instances must satisfy the following laws in addition to the
Applicative
and Bind
laws:
- Left Identity:
pure x >>= f = f x
- Right Identity:
x >>= pure = x
Instances
#liftM1
liftM1 :: forall m a b. Monad m => (a -> b) -> m a -> m b
liftM1
provides a default implementation of (<$>)
for any
Monad
, without using (<$>)
as provided by the
Functor
-Monad
superclass relationship.
liftM1
can therefore be used to write Functor
instances
as follows:
instance functorF :: Functor F where
map = liftM1
#ap
Re-exports from Control.Plus
#Plus
class (Alt f) <= Plus f where
The Plus
type class extends the Alt
type class with a value that
should be the left and right identity for (<|>)
.
It is similar to Monoid
, except that it applies to types of
kind * -> *
, like Array
or List
, rather than concrete types like
String
or Number
.
Plus
instances should satisfy the following laws:
- Left identity:
empty <|> x == x
- Right identity:
x <|> empty == x
- Annihilation:
f <$> empty == empty
Members
empty :: forall a. f a
Instances
Re-exports from Data.Functor
#Functor
class Functor f where
A Functor
is a type constructor which supports a mapping operation
map
.
map
can be used to turn functions a -> b
into functions
f a -> f b
whose argument and return types use the type constructor f
to represent some computational context.
Instances must satisfy the following laws:
- Identity:
map identity = identity
- Composition:
map (f <<< g) = map f <<< map g
Members
map :: forall a b. (a -> b) -> f a -> f b
Instances
#void
void :: forall f a. Functor f => f a -> f Unit
The void
function is used to ignore the type wrapped by a
Functor
, replacing it with Unit
and keeping only the type
information provided by the type constructor itself.
void
is often useful when using do
notation to change the return type
of a monadic computation:
main = forE 1 10 \n -> void do
print n
print (n * n)
#(<$>)
Operator alias for Data.Functor.map (left-associative / precedence 4)
#(<$)
Operator alias for Data.Functor.voidRight (left-associative / precedence 4)
#(<#>)
Operator alias for Data.Functor.mapFlipped (left-associative / precedence 1)
#($>)
Operator alias for Data.Functor.voidLeft (left-associative / precedence 4)
Packages
abides
- Test.Abides.Control.Alt
- Test.Abides.Control.Alternative
- Test.Abides.Control.Applicative
- Test.Abides.Control.Apply
- Test.Abides.Control.Bind
- Test.Abides.Control.Category
- Test.Abides.Control.Comonad
- Test.Abides.Control.Extend
- Test.Abides.Control.Monad
- Test.Abides.Control.MonadPlus
- Test.Abides.Control.MonadZero
- Test.Abides.Control.Plus
- Test.Abides.Control.Semigroupoid
- Test.Abides.Data.BooleaneanAlgebra
- Test.Abides.Data.Bounded
- Test.Abides.Data.BoundedEnum
- Test.Abides.Data.CommutativeRing
- Test.Abides.Data.DivisionRing
- Test.Abides.Data.Eq
- Test.Abides.Data.EuclideanRing
- Test.Abides.Data.Foldable
- Test.Abides.Data.Functor
- Test.Abides.Data.HeytingAlgebra
- Test.Abides.Data.Monoid
- Test.Abides.Data.Ord
- Test.Abides.Data.Ring
- Test.Abides.Data.Semigroup
- Test.Abides.Data.Semiring
- Test.Abides.Properties
aff-bus
aff-coroutines
aff-promise
aff-retry
arraybuffer-types
arrays-zipper
assert
aws-encryption-sdk
basic-auth
bigints
bower-json
bucketchain-basic-auth
bucketchain-conditional
bucketchain-cors
bucketchain-csrf
bucketchain-header-utils
bucketchain-health
bucketchain-history-api-fallback
bucketchain-simple-api
- Bucketchain.SimpleAPI
- Bucketchain.SimpleAPI.Auth
- Bucketchain.SimpleAPI.Auth.Class
- Bucketchain.SimpleAPI.Batch
- Bucketchain.SimpleAPI.Body
- Bucketchain.SimpleAPI.Class
- Bucketchain.SimpleAPI.FreeT.Class
- Bucketchain.SimpleAPI.JSON
- Bucketchain.SimpleAPI.Proc
- Bucketchain.SimpleAPI.RawData
- Bucketchain.SimpleAPI.Response
- Bucketchain.SimpleAPI.Response.Class
bucketchain-sslify
bucketchain-static
bytestrings
canvas
cartesian
catenable-lists
channel
channel-stream
checked-exceptions
cheerio
cirru-parser
clipboardy
codec
concur-core
const
coroutines
css
- CSS.Animation
- CSS.Background
- CSS.Border
- CSS.Box
- CSS.Common
- CSS.Cursor
- CSS.Display
- CSS.Elements
- CSS.Flexbox
- CSS.Font
- CSS.FontFace
- CSS.FontStyle
- 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.Overflow
- CSS.Text.Shadow
- CSS.Text.Transform
- CSS.Text.Whitespace
- CSS.TextAlign
- CSS.Time
- CSS.Transform
- CSS.Transition
- CSS.VerticalAlign
cssom
debug
decimals
distributive
dom-filereader
dom-indexed
- DOM.HTML.Indexed
- DOM.HTML.Indexed.ButtonType
- DOM.HTML.Indexed.CrossOriginValue
- DOM.HTML.Indexed.DirValue
- DOM.HTML.Indexed.FormMethod
- DOM.HTML.Indexed.InputAcceptType
- 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
downloadjs
dynamic-buffer
easy-ffi
elasticsearch
- Database.ElasticSearch.Bulk
- Database.ElasticSearch.Client
- Database.ElasticSearch.Common
- Database.ElasticSearch.Create
- Database.ElasticSearch.Delete
- Database.ElasticSearch.Get
- Database.ElasticSearch.Index
- Database.ElasticSearch.Indices.Create
- Database.ElasticSearch.Indices.Delete
- Database.ElasticSearch.Internal
- Database.ElasticSearch.Query
- Database.ElasticSearch.Search
- Database.ElasticSearch.Update
elmish-html
email-validate
encoding
exceptions
exists
exitcodes
expect-inferred
fixed-points
fixed-precision
form-urlencoded
format
functions
fuzzy
geometry-plane
gomtang-basic
grain
- Grain.Class
- Grain.Class.GProxy
- Grain.Class.KGProxy
- Grain.Class.LProxy
- Grain.Internal.Diff
- Grain.Internal.Element
- Grain.Internal.Emitter
- Grain.Internal.Handler
- Grain.Internal.MArray
- Grain.Internal.MMap
- Grain.Internal.MObject
- Grain.Internal.Prop
- Grain.Internal.PropDiff
- Grain.Internal.Ref
- Grain.Internal.SpecialProp
- Grain.Internal.Store
- Grain.Internal.Styler
- Grain.Internal.Util
- Grain.Markup.Element
- Grain.Markup.Handler
- Grain.Markup.Prop
- Grain.TypeRef
- Grain.UI
grain-router
grain-virtualized
graphql-client
- Data.GraphQL.AST
- Data.GraphQL.Parser
- GraphQL.Client.Alias
- GraphQL.Client.Args
- GraphQL.Client.BaseClients.Affjax
- GraphQL.Client.BaseClients.Apollo
- GraphQL.Client.BaseClients.Apollo.ErrorPolicy
- GraphQL.Client.BaseClients.Apollo.FetchPolicy
- GraphQL.Client.BaseClients.Urql
- GraphQL.Client.CodeGen.GetSymbols
- GraphQL.Client.CodeGen.Js
- GraphQL.Client.CodeGen.Lines
- GraphQL.Client.CodeGen.Query
- GraphQL.Client.CodeGen.Schema
- GraphQL.Client.CodeGen.Template.Enum
- GraphQL.Client.CodeGen.Template.Schema
- GraphQL.Client.CodeGen.Types
- GraphQL.Client.ID
- GraphQL.Client.Query
- GraphQL.Client.QueryReturns
- GraphQL.Client.SafeQueryName
- GraphQL.Client.Subscription
- GraphQL.Client.ToGqlString
- GraphQL.Client.Types
- GraphQL.Client.WatchQuery
- GraphQL.Hasura.ComparisonExp
- GraphQL.Hasura.Decode
- GraphQL.Hasura.Encode
graphs
halogen
- Halogen
- Halogen.Aff.Driver
- Halogen.Aff.Driver.Eval
- Halogen.Aff.Driver.State
- Halogen.Aff.Util
- Halogen.Component
- Halogen.Component.Profunctor
- Halogen.Data.OrdBox
- Halogen.Data.Slot
- Halogen.HTML
- Halogen.HTML.Core
- Halogen.HTML.Elements
- Halogen.HTML.Elements.Keyed
- Halogen.HTML.Events
- Halogen.HTML.Properties
- Halogen.HTML.Properties.ARIA
- Halogen.Query
- Halogen.Query.ChildQuery
- Halogen.Query.Event
- Halogen.Query.HalogenM
- Halogen.Query.HalogenQ
- Halogen.Query.Input
- Halogen.VDom.Driver
halogen-bootstrap4
halogen-css
halogen-select
halogen-storybook
halogen-subscriptions
heterogeneous
heterogeneous-extrablatt
http-methods
httpure-middleware
identity
inflection
integers
interpolate
invariant
js-date
js-fileio
js-timers
js-uri
jwt
lazy
lcg
leibniz
machines
makkori
math
matrices
media-types
minibench
mmorph
monad-loops
monad-unlift
motsunabe
naturals
nested-functor
newtype
node-child-process
node-fs-aff
node-he
node-path
node-process
node-readline
node-sqlite3
node-streams
node-url
nonempty
now
nullable
open-folds
open-memoize
open-mkdirp-aff
open-pairing
option
options
options-extra
optparse
- Options.Applicative.BashCompletion
- Options.Applicative.Builder
- Options.Applicative.Builder.Completer
- Options.Applicative.Builder.Internal
- Options.Applicative.Common
- Options.Applicative.Extra
- Options.Applicative.Help.Chunk
- Options.Applicative.Help.Core
- Options.Applicative.Help.Levenshtein
- Options.Applicative.Help.Pretty
- Options.Applicative.Help.Types
- Options.Applicative.Internal
- Options.Applicative.Internal.Utils
- Options.Applicative.Types
- Text.PrettyPrint.Leijen
ordered-collections
ordered-set
pairs
parsing-expect
parsing-hexadecimal
parsing-uuid
parsing-validation
partial
phoenix
point-free
posix-types
prelude
- Control.Applicative
- Control.Apply
- Control.Bind
- Control.Category
- Control.Monad
- Control.Semigroupoid
- Data.Boolean
- Data.BooleanAlgebra
- Data.Bounded
- Data.Bounded.Generic
- Data.CommutativeRing
- Data.DivisionRing
- Data.Eq
- Data.Eq.Generic
- Data.EuclideanRing
- Data.Field
- Data.Function
- Data.Functor
- Data.Generic.Rep
- Data.HeytingAlgebra
- Data.HeytingAlgebra.Generic
- Data.Monoid
- Data.Monoid.Additive
- Data.Monoid.Conj
- Data.Monoid.Disj
- Data.Monoid.Dual
- Data.Monoid.Endo
- Data.Monoid.Generic
- Data.Monoid.Multiplicative
- Data.NaturalTransformation
- Data.Ord
- Data.Ord.Generic
- Data.Ordering
- Data.Ring
- Data.Ring.Generic
- Data.Semigroup
- Data.Semigroup.First
- Data.Semigroup.Generic
- Data.Semigroup.Last
- Data.Semiring
- Data.Semiring.Generic
- Data.Show
- Data.Show.Generic
- Data.Symbol
- Data.Unit
- Data.Void
- Record.Unsafe
- Type.Data.Row
- Type.Data.RowList
- Type.Proxy
prettier
prettier-printer
pretty-logs
profunctor-lenses
- Data.Lens.AffineTraversal
- 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.Bazaar
- 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.Stall
- 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
ps-cst
- Language.PS.CST.Printers
- Language.PS.CST.Printers.PrintImports
- Language.PS.CST.Printers.PrintModuleModuleNameAndExports
- Language.PS.CST.Printers.TypeLevel
- Language.PS.CST.Printers.Utils
- Language.PS.CST.ReservedNames
- Language.PS.CST.Sugar.Declaration
- Language.PS.CST.Sugar.Leafs
- Language.PS.CST.Sugar.QualifiedName
- Language.PS.CST.Types.Declaration
- Language.PS.CST.Types.Leafs
- Language.PS.CST.Types.Module
- Language.PS.CST.Types.QualifiedName
- Language.PS.SmartCST.ProcessModule
- Language.PS.SmartCST.ProcessSmartDeclaration
- Language.PS.SmartCST.ProcessSmartDeclaration.Utils
- Language.PS.SmartCST.Sugar.Declaration
- Language.PS.SmartCST.Types.Declaration
- Language.PS.SmartCST.Types.SmartQualifiedName
- Language.PS.SmartCST.Types.SmartQualifiedNameConstructor
psci-support
quickcheck-combinators
quickcheck-laws
- Test.QuickCheck.Laws
- Test.QuickCheck.Laws.Control.Alt
- Test.QuickCheck.Laws.Control.Alternative
- Test.QuickCheck.Laws.Control.Applicative
- Test.QuickCheck.Laws.Control.Apply
- Test.QuickCheck.Laws.Control.Bind
- Test.QuickCheck.Laws.Control.Category
- Test.QuickCheck.Laws.Control.Comonad
- Test.QuickCheck.Laws.Control.Extend
- Test.QuickCheck.Laws.Control.Monad
- Test.QuickCheck.Laws.Control.MonadPlus
- Test.QuickCheck.Laws.Control.MonadZero
- Test.QuickCheck.Laws.Control.Plus
- Test.QuickCheck.Laws.Control.Semigroupoid
- Test.QuickCheck.Laws.Data.BooleanAlgebra
- Test.QuickCheck.Laws.Data.Bounded
- Test.QuickCheck.Laws.Data.BoundedEnum
- Test.QuickCheck.Laws.Data.CommutativeRing
- Test.QuickCheck.Laws.Data.DivisionRing
- Test.QuickCheck.Laws.Data.Eq
- Test.QuickCheck.Laws.Data.EuclideanRing
- Test.QuickCheck.Laws.Data.Field
- Test.QuickCheck.Laws.Data.Foldable
- Test.QuickCheck.Laws.Data.Functor
- Test.QuickCheck.Laws.Data.FunctorWithIndex
- Test.QuickCheck.Laws.Data.HeytingAlgebra
- Test.QuickCheck.Laws.Data.Monoid
- Test.QuickCheck.Laws.Data.Ord
- Test.QuickCheck.Laws.Data.Ring
- Test.QuickCheck.Laws.Data.Semigroup
- Test.QuickCheck.Laws.Data.Semiring
quickcheck-utf8
quotient
random
rationals
rave
react-basic-classic
react-basic-emotion
react-dom
react-enzyme
react-testing-library
read
record-extra
record-extra-srghma
- Record.ExtraSrghma.CompareRecord
- Record.ExtraSrghma.FoldlValues
- Record.ExtraSrghma.FoldlValuesWithIndex
- Record.ExtraSrghma.FoldrValues
- Record.ExtraSrghma.FoldrValuesLazy
- Record.ExtraSrghma.FoldrValuesWithIndex
- Record.ExtraSrghma.Keys
- Record.ExtraSrghma.MapIndex
- Record.ExtraSrghma.MapRecord
- Record.ExtraSrghma.MapValuesWithIndex
- Record.ExtraSrghma.ParSequenceRecord
- Record.ExtraSrghma.SequenceRecord
- Record.ExtraSrghma.ValuesToUnfoldableLazy
- Record.ExtraSrghma.ZipRecord
redux-devtools
refs
remotedata
result
return
ring-modules
row-extra
safe-coerce
safely
scrypt
selection-foldable
semirings
server-sent-events
setimmediate
simple-ajax
simple-emitter
simple-json
simple-jwt
simple-ulid
sized-vectors
slug
snabbdom
sparse-matrices
sparse-polynomials
spec
- Test.Spec
- Test.Spec.Assertions
- Test.Spec.Assertions.String
- Test.Spec.Console
- Test.Spec.Reporter.Base
- Test.Spec.Reporter.Console
- Test.Spec.Reporter.Dot
- Test.Spec.Reporter.Spec
- Test.Spec.Reporter.Tap
- Test.Spec.Result
- Test.Spec.Runner
- Test.Spec.Runner.Event
- Test.Spec.Speed
- Test.Spec.Style
- Test.Spec.Summary
- Test.Spec.Tree
spec-discovery
spec-mocha
spec-quickcheck
strings
- Data.Char
- Data.Char.Gen
- Data.String.CaseInsensitive
- Data.String.CodePoints
- Data.String.CodeUnits
- Data.String.Common
- Data.String.Gen
- 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
strings-extra
stringutils
subcategory
- Control.Subcategory.Adjoint
- Control.Subcategory.Category
- Control.Subcategory.Closed
- Control.Subcategory.ClosedMonoidal
- Control.Subcategory.ClosedSemimonoidal
- Control.Subcategory.Constituency
- Control.Subcategory.Endofunctor
- Control.Subcategory.Endofunctor.Applicative
- Control.Subcategory.Endofunctor.Apply
- Control.Subcategory.Endofunctor.Bind
- Control.Subcategory.Endofunctor.Discard
- Control.Subcategory.Endofunctor.HasApply
- Control.Subcategory.Endofunctor.HasBind
- Control.Subcategory.Endofunctor.HasCompose
- Control.Subcategory.Endofunctor.HasConst
- Control.Subcategory.Endofunctor.HasMap
- Control.Subcategory.Endofunctor.HasPoint
- Control.Subcategory.Endofunctor.HasPure
- Control.Subcategory.Endofunctor.HasUnpoint
- Control.Subcategory.Endofunctor.Monad
- Control.Subcategory.Endofunctor.Parameterized.HasConst
- Control.Subcategory.Functor
- Control.Subcategory.Functor.Discard
- Control.Subcategory.Functor.HasApply
- Control.Subcategory.Functor.HasBind
- Control.Subcategory.Functor.HasConst
- Control.Subcategory.Functor.HasMap
- Control.Subcategory.Functor.HasPure
- Control.Subcategory.Functor.Parameterized.HasConst
- Control.Subcategory.HasCompose
- Control.Subcategory.HasCurriedEval
- Control.Subcategory.HasCurry
- Control.Subcategory.HasIdentity
- Control.Subcategory.HasIntroduce
- Control.Subcategory.HasStart
- Control.Subcategory.HasTJoin
- Control.Subcategory.HasTUnit
- Control.Subcategory.HasTerminate
- Control.Subcategory.HasUncurriedEval
- Control.Subcategory.HasUncurry
- Control.Subcategory.HasUnit
- Control.Subcategory.Monoidal
- Control.Subcategory.Profunctor
- Control.Subcategory.Profunctor.HasDimap
- Control.Subcategory.Relation.Reflexive
- Control.Subcategory.Relation.Symmetric
- Control.Subcategory.Restrictable
- Control.Subcategory.Semigroupoid
- Control.Subcategory.Semimonoidal
- Control.Subcategory.Slackable
- Control.Subcategory.Strength
substitute
suggest
sunde
supply
systemd-journald
tailrec
text-encoding
thermite
thermite-dom
toppokki
transformers
- 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.Monad.Cont
- Control.Monad.Cont.Class
- Control.Monad.Cont.Trans
- Control.Monad.Error.Class
- Control.Monad.Except
- Control.Monad.Except.Trans
- Control.Monad.Identity.Trans
- Control.Monad.List.Trans
- Control.Monad.Maybe.Trans
- Control.Monad.RWS
- Control.Monad.RWS.Trans
- Control.Monad.Reader
- Control.Monad.Reader.Class
- Control.Monad.Reader.Trans
- Control.Monad.State
- Control.Monad.State.Class
- Control.Monad.State.Trans
- Control.Monad.Trans.Class
- Control.Monad.Writer
- Control.Monad.Writer.Class
- Control.Monad.Writer.Trans
tree-rose
turf
two-or-more
type-equality
typedenv
typelevel-lists
undefinable
undefined
undefined-is-not-a-problem
undefined-or
unfoldable
unordered-collections
unsafe-coerce
unsafe-reference
untagged-union
uri
- URI.AbsoluteURI
- URI.Authority
- URI.Common
- URI.Extra.MultiHostPortPair
- URI.Extra.QueryPairs
- URI.Extra.UserPassInfo
- URI.Fragment
- URI.HierarchicalPart
- URI.Host
- URI.Host.Gen
- URI.Host.IPv4Address
- URI.Host.IPv6Address
- URI.Host.RegName
- URI.HostPortPair
- URI.HostPortPair.Gen
- URI.Path
- URI.Path.Absolute
- URI.Path.NoScheme
- URI.Path.Rootless
- URI.Path.Segment
- URI.Port
- URI.Port.Gen
- URI.Query
- URI.RelativePart
- URI.RelativeRef
- URI.Scheme
- URI.Scheme.Common
- URI.URI
- URI.URIRef
- URI.UserInfo
url-regex-safe
uuid
vectorfield
veither
vexceptt
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.ShadowRoot
- Web.DOM.Text
web-dom-parser
web-html
- Web.HTML
- Web.HTML.Common
- 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.HTMLHyperlinkElementUtils
- Web.HTML.HTMLIFrameElement
- Web.HTML.HTMLImageElement
- Web.HTML.HTMLImageElement.CORSMode
- Web.HTML.HTMLImageElement.DecodingHint
- Web.HTML.HTMLImageElement.Laziness
- 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-resize-observer
web-uievents
- 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
which
The
bind
/>>=
function forArray
works by applying a function to each element in the array, and flattening the results into a single, new array.Array's
bind
/>>=
works like a nested for loop. Eachbind
adds another level of nesting in the loop. For example: