Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.HardFork.Combinator.Protocol.ChainSel
Description
Infrastructure for doing chain selection across eras
Documentation
data AcrossEraSelection ∷ Type → Type → Type where Source #
Constructors
CompareBlockNo ∷ AcrossEraSelection x y | Just compare block numbers This is a useful default when two eras run totally different consensus protocols, and we just want to choose the longer chain. |
SelectSameProtocol ∷ BlockProtocol x ~ BlockProtocol y ⇒ AcrossEraSelection x y | Two eras running the same protocol In this case, we can just call NOTE: We require that the eras have the same protocol, not merely the
same |
CustomChainSel ∷ (SelectView (BlockProtocol x) → SelectView (BlockProtocol y) → Ordering) → AcrossEraSelection x y | Custom chain selection This is the most general form, and allows to override chain selection for the specific combination of two eras with a custom comparison function. |
data WithBlockNo (f ∷ k → Type) (a ∷ k) Source #
Constructors
WithBlockNo | |
Fields
|
Instances
acrossEraSelection ∷ All SingleEraBlock xs ⇒ Tails AcrossEraSelection xs → WithBlockNo (NS WrapSelectView) xs → WithBlockNo (NS WrapSelectView) xs → Ordering Source #
mapWithBlockNo ∷ (f x → g y) → WithBlockNo f x → WithBlockNo g y Source #