Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Util.HList
Description
Heterogeneous lists
Intended for qualified import
Synopsis
- type family All (c ∷ Type → Constraint) (as ∷ [Type]) where ...
- data HList (a ∷ [Type]) where
- collapse ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ a. c a ⇒ a → b) → HList as → [b]
- foldMap ∷ ∀ c (as ∷ [Type]) b proxy. (All c as, Monoid b) ⇒ proxy c → (∀ a. c a ⇒ a → b) → HList as → b
- foldl ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ a. c a ⇒ b → a → b) → b → HList as → b
- foldlM ∷ ∀ c (as ∷ [Type]) m b proxy. (All c as, Monad m) ⇒ proxy c → (∀ a. c a ⇒ b → a → m b) → b → HList as → m b
- foldr ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ a. c a ⇒ a → b → b) → b → HList as → b
- repeatedly ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ a. c a ⇒ a → b → b) → HList as → b → b
- repeatedlyM ∷ ∀ c (as ∷ [Type]) b proxy m. (Monad m, All c as) ⇒ proxy c → (∀ a. c a ⇒ a → b → m b) → HList as → b → m b
- class IsList (xs ∷ [Type]) where
- data SList (a ∷ [Type])
- type family Fn (as ∷ [Type]) b where ...
- afterFn ∷ ∀ (as ∷ [Type]) b c. SList as → (b → c) → Fn as b → Fn as c
- applyFn ∷ ∀ (as ∷ [Type]) b. Fn as b → HList as → b
Basic definitions
data HList (a ∷ [Type]) where Source #
Constructors
Nil ∷ HList ('[] ∷ [Type]) | |
(:*) ∷ ∀ a1 (as ∷ [Type]). a1 → HList as → HList (a1 ': as) infixr 9 |
Folding
collapse ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ a. c a ⇒ a → b) → HList as → [b] Source #
foldMap ∷ ∀ c (as ∷ [Type]) b proxy. (All c as, Monoid b) ⇒ proxy c → (∀ a. c a ⇒ a → b) → HList as → b Source #
foldl ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ a. c a ⇒ b → a → b) → b → HList as → b Source #
foldlM ∷ ∀ c (as ∷ [Type]) m b proxy. (All c as, Monad m) ⇒ proxy c → (∀ a. c a ⇒ b → a → m b) → b → HList as → m b Source #
foldr ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ a. c a ⇒ a → b → b) → b → HList as → b Source #
repeatedly ∷ ∀ c (as ∷ [Type]) b proxy. All c as ⇒ proxy c → (∀ 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 ∷ ∀ c (as ∷ [Type]) b proxy m. (Monad m, All c as) ⇒ proxy c → (∀ a. c a ⇒ a → b → m b) → HList as → b → m b Source #