| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Ouroboros.Consensus.Util.HList
Description
Heterogeneous lists
Intended for qualified import
Synopsis
- data HList :: [Type] -> Type where
- type family All c as :: Constraint where ...
- foldl :: forall c as b proxy. All c as => proxy c -> (forall a. c a => b -> a -> b) -> b -> HList as -> b
- foldlM :: forall c as m b proxy. (All c as, Monad m) => proxy c -> (forall a. c a => b -> a -> m b) -> b -> HList as -> m b
- foldr :: forall c as b proxy. All c as => proxy c -> (forall a. c a => a -> b -> b) -> b -> HList as -> b
- foldMap :: forall c as b proxy. (All c as, Monoid b) => proxy c -> (forall a. c a => a -> b) -> HList as -> b
- repeatedly :: forall c as b proxy. All c as => proxy c -> (forall a. c a => a -> b -> b) -> HList as -> b -> b
- repeatedlyM :: forall c as b proxy m. (Monad m, All c as) => proxy c -> (forall a. c a => a -> b -> m b) -> HList as -> b -> m b
- collapse :: forall c as b proxy. All c as => proxy c -> (forall a. c a => a -> b) -> HList as -> [b]
- data SList :: [Type] -> Type
- class IsList (xs :: [Type]) where
- type family Fn as b where ...
- applyFn :: Fn as b -> HList as -> b
- afterFn :: SList as -> (b -> c) -> Fn as b -> Fn as c
Basic definitions
type family All c as :: Constraint where ... Source #
Folding
foldl :: forall c as b proxy. All c as => proxy c -> (forall a. c a => b -> a -> b) -> b -> HList as -> b Source #
foldlM :: forall c as m b proxy. (All c as, Monad m) => proxy c -> (forall a. c a => b -> a -> m b) -> b -> HList as -> m b Source #
foldr :: forall c as b proxy. All c as => proxy c -> (forall a. c a => a -> b -> b) -> b -> HList as -> b Source #
foldMap :: forall c as b proxy. (All c as, Monoid b) => proxy c -> (forall a. c a => a -> b) -> HList as -> b Source #
repeatedly :: forall c as b proxy. All c as => proxy c -> (forall a. c a => a -> b -> b) -> HList as -> b -> b Source #
Apply function repeatedly for all elements of the list
repeatedly p = flip . foldl p . flip
repeatedlyM :: forall c as b proxy m. (Monad m, All c as) => proxy c -> (forall a. c a => a -> b -> m b) -> HList as -> b -> m b Source #
collapse :: forall c as b proxy. All c as => proxy c -> (forall a. c a => a -> b) -> HList as -> [b] Source #