Search results
sequence :: forall t a m. Traversable t => Applicative m => t (m a) -> m (t a)
sequence1 :: forall t b f. Traversable1 t => Apply f => t (f b) -> f (t b)
sequence1Default :: forall t a m. Traversable1 t => Apply m => t (m a) -> m (t a)
A default implementation of sequence1
using traverse1
.
sequenceDefault :: forall t a m. Traversable t => Applicative m => t (m a) -> m (t a)
A default implementation of sequence
using traverse
.
distribute :: forall f a g. Distributive f => Functor g => g (f a) -> f (g a)
distributeDefault :: forall a f g. Distributive f => Functor g => g (f a) -> f (g a)
A default implementation of distribute
, based on collect
.
parSequence :: forall a t m f. Parallel f m => Applicative f => Traversable t => t (m a) -> m (t a)
sequence :: forall m p q a. Dissect p q => MonadRec m => p (m a) -> m (p a)
A tail-recursive sequence
operation, implemented in terms of Dissect
.
sequence :: forall c b a. HasApply b => HasMap b => HasTraverse a => HasPure b => a (b c) -> b (a c)
Sequences actions and collects the results.
sequence [Just 1, Just 2] -- Just [1, 2]
join :: forall a m. Bind m => m (m a) -> m a
Collapse two applications of a monadic type constructor into one.
optional :: forall f a. Alt f => Applicative f => f a -> f (Maybe a)
One or none.
optional empty = pure Nothing
The behaviour of optional (pure x)
depends on whether the Alt
instance
satisfy the left catch law (pure a <|> b = pure a
).
Either e
does:
optional (Right x) = Right (Just x)
But Array
does not:
optional [x] = [Just x, Nothing]
oneOf :: forall f g a. Foldable f => Plus g => f (g a) -> g a
Combines a collection of elements using the Alt
operation.
genMaybe :: forall m a. MonadGen m => m a -> m (Maybe a)
Creates a generator that outputs Maybe
values, choosing a value from
another generator for the inner value. The generator has a 75% chance of
returning a Just
over a Nothing
.
oneOf :: forall m f a. MonadGen m => Foldable1 f => f (m a) -> m a
Creates a generator that outputs a value chosen from a selection of existing generators with uniform probability.
parOneOf :: forall a t m f. Parallel f m => Alternative f => Foldable t => Functor t => t (m a) -> m a
Race a collection in parallel.
wrapFree :: forall f m a. MonadFree f m => f (m a) -> m a
keepLatest :: forall event a. IsEvent event => event (event a) -> event a
optional :: forall f a. Alt f => Applicative f => f a -> f (Maybe a)
keepLatest :: forall event a. IsEvent event => event (event a) -> event a
join :: forall v m c. HasBind c m => HasIdentity c => ObjectOf c (m v) => m (m v) -> m v
choice :: forall a g f. Foldable f => Alt g => Plus g => f (g a) -> g a
flatten :: forall b a. HasChain a => a (a b) -> a b
Removes a level of nesting from a container.
flatten [[1, 2], [3, 4]] -- [1, 2, 3, 4]
oneOf :: forall a m f. Foldable f => Alternative m => f (m a) -> m a
optionMaybe :: forall a m. Alternative m => m a -> m (Maybe a)
warbler :: forall m a. Bind m => m (m a) -> m a
W combinator - warbler - omega
MM
Λ a b . (a → a → b) → a → b
λ f x . f x x
integrateM :: forall a stM m base. Applicative base => MonadBaseControl base m stM => m (stM a) -> m a
Pack a state belonging to m
back into it, instead of throwing it away
restoreM :: forall base m stM a. MonadBaseControl base m stM => base (stM a) -> m a
duplicate :: forall a w. Extend w => w a -> w (w a)
Duplicate a comonadic context.
duplicate
is dual to Control.Bind.join
.
fromMaybe :: forall f a. Unfoldable f => Maybe a -> f a
Convert a Maybe to any Unfoldable, such as lists or arrays.
fromMaybe (Nothing :: Maybe Int) == []
fromMaybe (Just 1) == [1]
unfoldable :: forall m f a. MonadRec m => MonadGen m => Unfoldable f => m a -> m (f a)
Creates a generator that produces unfoldable structures based on an existing generator for the elements.
The size of the unfoldable will be determined by the current size state
for the generator. To generate an unfoldable structure of a particular
size, use the resize
function from the MonadGen
class first.
unwrapCofree :: forall f w a. ComonadCofree f w => w a -> f (w a)
fork :: forall f m a. MonadFork f m => m a -> m (f a)
suspend :: forall f m a. MonadFork f m => m a -> m (f a)
toBase :: forall b m a. MonadUnlift b m => m a -> m (b a)
Run the given action inside the base monad b
.
lift :: forall a g f. Applicative f => Applicative g => a -> f (g a)
split :: forall f a. Applicative f => f a -> f (f a)
pure :: forall f a. Applicative f => a -> f a
fromJust :: forall a. Partial => Maybe a -> a
A partial function that extracts the value from the Just
data
constructor. Passing Nothing
to fromJust
will throw an error at
runtime.
forever :: forall m a b. MonadRec m => m a -> m b
forever
runs an action indefinitely, using the MonadRec
instance to
ensure constant stack usage.
For example:
main = forever $ trace "Hello, World!"
singleton :: forall f a. Unfoldable1 f => a -> f a
Contain a single value. For example:
singleton "foo" == (NEL.singleton "foo" :: NEL.NonEmptyList String)
proof :: forall a b p. TypeEquals a b => p a -> p b
elements :: forall m f a. MonadGen m => Foldable1 f => f a -> m a
Creates a generator that outputs a value chosen from a selection with uniform probability.
downFrom :: forall a u. Enum a => Unfoldable u => a -> u a
Produces all predecessors of an Enum
value, excluding the start value.
downFromIncluding :: forall a u. Enum a => Unfoldable1 u => a -> u a
Produces all predecessors of an Enum
value, including the start value.
downFromIncluding top
will return all values in an Enum
, in reverse
order.
upFrom :: forall a u. Enum a => Unfoldable u => a -> u a
Produces all successors of an Enum
value, excluding the start value.
upFromIncluding :: forall a u. Enum a => Unfoldable1 u => a -> u a
Produces all successors of an Enum
value, including the start value.
upFromIncluding bottom
will return all values in an Enum
.
coerce :: forall f a b. Contravariant f => Functor f => f a -> f b
throwError :: forall e m a. MonadThrow e m => e -> m a
inj :: forall f g a. Inject f g => f a -> g a
join :: forall f m a. MonadFork f m => f a -> m a
uninterruptible :: forall e f m a. MonadBracket e f m => m a -> m a
cleared :: forall f a b. Filterable f => f a -> f b
Filter out all values.
liftBase :: forall b m a. MonadBase b m => b a -> m a
length :: forall sproxy proxy a b. Length a b => sproxy a -> proxy b
parseInt :: forall sproxy proxy sym a. ParseInt sym a => sproxy sym -> proxy a
parse Int a Value-Level
parseInt (Proxy :: _ "-1337") ~> N1337
parseInt (SProxy :: _ "-1337") ~> N1337
-- N1137 would be type alias for Neg (Succ^1337 Z)
parseNat :: forall sproxy proxy sym a. ParseNat sym a => sproxy sym -> proxy a
value-level parse of number
parseNat (Proxy "10") ~> D10
parseNat (SProxy "10") ~> D10
folded :: forall event a. IsEvent event => Monoid a => event a -> event a
Combine subsequent events using a Monoid
.
lambek :: forall t f. Recursive t f => Corecursive t f => t -> f t
project :: forall t f. Recursive t f => t -> f t
folded :: forall a event. IsEvent event => Monoid a => event a -> event a
Combine subsequent events using a Monoid
.
sequenceProduct :: forall specI specO f. SequenceProduct specI specO f => specI -> f specO
sort :: forall f a. Functor f => Foldable f => Unfoldable f => Ord a => f a -> f a
Sort any structure (which has Foldable, Unfoldable, and Functor instances) by converting to an OrdSeq and back again. I am fairly sure this is usually O(n*log(n)), although of course this depends on the Unfoldable and Foldable instances.
init :: forall xs ys lproxy. Init xs ys => lproxy xs -> lproxy ys
length :: forall xs r lproxy iproxy. Length xs r => lproxy xs -> iproxy r
pure :: forall v f c. HasPure c f => ObjectOf c v => v -> f v
restoreAfter :: forall m a. MonadCanvasAction m => m a -> m a
Runs save
, then the provided action, then restore
bottom1_ :: forall f a. Bottom1_ f => a -> f a
bottom2 :: forall f a b. Bottom2 f a => a -> f b
top1_ :: forall f a. Top1_ f => a -> f a
act :: forall m b a. Mother m => a -> m b
drain :: forall a s n n1. ToString n1 s => IsSymbol s => Analytic (a n) => Analytic (a n1) => Add n1 1 n => a n -> a n1
Decrement the dimension of a point/vector by removing its last coordinate.
dsingleton :: forall cnt a. Diff cnt => a -> cnt a
forever :: forall b a m. Monad m => m a -> m b
fromJust :: forall a. Maybe a -> a
fromJust' :: forall a. Maybe a -> a
The partial and unsafe version of fromJust
.
immerse :: forall a n n1. Analytic (a n) => Analytic (a n1) => Add n 1 n1 => a n -> a n1
Increments the dimension of a point/vector by adding a zero coordinate after the other coordinates.
lookAhead :: forall m a. LookAheadParsing m => m a -> m a
mockFun :: forall params fun verifyParams m. MockBuilder params fun verifyParams => MonadEffect m => params -> m fun
once :: forall a m. MonadLogic m => m a -> m a
pure :: forall d a. Syntax d => Eq a => a -> d a
pure :: forall f a. Unital Function Unit Unit f => Functor f => a -> f a
pure :: forall a b. HasPure a => b -> a b
pure :: forall f a. Applicative f => a -> f a
query :: forall m q r. MonadSession m => AsQuery q => FromRows r => q -> m r
Executes a query and unmarshals the result into r
read :: forall box val m. Read box val => MonadDelay m => box -> m val
Read the current value. Will never cause a refresh.
repeat :: forall a u. Unfoldable1 u => a -> u a
Create an infinite Unfoldable1
by repeating a single element.
siteClock :: forall s m i c. Site s m i c => s -> m c
siteId :: forall s m i c. Site s m i c => s -> m i
splice :: forall f t. Corecursive t (SqlF f) => Maybe t -> t
throw :: forall (t10 :: Type -> Type) (t11 :: Type) (a12 :: Type). MonadThrow Error t10 => Show a12 => a12 -> t10 t11
toDefault :: forall a. Default a => Maybe a -> a
Turns Nothing
into a “default” (zero) value.
The Protobuf spec requires that a no presence field set to its “default” (zero) value must not be serialized to the wire.
When receiving messages we can use this function to interpret a missing no presence field as a “default” value.
try :: forall m a. Parsing m => m a -> m a
unfold :: forall f a s. Convert s (Statements a) => Unfoldable1 f => s -> f a
unsafeMaybeToNullableAttr :: forall a. Maybe a -> a
WARNING: This is for JS interop -- don't use this to unwrap Maybes!
Unsafely nulls out a value so the resulting html attributes are less noisy
Ex: R.input { type: unsafeMaybeToNullableAttr Nothing }
avoids rendering
the type
attribute while still validating the type of the Maybe's content
matches the type of the DOM field. It's only slightly safer than using
unsafeCreateDOMComponent
to avoid DOM type checking entirely.
abs :: forall a. Ord a => Ring a => a -> a
The absolute value function. abs x
is defined as if x >= zero then x
else negate x
.
from :: forall a rep. Generic a rep => a -> rep
genericNot :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a -> a
A Generic
implementation of the not
member from the HeytingAlgebra
type class.
genericNot' :: forall a. GenericHeytingAlgebra a => a -> a
negate :: forall a. Ring a => a -> a
negate x
can be used as a shorthand for zero - x
.
not :: forall a. HeytingAlgebra a => a -> a