Safe Haskell | None |
---|---|
Language | Haskell2010 |
A bunch of unrelated utility functions and types.
- data SP a b = SP {}
- spSnd :: forall a b b. Lens (SP a b) (SP a b) b b
- spFst :: forall a b a. Lens (SP a b) (SP a b) a a
- type SP' a = SP a a
- toSP :: (a, b) -> SP a b
- fromSP :: SP a b -> (a, b)
- spMap :: (a -> b) -> SP a a -> SP b b
- pairMap :: (a -> b) -> (a, a) -> (b, b)
- pairAp :: (a -> b, c -> d) -> (a, c) -> (b, d)
- pairFold :: Monoid m => (m, m) -> m
- maybeChange :: a -> (a -> Maybe a) -> a
- toMaybe :: Bool -> a -> Maybe a
- eitherToMaybe :: Either a b -> Maybe b
- maybeBranch :: (a -> a -> Bool) -> Maybe a -> Maybe a -> Maybe (Either a a)
- maybeBranchBoth :: (a -> a -> Bool) -> Maybe a -> Maybe a -> Maybe (Either a a)
- takeIfAll :: (a -> Bool) -> [a] -> Maybe [a]
- cycles :: [a] -> [[a]]
- data Loop a = Loop {}
- loopify :: [a] -> Loop a
- takeNext :: Int -> Loop a -> [Loop a]
- takePrev :: Int -> Loop a -> [Loop a]
- takeDir :: (Loop a -> Loop a) -> Int -> Loop a -> [Loop a]
- folds :: (b -> b) -> b -> [a] -> [b]
- data Flipping a
- flipToTuple :: Flipping a -> (Bool, a)
- flipAsEither :: Flipping a -> Either a a
- flipWrap :: Flipping a -> b -> Flipping b
- flipUnsafe :: (a -> (b, b) -> c) -> Flipping a -> (b, b) -> c
- flipMap :: (a -> (b, b) -> c) -> Flipping a -> (b, b) -> Flipping c
- flipExtractWith :: (a -> b, a -> b) -> Flipping a -> b
- flipExtractPair :: (a -> (b, b)) -> Flipping a -> (b, b)
- flipJoin :: Flipping (Flipping a) -> Flipping a
- class Flippable f where
- flipExtract :: Flippable a => Flipping a -> a
- flipExtractUnsafe :: Flipping a -> a
- flipInjectF :: Functor f => Flipping (f a) -> f (Flipping a)
- eitherBranchBoth :: (b -> b -> Bool) -> Either a b -> Either a b -> Flipping (Either a b)
- liftRightMaybe :: Either a (Maybe b) -> Maybe (Either a b)
- ixZipWith :: (Ixed s, TraversableWithIndex (Index s) t) => (a -> Maybe (IxValue s) -> b) -> t a -> s -> t b
- overWith :: Lens' s a -> ((a, a) -> (a, a)) -> (s, s) -> (s, s)
- findOrInsert :: Key -> a -> IntMap a -> (Maybe a, IntMap a)
- findOrInsert' :: Key -> a -> IntMap a -> (a, IntMap a)
- posMod :: Integral a => a -> a -> a
- pairiix :: Ixed m => (Index m, Index m) -> IndexedTraversal' (Index m, Index m) m (IxValue m, IxValue m)
- pairix :: Ixed m => (Index m, Index m) -> Traversal' m (IxValue m, IxValue m)
- pairOver :: (forall f. Functor f => (b -> f b) -> a -> f a) -> ((b, b) -> (b, b)) -> (a, a) -> (a, a)
- pairView :: (forall f. Functor f => (b -> f b) -> a -> f a) -> (a, a) -> (b, b)
- pairView' :: (forall f. Applicative f => (b -> f b) -> a -> f a) -> (a, a) -> Maybe (b, b)
- pairSet :: (forall f. Functor f => (b -> f b) -> a -> f a) -> (b, b) -> (a, a) -> (a, a)
- iixOver :: (forall f. Applicative f => k -> (b -> f b) -> a -> f a) -> ((b, b) -> (b, b)) -> (k, k) -> a -> a
- iixOver' :: Monad m => (forall f. Applicative f => k -> (b -> f b) -> a -> f a) -> ((b, b) -> m (b, b)) -> (k, k) -> a -> m a
- iixView :: (forall f. Applicative f => k -> (b -> f b) -> a -> f a) -> (k, k) -> a -> Maybe (b, b)
- liftMaybe :: Monad m => Maybe a -> MaybeT m a
- liftMaybe' :: Monad m => m a -> MaybeT m a
Documentation
(Unbox a, Unbox b) => Vector Vector (SP a b) Source # | |
(Unbox a, Unbox b) => MVector MVector (SP a b) Source # | |
(Eq b, Eq a) => Eq (SP a b) Source # | |
(Ord b, Ord a) => Ord (SP a b) Source # | |
(Show b, Show a) => Show (SP a b) Source # | |
Generic (SP a b) Source # | |
(NFData b, NFData a) => NFData (SP a b) Source # | |
(Unbox a, Unbox b) => Unbox (SP a b) Source # | |
data MVector s (SP a b) Source # | |
type Rep (SP a b) Source # | |
data Vector (SP a b) Source # | |
maybeChange :: a -> (a -> Maybe a) -> a Source #
eitherToMaybe :: Either a b -> Maybe b Source #
Functor Flipping Source # | |
Unbox a => Vector Vector (Flipping a) Source # | |
Unbox a => MVector MVector (Flipping a) Source # | |
Show a => Show (Flipping a) Source # | |
Unbox a => Unbox (Flipping a) Source # | |
Flippable (Flipping x) Source # | |
data MVector s (Flipping a) Source # | |
data Vector (Flipping a) Source # | |
flipToTuple :: Flipping a -> (Bool, a) Source #
flipAsEither :: Flipping a -> Either a a Source #
flipUnsafe :: (a -> (b, b) -> c) -> Flipping a -> (b, b) -> c Source #
flipExtractWith :: (a -> b, a -> b) -> Flipping a -> b Source #
flipExtractPair :: (a -> (b, b)) -> Flipping a -> (b, b) Source #
flipExtract :: Flippable a => Flipping a -> a Source #
flipExtractUnsafe :: Flipping a -> a Source #
ixZipWith :: (Ixed s, TraversableWithIndex (Index s) t) => (a -> Maybe (IxValue s) -> b) -> t a -> s -> t b Source #
pairiix :: Ixed m => (Index m, Index m) -> IndexedTraversal' (Index m, Index m) m (IxValue m, IxValue m) Source #
pairOver :: (forall f. Functor f => (b -> f b) -> a -> f a) -> ((b, b) -> (b, b)) -> (a, a) -> (a, a) Source #
pairView' :: (forall f. Applicative f => (b -> f b) -> a -> f a) -> (a, a) -> Maybe (b, b) Source #
iixOver :: (forall f. Applicative f => k -> (b -> f b) -> a -> f a) -> ((b, b) -> (b, b)) -> (k, k) -> a -> a Source #
iixOver' :: Monad m => (forall f. Applicative f => k -> (b -> f b) -> a -> f a) -> ((b, b) -> m (b, b)) -> (k, k) -> a -> m a Source #
iixView :: (forall f. Applicative f => k -> (b -> f b) -> a -> f a) -> (k, k) -> a -> Maybe (b, b) Source #
liftMaybe' :: Monad m => m a -> MaybeT m a Source #