Search results
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
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
map :: forall f a b. Functor f => (a -> b) -> f a -> f b
mapDefault :: forall i f a b. FunctorWithIndex i f => (a -> b) -> f a -> f b
A default implementation of Functor's map in terms of mapWithIndex
cmap :: forall f a b. Contravariant f => (b -> a) -> f a -> f b
censor :: forall w m a. MonadWriter w m => (w -> w) -> m a -> m a
Modify the final accumulator value by applying a function.
local :: forall e w a. ComonadEnv e w => (e -> e) -> w a -> w a
local :: forall m r a. MonadReader r m => (r -> r) -> m a -> m a
seeks :: forall s a w. ComonadStore s w => (s -> s) -> w a -> w a
Reposition the focus at the specified position, which depends on the current position.
applyFirst :: forall a b f. Apply f => f a -> f b -> f a
Combine two effectful actions, keeping only the result of the first.
all :: forall a b f. Foldable f => HeytingAlgebra b => (a -> b) -> f a -> b
all f is the same as and <<< map f; map a function over the structure,
and then get the conjunction of the results.
any :: forall a b f. Foldable f => HeytingAlgebra b => (a -> b) -> f a -> b
any f is the same as or <<< map f; map a function over the structure,
and then get the disjunction of the results.
foldMap :: forall f a m. Foldable f => Monoid m => (a -> m) -> f a -> m
foldMap1 :: forall t a m. Foldable1 t => Semigroup m => (a -> m) -> t a -> m
foldMap1Default :: forall t m a. Warn (Text "\'foldMap1Default\' is deprecated, use \'foldMap1DefaultL\' instead") => Foldable1 t => Functor t => Semigroup m => (a -> m) -> t a -> m
Deprecated previous name of foldMap1DefaultL.
foldMap1DefaultL :: forall t m a. Foldable1 t => Functor t => Semigroup m => (a -> m) -> t a -> m
A default implementation of foldMap1 using foldl1.
Note: when defining a Foldable1 instance, this function is unsafe to use
in combination with foldl1Default.
foldMap1DefaultR :: forall t m a. Foldable1 t => Functor t => Semigroup m => (a -> m) -> t a -> m
A default implementation of foldMap1 using foldr1.
Note: when defining a Foldable1 instance, this function is unsafe to use
in combination with foldr1Default.
foldMapDefault :: forall i f a m. FoldableWithIndex i f => Monoid m => (a -> m) -> f a -> m
A default implementation of foldMap using foldMapWithIndex
foldMapDefaultL :: forall f a m. Foldable f => Monoid m => (a -> m) -> f a -> m
A default implementation of foldMap using foldl.
Note: when defining a Foldable instance, this function is unsafe to use
in combination with foldlDefault.
foldMapDefaultR :: forall f a m. Foldable f => Monoid m => (a -> m) -> f a -> m
A default implementation of foldMap using foldr.
Note: when defining a Foldable instance, this function is unsafe to use
in combination with foldrDefault.
tracks :: forall w a t. ComonadTraced t w => (a -> t) -> w a -> a
Extracts a value at a relative position which depends on the current value.
asks :: forall e1 e2 w a. ComonadAsk e1 w => (e1 -> e2) -> w a -> e2
Get a value which depends on the environment.
alt :: forall f a. Alt f => f a -> f a -> f a
choose :: forall m a. MonadGen m => m a -> m a -> m a
Creates a generator that outputs a value chosen from one of two existing existing generators with even probability.
applySecond :: forall a b f. Apply f => f a -> f b -> f b
Combine two effectful actions, keeping only the result of the second.
peeks :: forall s a w. ComonadStore s w => (s -> s) -> w a -> a
Extract a value from a position which depends on the current position.
voidRight :: forall f a b. Functor f => a -> f b -> f a
Ignore the return value of a computation, using the specified return value instead.
seek :: forall s a w. ComonadStore s w => s -> w a -> w a
Reposition the focus at the specified position.
apply :: forall a b. (a -> b) -> a -> b
Applies a function to an argument. This is primarily used as the operator
($) which allows parentheses to be omitted in some cases, or as a
natural way to apply a chain of composed functions to a value.
un :: forall t a. Newtype t a => (a -> t) -> t -> a
Given a constructor for a Newtype, this returns the appropriate unwrap
function.
voidLeft :: forall f a b. Functor f => f a -> b -> f b
A version of voidRight with its arguments flipped.
duplicate :: forall a w. Extend w => w a -> w (w a)
Duplicate a comonadic context.
duplicate is dual to Control.Bind.join.
intercalate :: forall f m. Foldable f => Monoid m => m -> f m -> m
Fold a data structure, accumulating values in some Monoid,
combining adjacent elements using the specified separator.
For example:
> intercalate ", " ["Lorem", "ipsum", "dolor"]
= "Lorem, ipsum, dolor"
> intercalate "*" ["a", "b", "c"]
= "a*b*c"
> intercalate [1] [[2, 3], [4, 5], [6, 7]]
= [2, 3, 1, 4, 5, 1, 6, 7]
intercalate :: forall f m. Foldable1 f => Semigroup m => m -> f m -> m
Fold a data structure using a Semigroup instance,
combining adjacent elements using the specified separator.
surround :: forall f m. Foldable f => Semigroup m => m -> f m -> m
fold but with each element surrounded by some fixed value.
For example:
> surround "*" []
= "*"
> surround "*" ["1"]
= "*1*"
> surround "*" ["1", "2"]
= "*1*2*"
> surround "*" ["1", "2", "3"]
= "*1*2*3*"
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.
enumFromTo :: forall a u. Enum a => Unfoldable1 u => a -> a -> u a
Returns a contiguous sequence of elements from the first value to the second value (inclusive).
enumFromTo 0 3 = [0, 1, 2, 3]
enumFromTo 'c' 'a' = ['c', 'b', 'a']
The example shows Array return values, but the result can be any type
with an Unfoldable1 instance.
asks :: forall r m a. MonadAsk r m => (r -> a) -> m a
Projects a value from the global context in a MonadAsk.
gets :: forall s m a. MonadState s m => (s -> a) -> m a
Get a value which depends on the current state.
peek :: forall s w a. ComonadStore s w => s -> w a -> a
track :: forall t w a. ComonadTraced t w => t -> w a -> a
unwrapCofree :: forall f w a. ComonadCofree f w => w a -> f (w a)
fix :: forall l. Lazy l => (l -> l) -> l
fix defines a value as the fixed point of a function.
The Lazy instance allows us to generate the result lazily.
modify :: forall s m. MonadState s m => (s -> s) -> m s
Modify the state by applying a function to the current state. The returned value is the new state value.
add :: forall a. Semiring a => a -> a -> a
append :: forall a. Semigroup a => a -> a -> a
conj :: forall a. HeytingAlgebra a => a -> a -> a
const :: forall a b. a -> b -> a
Returns its first argument and ignores its second.
const 1 "hello" = 1
It can also be thought of as creating a function that ignores its argument:
const 1 = \_ -> 1
disj :: forall a. HeytingAlgebra a => a -> a -> a
div :: forall a. EuclideanRing a => a -> a -> a
gcd :: forall a. Eq a => EuclideanRing a => a -> a -> a
The greatest common divisor of two values.
genericAdd :: forall a rep. Generic a rep => GenericSemiring rep => a -> a -> a
A Generic implementation of the add member from the Semiring type class.
genericAdd' :: forall a. GenericSemiring a => a -> a -> a
genericAppend :: forall a rep. Generic a rep => GenericSemigroup rep => a -> a -> a
A Generic implementation of the append member from the Semigroup type class.
genericAppend' :: forall a. GenericSemigroup a => a -> a -> a
genericConj :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic implementation of the conj member from the HeytingAlgebra type class.
genericConj' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericDisj :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic implementation of the disj member from the HeytingAlgebra type class.
genericDisj' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericImplies :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic implementation of the implies member from the HeytingAlgebra type class.
genericImplies' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericMul :: forall a rep. Generic a rep => GenericSemiring rep => a -> a -> a
A Generic implementation of the mul member from the Semiring type class.
genericMul' :: forall a. GenericSemiring a => a -> a -> a
genericSub :: forall a rep. Generic a rep => GenericRing rep => a -> a -> a
A Generic implementation of the sub member from the Ring type class.
genericSub' :: forall a. GenericRing a => a -> a -> a
implies :: forall a. HeytingAlgebra a => a -> a -> a
lcm :: forall a. Eq a => EuclideanRing a => a -> a -> a
The least common multiple of two values.
leftDiv :: forall a. DivisionRing a => a -> a -> a
Left division, defined as leftDiv a b = recip b * a. Left and right
division are distinct in this module because a DivisionRing is not
necessarily commutative.
If the type a is also a EuclideanRing, then this function is
equivalent to div from the EuclideanRing class. When working
abstractly, div should generally be preferred, unless you know that you
need your code to work with noncommutative rings.
max :: forall a. Ord a => a -> a -> a
Take the maximum of two values. If they are considered equal, the first argument is chosen.
min :: forall a. Ord a => a -> a -> a
Take the minimum of two values. If they are considered equal, the first argument is chosen.
mod :: forall a. EuclideanRing a => a -> a -> a
mul :: forall a. Semiring a => a -> a -> a
rightDiv :: forall a. DivisionRing a => a -> a -> a
Right division, defined as rightDiv a b = a * recip b. Left and right
division are distinct in this module because a DivisionRing is not
necessarily commutative.
If the type a is also a EuclideanRing, then this function is
equivalent to div from the EuclideanRing class. When working
abstractly, div should generally be preferred, unless you know that you
need your code to work with noncommutative rings.
sub :: forall a. Ring a => a -> a -> a
extract :: forall w a. Comonad w => w a -> a
proof :: forall a b p. TypeEquals a b => p a -> p b
coerce :: forall f a b. Contravariant f => Functor f => f a -> f b
and :: forall a f. Foldable f => HeytingAlgebra a => f a -> a
The conjunction of all the values in a data structure. When specialized
to Boolean, this function will test whether all of the values in a data
structure are true.
fold :: forall f m. Foldable f => Monoid m => f m -> m
Fold a data structure, accumulating values in some Monoid.
fold1 :: forall t m. Foldable1 t => Semigroup m => t m -> m
Fold a data structure, accumulating values in some Semigroup.
inj :: forall f g a. Inject f g => f a -> g a
length :: forall a b f. Foldable f => Semiring b => f a -> b
Returns the size/length of a finite structure. Optimized for structures that are similar to cons-lists, because there is no general way to do better.
maximum :: forall f a. Ord a => Foldable1 f => f a -> a
minimum :: forall f a. Ord a => Foldable1 f => f a -> a
or :: forall a f. Foldable f => HeytingAlgebra a => f a -> a
The disjunction of all the values in a data structure. When specialized
to Boolean, this function will test whether any of the values in a data
structure is true.
product :: forall a f. Foldable f => Semiring a => f a -> a
Find the product of the numeric values in a data structure.
sum :: forall a f. Foldable f => Semiring a => f a -> a
Find the sum of the numeric values in a data structure.
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!"
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.
ask :: forall e w a. ComonadAsk e w => w a -> e
cleared :: forall f a b. Filterable f => f a -> f b
Filter out all values.
pos :: forall s w a. ComonadStore s w => w a -> s
convertOptions :: forall i o t. ConvertOptions t i o => t -> i -> o
defaults :: forall all defaults provided. Defaults defaults provided all => defaults -> provided -> all
hmap :: forall a b f. HMap f a b => f -> a -> b
hmapWithIndex :: forall a b f. HMapWithIndex f a b => f -> a -> b
mapping :: forall a b f. Mapping f a b => f -> a -> b
addNextEvent :: forall builder event. SupportsNextEvent builder event => event -> builder -> builder
genericAdd :: forall rep a. Generic a rep => GenericSemiring rep => a -> a -> a
A Generic implementation of the add member from the Semiring type class.
genericAdd' :: forall a. GenericSemiring a => a -> a -> a
genericAppend :: forall rep a. Generic a rep => GenericSemigroup rep => a -> a -> a
A Generic implementation of the append member from the Semigroup type class.
genericAppend' :: forall a. GenericSemigroup a => a -> a -> a
genericConj :: forall rep a. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic implementation of the conj member from the HeytingAlgebra type class.
genericConj' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericDisj :: forall rep a. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic implementation of the disj member from the HeytingAlgebra type class.
genericDisj' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericImplies :: forall rep a. Generic a rep => GenericHeytingAlgebra rep => a -> a -> a
A Generic implementation of the implies member from the HeytingAlgebra type class.
genericImplies' :: forall a. GenericHeytingAlgebra a => a -> a -> a
genericMul :: forall rep a. Generic a rep => GenericSemiring rep => a -> a -> a
A Generic implementation of the mul member from the Semiring type class.
genericMul' :: forall a. GenericSemiring a => a -> a -> a
genericSub :: forall rep a. Generic a rep => GenericRing rep => a -> a -> a
A Generic implementation of the sub member from the Ring type class.
genericSub' :: forall a. GenericRing a => a -> a -> a
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
pure :: forall f a. Applicative f => a -> f a
recip :: forall a. DivisionRing a => a -> a
signum :: forall a. Ord a => Ring a => a -> a
The sign function; always evaluates to either one or negate one. For
any x, we should have signum x * abs x == x.
to :: forall a rep. Generic a rep => rep -> a
unsafeCoerce :: forall a b. a -> b
A highly unsafe function, which can be used to persuade the type system that any type is the same as any other type. When using this function, it is your (that is, the caller's) responsibility to ensure that the underlying representation for both types is the same.
Because this function is extraordinarily flexible, type inference can greatly suffer. It is highly recommended to define specializations of this function rather than using it as-is. For example:
fromBoolean :: Boolean -> Json
fromBoolean = unsafeCoerce
This way, you won't have any nasty surprises due to the inferred type being different to what you expected.
After the v0.14.0 PureScript release, some of what was accomplished via
unsafeCoerce can now be accomplished via coerce from
purescript-safe-coerce. See that library's documentation for more
context.
coerce :: forall a b. Coercible a b => a -> b
Coerce a value of one type to a value of some other type, without changing
its runtime representation. This function behaves identically to
unsafeCoerce at runtime. Unlike unsafeCoerce, it is safe, because the
Coercible constraint prevents any use of this function from compiling
unless the compiler can prove that the two types have the same runtime
representation.
One application for this function is to avoid doing work that you know is a
no-op because of newtypes. For example, if you have an Array (Conj a) and you
want an Array (Disj a), you could do Data.Array.map (un Conj >>> Disj), but
this performs an unnecessary traversal of the array, with O(n) cost.
coerce accomplishes the same with only O(1) cost:
mapConjToDisj :: forall a. Array (Conj a) -> Array (Disj a)
mapConjToDisj = coerce
unwrap :: forall t a. Newtype t a => t -> a
wrap :: forall t a. Newtype t a => a -> t
from :: forall a b. TypeEquals a b => b -> a
to :: forall a b. TypeEquals a b => a -> b
inj :: forall a b. Inject a b => a -> b
unsafePartial :: forall a. (Partial => a) -> a
Discharge a partiality constraint, unsafely.
singleton :: forall f a. Unfoldable1 f => a -> f a
Contain a single value. For example:
singleton "foo" == (NEL.singleton "foo" :: NEL.NonEmptyList String)
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.
throwError :: forall e m a. MonadThrow e m => e -> m a
convertDuration :: forall a b. Duration a => Duration b => a -> b
Converts directly between durations of differing types.
negateDuration :: forall a. Duration a => a -> a
Negates a duration, turning a positive duration negative or a negative duration positive.
export :: forall a b. ExportsTo a b => a -> b
from :: forall a rep. Generic a rep => a -> rep
genericNot :: forall rep a. 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
getStateId :: forall state stateId. HasStateId stateId state => state -> stateId
to :: forall a rep. Generic a rep => rep -> a
bottom :: forall a. Bounded a => a
ff :: forall a. HeytingAlgebra a => a
genericBottom :: forall a rep. Generic a rep => GenericBottom rep => a
A Generic implementation of the bottom member from the Bounded type class.
genericBottom' :: forall a. GenericBottom a => a
genericFF :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a
A Generic implementation of the ff member from the HeytingAlgebra type class.
genericFF' :: forall a. GenericHeytingAlgebra a => a
genericMempty :: forall a rep. Generic a rep => GenericMonoid rep => a
A Generic implementation of the mempty member from the Monoid type class.
genericMempty' :: forall a. GenericMonoid a => a
genericOne :: forall a rep. Generic a rep => GenericSemiring rep => a
A Generic implementation of the one member from the Semiring type class.
genericOne' :: forall a. GenericSemiring a => a
genericTop :: forall a rep. Generic a rep => GenericTop rep => a
A Generic implementation of the top member from the Bounded type class.
genericTop' :: forall a. GenericTop a => a
genericTT :: forall a rep. Generic a rep => GenericHeytingAlgebra rep => a
A Generic implementation of the tt member from the HeytingAlgebra type class.
genericTT' :: forall a. GenericHeytingAlgebra a => a
genericZero :: forall a rep. Generic a rep => GenericSemiring rep => a
A Generic implementation of the zero member from the Semiring type class.
genericZero' :: forall a. GenericSemiring a => a
mempty :: forall m. Monoid m => m
one :: forall a. Semiring a => a
top :: forall a. Bounded a => a
tt :: forall a. HeytingAlgebra a => a
zero :: forall a. Semiring a => a
empty :: forall f a. Plus f => f a
conquer :: forall f a. Divisible f => f a
crash :: forall a. Partial => a
A partial function which crashes on any input with a default message.
none :: forall f a. Unfoldable f => f a
The container with no elements - unfolded with zero iterations. For example:
none == ([] :: Array Unit)
genBoundedEnum :: forall m a. MonadGen m => BoundedEnum a => m a
Create a random generator for a finite enumeration.
ask :: forall m r. MonadAsk r m => m r
get :: forall m s. MonadState s m => m s
Get the current state.
genericBottom :: forall rep a. Generic a rep => GenericBottom rep => a
A Generic implementation of the bottom member from the Bounded type class.
genericBottom' :: forall a. GenericBottom a => a
genericFF :: forall rep a. Generic a rep => GenericHeytingAlgebra rep => a
A Generic implementation of the ff member from the HeytingAlgebra type class.
genericFF' :: forall a. GenericHeytingAlgebra a => a
genericMempty :: forall rep a. Generic a rep => GenericMonoid rep => a
A Generic implementation of the mempty member from the Monoid type class.
genericMempty' :: forall a. GenericMonoid a => a
genericOne :: forall rep a. Generic a rep => GenericSemiring rep => a
A Generic implementation of the one member from the Semiring type class.
genericOne' :: forall a. GenericSemiring a => a
genericTop :: forall rep a. Generic a rep => GenericTop rep => a
A Generic implementation of the top member from the Bounded type class.
genericTop' :: forall a. GenericTop a => a
genericTT :: forall rep a. Generic a rep => GenericHeytingAlgebra rep => a
A Generic implementation of the tt member from the HeytingAlgebra type class.
genericTT' :: forall a. GenericHeytingAlgebra a => a
genericZero :: forall rep a. Generic a rep => GenericSemiring rep => a
A Generic implementation of the zero member from the Semiring type class.
genericZero' :: forall a. GenericSemiring a => a
newActions :: forall builder. SupportsNewActions builder => builder
noCall :: forall t3 t4. Applicative t3 => t3 t4
No further results.