Copyright | (c) Sirui Lu 2021-2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.Unified.Lib.Data.Foldable
Description
Synopsis
- symElem :: forall (mode :: EvalModeTag) t a. (Foldable t, EvalModeBase mode, UnifiedSymEq mode a) => a -> t a -> GetBool mode
- symMaximum :: forall (mode :: EvalModeTag) a t. (Foldable t, Mergeable a, UnifiedSymOrd mode a, UnifiedITEOp mode a, EvalModeBase mode) => t a -> a
- mrgMaximum :: forall (mode :: EvalModeTag) a t m. (Foldable t, EvalModeBase mode, UnifiedBranching mode m, MonadTryMerge m, Mergeable a, UnifiedSymOrd mode a) => t a -> m a
- symMinimum :: forall (mode :: EvalModeTag) a t. (Foldable t, Mergeable a, UnifiedSymOrd mode a, UnifiedITEOp mode a, EvalModeBase mode) => t a -> a
- mrgMinimum :: forall (mode :: EvalModeTag) a t m. (Foldable t, EvalModeBase mode, UnifiedBranching mode m, MonadTryMerge m, Mergeable a, UnifiedSymOrd mode a) => t a -> m a
- mrgFoldrM :: (MonadTryMerge m, Mergeable b, Foldable t) => (a -> b -> m b) -> b -> t a -> m b
- mrgFoldlM :: (MonadTryMerge m, Mergeable b, Foldable t) => (b -> a -> m b) -> b -> t a -> m b
- mrgTraverse_ :: (Applicative m, TryMerge m, Foldable t) => (a -> m b) -> t a -> m ()
- mrgFor_ :: (Applicative m, TryMerge m, Foldable t) => t a -> (a -> m b) -> m ()
- mrgSequenceA_ :: (Foldable t, TryMerge m, Applicative m) => t (m a) -> m ()
- mrgAsum :: (Alternative f, TryMerge f, Mergeable a, Foldable t) => t (f a) -> f a
- mrgMapM_ :: (MonadTryMerge m, Foldable t) => (a -> m b) -> t a -> m ()
- mrgForM_ :: (MonadTryMerge m, Foldable t) => t a -> (a -> m b) -> m ()
- mrgSequence_ :: (Foldable t, MonadTryMerge m) => t (m a) -> m ()
- mrgMsum :: (MonadTryMerge m, Mergeable a, MonadPlus m, Foldable t) => t (m a) -> m a
- symAnd :: forall (mode :: EvalModeTag) t. (EvalModeBase mode, Foldable t) => t (GetBool mode) -> GetBool mode
- symOr :: forall (mode :: EvalModeTag) t. (EvalModeBase mode, Foldable t) => t (GetBool mode) -> GetBool mode
- symAny :: forall (mode :: EvalModeTag) t a. (EvalModeBase mode, Foldable t) => (a -> GetBool mode) -> t a -> GetBool mode
- symAll :: forall (mode :: EvalModeTag) t a. (EvalModeBase mode, Foldable t) => (a -> GetBool mode) -> t a -> GetBool mode
- symMaximumBy :: forall (mode :: EvalModeTag) t a. (Foldable t, Mergeable a, UnifiedITEOp mode a, EvalModeBase mode) => (a -> a -> BaseMonad mode Ordering) -> t a -> a
- mrgMaximumBy :: forall (mode :: EvalModeTag) t a m. (Foldable t, Mergeable a, EvalModeBase mode, MonadTryMerge m, UnifiedBranching mode m) => (a -> a -> BaseMonad mode Ordering) -> t a -> m a
- symMinimumBy :: forall (mode :: EvalModeTag) t a. (Foldable t, Mergeable a, UnifiedITEOp mode a, EvalModeBase mode) => (a -> a -> BaseMonad mode Ordering) -> t a -> a
- mrgMinimumBy :: forall (mode :: EvalModeTag) t a m. (Foldable t, Mergeable a, EvalModeBase mode, MonadTryMerge m, UnifiedBranching mode m) => (a -> a -> BaseMonad mode Ordering) -> t a -> m a
- symNotElem :: forall t (mode :: EvalModeTag) a. (Foldable t, UnifiedSymEq mode a, EvalModeBase mode) => a -> t a -> GetBool mode
- mrgFind :: forall t (mode :: EvalModeTag) m a. (Foldable t, EvalModeBase mode, MonadTryMerge m, UnifiedBranching mode m, Mergeable a) => (a -> GetBool mode) -> t a -> m (Maybe a)
Documentation
symElem :: forall (mode :: EvalModeTag) t a. (Foldable t, EvalModeBase mode, UnifiedSymEq mode a) => a -> t a -> GetBool mode Source #
elem
with symbolic equality.
symMaximum :: forall (mode :: EvalModeTag) a t. (Foldable t, Mergeable a, UnifiedSymOrd mode a, UnifiedITEOp mode a, EvalModeBase mode) => t a -> a Source #
mrgMaximum :: forall (mode :: EvalModeTag) a t m. (Foldable t, EvalModeBase mode, UnifiedBranching mode m, MonadTryMerge m, Mergeable a, UnifiedSymOrd mode a) => t a -> m a Source #
maximum
with unified comparison.
symMinimum :: forall (mode :: EvalModeTag) a t. (Foldable t, Mergeable a, UnifiedSymOrd mode a, UnifiedITEOp mode a, EvalModeBase mode) => t a -> a Source #
mrgMinimum :: forall (mode :: EvalModeTag) a t m. (Foldable t, EvalModeBase mode, UnifiedBranching mode m, MonadTryMerge m, Mergeable a, UnifiedSymOrd mode a) => t a -> m a Source #
minimum
with MergingStrategy
knowledge
propagation.
Special biased folds
mrgFoldrM :: (MonadTryMerge m, Mergeable b, Foldable t) => (a -> b -> m b) -> b -> t a -> m b Source #
foldrM
with MergingStrategy
knowledge
propagation.
mrgFoldlM :: (MonadTryMerge m, Mergeable b, Foldable t) => (b -> a -> m b) -> b -> t a -> m b Source #
foldlM
with MergingStrategy
knowledge
propagation.
Folding actions
Applicative actions
mrgTraverse_ :: (Applicative m, TryMerge m, Foldable t) => (a -> m b) -> t a -> m () Source #
traverse_
with MergingStrategy
knowledge
propagation.
mrgFor_ :: (Applicative m, TryMerge m, Foldable t) => t a -> (a -> m b) -> m () Source #
for_
with MergingStrategy
knowledge
propagation.
mrgSequenceA_ :: (Foldable t, TryMerge m, Applicative m) => t (m a) -> m () Source #
sequence_
with MergingStrategy
knowledge
propagation.
mrgAsum :: (Alternative f, TryMerge f, Mergeable a, Foldable t) => t (f a) -> f a Source #
asum
with MergingStrategy
knowledge propagation.
Monadic actions
mrgMapM_ :: (MonadTryMerge m, Foldable t) => (a -> m b) -> t a -> m () Source #
mapM_
with MergingStrategy
knowledge
propagation.
mrgForM_ :: (MonadTryMerge m, Foldable t) => t a -> (a -> m b) -> m () Source #
forM_
with MergingStrategy
knowledge
propagation.
mrgSequence_ :: (Foldable t, MonadTryMerge m) => t (m a) -> m () Source #
sequence_
with MergingStrategy
knowledge
propagation.
mrgMsum :: (MonadTryMerge m, Mergeable a, MonadPlus m, Foldable t) => t (m a) -> m a Source #
msum
with MergingStrategy
knowledge
propagation.
Folding actions
symAnd :: forall (mode :: EvalModeTag) t. (EvalModeBase mode, Foldable t) => t (GetBool mode) -> GetBool mode Source #
and
on unified boolean.
symOr :: forall (mode :: EvalModeTag) t. (EvalModeBase mode, Foldable t) => t (GetBool mode) -> GetBool mode Source #
or
on unified boolean.
symAny :: forall (mode :: EvalModeTag) t a. (EvalModeBase mode, Foldable t) => (a -> GetBool mode) -> t a -> GetBool mode Source #
any
on unified boolean.
symAll :: forall (mode :: EvalModeTag) t a. (EvalModeBase mode, Foldable t) => (a -> GetBool mode) -> t a -> GetBool mode Source #
all
on unified boolean.
symMaximumBy :: forall (mode :: EvalModeTag) t a. (Foldable t, Mergeable a, UnifiedITEOp mode a, EvalModeBase mode) => (a -> a -> BaseMonad mode Ordering) -> t a -> a Source #
mrgMaximumBy :: forall (mode :: EvalModeTag) t a m. (Foldable t, Mergeable a, EvalModeBase mode, MonadTryMerge m, UnifiedBranching mode m) => (a -> a -> BaseMonad mode Ordering) -> t a -> m a Source #
maximumBy
with MergingStrategy
knowledge
propagation.
symMinimumBy :: forall (mode :: EvalModeTag) t a. (Foldable t, Mergeable a, UnifiedITEOp mode a, EvalModeBase mode) => (a -> a -> BaseMonad mode Ordering) -> t a -> a Source #
mrgMinimumBy :: forall (mode :: EvalModeTag) t a m. (Foldable t, Mergeable a, EvalModeBase mode, MonadTryMerge m, UnifiedBranching mode m) => (a -> a -> BaseMonad mode Ordering) -> t a -> m a Source #
minimumBy
with MergingStrategy
knowledge
propagation.
Searches
symNotElem :: forall t (mode :: EvalModeTag) a. (Foldable t, UnifiedSymEq mode a, EvalModeBase mode) => a -> t a -> GetBool mode Source #
elem
with symbolic equality.
mrgFind :: forall t (mode :: EvalModeTag) m a. (Foldable t, EvalModeBase mode, MonadTryMerge m, UnifiedBranching mode m, Mergeable a) => (a -> GetBool mode) -> t a -> m (Maybe a) Source #
elem
with symbolic equality and
MergingStrategy
knowledge propagation.