Skip to content

Renumber the Leios mini-protocol messages from zero, without gaps - #2363

Merged
ch1bo merged 1 commit into
nfrisby/LeiosNotify-graceful-shutdownfrom
ch1bo/leios-protocol-message-indices
Oct 9, 2026
Merged

ch1bo merged 1 commit into
nfrisby/LeiosNotify-graceful-shutdownfrom
ch1bo/leios-protocol-message-indices

Renumber the Leios mini-protocol messages from zero, without gaps

c54515e
Select commit
Loading
Failed to load commit list.
IOG Hydra / ci/hydra-build:x86_64-linux.native.formattingLinting.all failed Oct 9, 2026 in 0s

Build dependency failed

1 failed steps

Details

Failed Steps

Step 1

Derivation

/nix/store/1s9mjqgz8262sqqsisszfly9y5l8apy8-check-fourmolu-exe-fourmolu.drv

Log

unpacking source archive /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source
source root is 1kafv79rpxq1j1zbplwf0vdicwcjw4by-source
The custom options for formatting this repo are:
fourmolu 0.18.0.0
using ghc-lib-parser 9.12.3.20251228
> indentation: 2
> column-limit: 100
> import-export-style: leading
> haddock-style: single-line
> single-constraint-parens: never
> single-deriving-parens: never
> import-grouping: single

Formatting haskell files...
Loaded config from: fourmolu.yaml
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Config.hs ./ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Config.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Config.hs       1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Config.hs 2026-10-09 22:03:00.926061215 +0000
@@ -49,15 +49,15 @@
 -- | The top-level node configuration
 data TopLevelConfig blk = TopLevelConfig
   { topLevelConfigProtocol :: !(ConsensusConfig (BlockProtocol blk))
-    -- ^ TODO both @topLevelConfigProtocol@ and @ConsensusConfig@ are misnomers,
-    -- which isn't too surprising considering they couldn't even agree :/
-    --
-    -- I think "header" be the best non-exotic classifier for this. It's still
-    -- somewhat confusing, since "chains of blocks" /inherit/ semantics of the
-    -- "chains of headers" that this config /directly/ affects. So any effect
-    -- some value within @topLevelConfigHeader/HeaderConfig@ might have on the
-    -- treatment of blocks could cause confusion. But that's seems preferable to
-    -- the current, extremely nebulous classifers "protocol" and "consensus".
+  -- ^ TODO both @topLevelConfigProtocol@ and @ConsensusConfig@ are misnomers,
+  -- which isn't too surprising considering they couldn't even agree :/
+  --
+  -- I think "header" be the best non-exotic classifier for this. It's still
+  -- somewhat confusing, since "chains of blocks" /inherit/ semantics of the
+  -- "chains of headers" that this config /directly/ affects. So any effect
+  -- some value within @topLevelConfigHeader/HeaderConfig@ might have on the
+  -- treatment of blocks could cause confusion. But that's seems preferable to
+  -- the current, extremely nebulous classifers "protocol" and "consensus".
   , topLevelConfigLedger :: !(LedgerConfig blk)
   , topLevelConfigBlock :: !(BlockConfig blk)
   , topLevelConfigCodec :: !(CodecConfig blk)
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus/src/unstable-consensus-testlib/Test/Util/LeiosTestBlock.hs ./ouroboros-consensus/src/unstable-consensus-testlib/Test/Util/LeiosTestBlock.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus/src/unstable-consensus-testlib/Test/Util/LeiosTestBlock.hs  1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus/src/unstable-consensus-testlib/Test/Util/LeiosTestBlock.hs    2026-10-09 22:03:09.476959975 +0000
@@ -97,7 +97,6 @@
 import Codec.Serialise (Serialise (..), deserialiseOrFail, serialise)
 import Control.Monad (foldM, guard, replicateM, replicateM_)
 import Control.Monad.Except (throwError)
-import Data.String (fromString)
 import qualified Data.Binary.Get as Get
 import qualified Data.Binary.Put as Put
 import qualified Data.ByteString as BS
@@ -113,6 +112,7 @@
 import qualified Data.Map.Strict as Map
 import Data.Proxy
 import Data.Ratio (denominator, numerator, (%))
+import Data.String (fromString)
 import qualified Data.Text as Text
 import Data.Time.Calendar (fromGregorian)
 import Data.Time.Clock (UTCTime (..))
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus/test/consensus-test/Test/LeiosDemoLogic/Invariants.hs ./ouroboros-consensus/test/consensus-test/Test/LeiosDemoLogic/Invariants.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus/test/consensus-test/Test/LeiosDemoLogic/Invariants.hs       1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus/test/consensus-test/Test/LeiosDemoLogic/Invariants.hs 2026-10-09 22:03:13.579911342 +0000
@@ -46,9 +46,9 @@
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Short as SBS
 import Data.Foldable (foldl', toList)
-import Data.List (sort)
 import qualified Data.IntMap.Strict as IntMap
 import qualified Data.IntSet as IntSet
+import Data.List (sort)
 import qualified Data.Map.Strict as Map
 import Data.Maybe.Strict (StrictMaybe (SJust, SNothing))
 import Data.Sequence.NonEmpty (NESeq)
@@ -76,14 +76,6 @@
   )
 import qualified LeiosDemoLogic.Announcements as Announcements
 import LeiosDemoLogic.Announcements.ElBimap (ElId (MkElId))
-import Test.Util.LeiosTestBlock
-  ( LeiosTestBlock
-  , announcing
-  , firstLeiosBlock
-  , issuedBy
-  , successorLeiosBlock
-  )
-import Ouroboros.Consensus.Forecast (OutsideForecastRange)
 import LeiosDemoTypes
   ( AnnouncementSource (..)
   , BytesSize
@@ -112,6 +104,7 @@
   ( RelativeTime (..)
   , SystemTime (..)
   )
+import Ouroboros.Consensus.Forecast (OutsideForecastRange)
 import Ouroboros.Consensus.Util.IOLike (IOLike, evaluate)
 import Ouroboros.Network.PeerSelection.LedgerPeers.Type
   ( IsBigLedgerPeer (..)
@@ -121,6 +114,13 @@
 import Test.Tasty (TestTree, testGroup)
 import Test.Tasty.HUnit (assertBool, assertFailure, testCase, (@?=))
 import Test.Tasty.QuickCheck (testProperty)
+import Test.Util.LeiosTestBlock
+  ( LeiosTestBlock
+  , announcing
+  , firstLeiosBlock
+  , issuedBy
+  , successorLeiosBlock
+  )
 import Test.Util.Orphans.IOLike ()
 import Test.Util.TestEnv (adjustQuickCheckTests)
 
@@ -280,14 +280,15 @@
               -- preloaded to 'used'
               run bigLedgerPeers used =
                 let outstanding =
-                      (\o -> o{Leios.requestedBytesSizePerPeer = Map.singleton peerId used}) $
+                      (\o -> o{Leios.requestedBytesSizePerPeer = Map.singleton peerId used})
+                        $
                         -- the election fetching it, without which nothing is requested
                         Leios.focusElectionIfUnfocused
                           (Leios.announcementElection (announcementOf point 0))
                           h
-                          $ Leios.acquireEbBody h jobPool
-                          $ Leios.recordMaxAnnouncementSlot h (SlotNo 10) SNothing
-                          $ (emptyLeiosOutstanding (mkStdGen 0) (SlotNo 0) :: LeiosOutstanding Int)
+                        $ Leios.acquireEbBody h jobPool
+                        $ Leios.recordMaxAnnouncementSlot h (SlotNo 10) SNothing
+                        $ (emptyLeiosOutstanding (mkStdGen 0) (SlotNo 0) :: LeiosOutstanding Int)
                     (_o, reqs, _d) =
                       leiosFetchLogicIteration
                         demoLeiosFetchStaticEnv
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/ouroboros-consensus-cardano/Ouroboros/Consensus/Cardano/CanHardFork.hs ./ouroboros-consensus-cardano/src/ouroboros-consensus-cardano/Ouroboros/Consensus/Cardano/CanHardFork.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/ouroboros-consensus-cardano/Ouroboros/Consensus/Cardano/CanHardFork.hs  1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/ouroboros-consensus-cardano/Ouroboros/Consensus/Cardano/CanHardFork.hs    2026-10-09 22:02:53.913144125 +0000
@@ -90,9 +90,9 @@
 import Ouroboros.Consensus.Protocol.Abstract hiding
   ( translateChainDepState
   )
+import Ouroboros.Consensus.Protocol.Leios (PraosWithLeios)
 import Ouroboros.Consensus.Protocol.PBFT.State (PBftState)
 import qualified Ouroboros.Consensus.Protocol.PBFT.State as PBftState
-import Ouroboros.Consensus.Protocol.Leios (PraosWithLeios)
 import Ouroboros.Consensus.Protocol.Praos (Praos)
 import qualified Ouroboros.Consensus.Protocol.Praos as Praos
 import Ouroboros.Consensus.Protocol.Praos.Common (PraosTiebreakerView)
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Forge.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Forge.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Forge.hs     1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Forge.hs       2026-10-09 22:02:53.783145660 +0000
@@ -47,8 +47,8 @@
 import Ouroboros.Consensus.Ledger.Abstract
 import Ouroboros.Consensus.Ledger.SupportsMempool
 import Ouroboros.Consensus.Protocol.Abstract (CanBeLeader)
-import Ouroboros.Consensus.Protocol.Praos.Common (EitherLeiosF)
 import Ouroboros.Consensus.Protocol.Ledger.HotKey (HotKey)
+import Ouroboros.Consensus.Protocol.Praos.Common (EitherLeiosF)
 import Ouroboros.Consensus.Shelley.Eras (DijkstraEra)
 import Ouroboros.Consensus.Shelley.Ledger.Block
 import Ouroboros.Consensus.Shelley.Ledger.Config
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Leios.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Leios.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Leios.hs     1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/Leios.hs       2026-10-09 22:02:53.957143605 +0000
@@ -1,4 +1,3 @@
-{-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE BangPatterns #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE FlexibleContexts #-}
@@ -10,6 +9,7 @@
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE UndecidableInstances #-}
 -- 'SL.unsafeMakeValidated' is deprecated in favour of the ledger's newer
 -- 'ValidatedTx', which consensus has not moved to yet (see the same FIXME in
 -- "Ouroboros.Consensus.Shelley.Ledger.Mempool"). Suppressed here the way the
@@ -73,7 +73,6 @@
   , WhetherToUpperBoundOCERT (..)
   )
 import qualified Ouroboros.Consensus.Protocol.Praos as PP
-
 import Ouroboros.Consensus.Protocol.Praos.Views (plvPoolDistr)
 import qualified Ouroboros.Consensus.Protocol.Praos.Views as PP
 import Ouroboros.Consensus.Protocol.TPraos (TPraos)
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/SupportsProtocol.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/SupportsProtocol.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/SupportsProtocol.hs  1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Ledger/SupportsProtocol.hs    2026-10-09 22:02:53.963143533 +0000
@@ -1,4 +1,3 @@
-{-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE DisambiguateRecordFields #-}
 {-# LANGUAGE FlexibleContexts #-}
@@ -7,6 +6,7 @@
 {-# LANGUAGE NamedFieldPuns #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TypeOperators #-}
 {-# OPTIONS_GHC -Wno-orphans #-}
 
 -- | This module contains 'SupportsProtocol' instances tying the ledger and
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Praos.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Praos.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Praos.hs       1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Praos.hs 2026-10-09 22:02:54.027142777 +0000
@@ -1,9 +1,9 @@
-{-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE NamedFieldPuns #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TypeOperators #-}
 {-# OPTIONS_GHC -Wno-orphans #-}
 
 module Ouroboros.Consensus.Shelley.Node.Praos
@@ -19,16 +19,16 @@
 import qualified Data.Text as T
 import Ouroboros.Consensus.Block
 import Ouroboros.Consensus.Config (configConsensus)
-import qualified Ouroboros.Consensus.Protocol.Ledger.HotKey as HotKey
 import Ouroboros.Consensus.Protocol.Abstract (CanBeLeader, ConsensusConfig)
+import qualified Ouroboros.Consensus.Protocol.Ledger.HotKey as HotKey
 import Ouroboros.Consensus.Protocol.Leios (ConsensusConfig (..), EitherLeiosF (..), PraosWithLeios)
-import Ouroboros.Consensus.Protocol.Praos.Common (PraosCanBeLeader)
 import Ouroboros.Consensus.Protocol.Praos
-  ( PraosCannotForge
-  , Praos
+  ( Praos
+  , PraosCannotForge
   , PraosParams (..)
   , praosCheckCanForge
   )
+import Ouroboros.Consensus.Protocol.Praos.Common (PraosCanBeLeader)
 import Ouroboros.Consensus.Shelley.Ledger
   ( ShelleyBlock
   , ShelleyCompatible
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Serialisation.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Serialisation.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Serialisation.hs       1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Node/Serialisation.hs 2026-10-09 22:02:54.223140462 +0000
@@ -43,8 +43,7 @@
 import Ouroboros.Consensus.Ledger.Tables (EmptyMK)
 import Ouroboros.Consensus.Node.Run
 import Ouroboros.Consensus.Node.Serialisation
-import Ouroboros.Consensus.Protocol.Praos (BasePraosState)
-import Ouroboros.Consensus.Protocol.Praos (SerialisePraosState)
+import Ouroboros.Consensus.Protocol.Praos (BasePraosState, SerialisePraosState)
 import Ouroboros.Consensus.Protocol.TPraos
 import Ouroboros.Consensus.Shelley.Eras
 import Ouroboros.Consensus.Shelley.Ledger
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Abstract.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Abstract.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Abstract.hs        1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Abstract.hs  2026-10-09 22:02:54.163141171 +0000
@@ -64,9 +64,9 @@
   )
 import Ouroboros.Consensus.Protocol.Ledger.HotKey (HotKey)
 import Ouroboros.Consensus.Protocol.Praos.Common
-  ( HasMaxMajorProtVer
+  ( EitherLeiosF
+  , HasMaxMajorProtVer
   , ShelleyProtocolHeader
-  , EitherLeiosF
   )
 import Ouroboros.Consensus.Protocol.Signed (SignedHeader)
 import Ouroboros.Consensus.Util.Condense (Condense (..))
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Praos.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Praos.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Praos.hs   1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Praos.hs     2026-10-09 22:02:54.225140438 +0000
@@ -27,12 +27,17 @@
   )
 import qualified Cardano.Protocol.TPraos.OCert as SL
 import Cardano.Slotting.Block (BlockNo)
+import Control.Monad.Except (Except)
 import Data.Either (isRight)
 import Data.Maybe.Strict (StrictMaybe (..))
-import Control.Monad.Except (Except)
 import Data.Word (Word32, Word64)
+import Ouroboros.Consensus.Protocol.Leios
+  ( ConsensusConfig (..)
+  , EitherLeiosF (..)
+  , LeiosCrypto
+  , PraosWithLeios
+  )
 import Ouroboros.Consensus.Protocol.Praos
-import Ouroboros.Consensus.Protocol.Leios (ConsensusConfig (..), EitherLeiosF (..), LeiosCrypto, PraosWithLeios)
 import Ouroboros.Consensus.Protocol.Praos.Common
   ( MaxMajorProtVer (MaxMajorProtVer)
   , fromCodecEbAnnouncement
@@ -43,12 +48,12 @@
 import Ouroboros.Consensus.Shelley.Protocol.Abstract
   ( ProtoCrypto
   , ProtocolHeaderSupportsEnvelope (..)
-  , default_pHeaderLeiosContainsCert
-  , default_pHeaderLeiosEbAnnouncement
   , ProtocolHeaderSupportsKES (..)
   , ProtocolHeaderSupportsProtocol (..)
   , ShelleyHash (ShelleyHash)
   , ShelleyProtocol
+  , default_pHeaderLeiosContainsCert
+  , default_pHeaderLeiosEbAnnouncement
   )
 import Ouroboros.Consensus.Shelley.Protocol.EnvelopeChecks
   ( EnvelopeError
@@ -100,7 +105,6 @@
  where
   body = LeiosCodec.headerBody hdr
 
-
 {-------------------------------------------------------------------------------
   Instances
 -------------------------------------------------------------------------------}
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/TPraos.hs ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/TPraos.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/TPraos.hs  1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/TPraos.hs    2026-10-09 22:02:54.170141088 +0000
@@ -82,7 +82,6 @@
     MaxMajorProtVer maxPV = tpraosMaxMajorPV (tpraosParams cfg)
 
 instance PraosCrypto c => ProtocolHeaderSupportsKES (TPraos c) where
-
   configSlotsPerKESPeriod cfg = tpraosSlotsPerKESPeriod $ tpraosParams cfg
   verifyHeaderIntegrity slotsPerKESPeriod hdr =
     isRight $ SL.verifySignedKES () ocertVkHot t hdrBody hdrSignature
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/test/tools-test/Main.hs ./ouroboros-consensus-cardano/test/tools-test/Main.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-cardano/test/tools-test/Main.hs     1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-cardano/test/tools-test/Main.hs       2026-10-09 22:02:56.795110066 +0000
@@ -325,7 +325,8 @@
         }
 
     logStep "checking the endorser blocks were certified"
-    config <- pInfoConfig <$> mkProtocolInfo (Cardano.CardanoBlockArgs (fixture </> "config.json") Nothing)
+    config <-
+      pInfoConfig <$> mkProtocolInfo (Cardano.CardanoBlockArgs (fixture </> "config.json") Nothing)
     certified <- certifiedBlockSlots config db
     length certified == length ebs
       @? "endorser blocks were announced at "
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Leios.hs ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Leios.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Leios.hs     1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Leios.hs       2026-10-09 22:02:59.262080897 +0000
@@ -27,14 +27,15 @@
 
 import Cardano.Ledger.BaseTypes (Milliseconds32 (..), StrictMaybe (..))
 import Cardano.Ledger.Chain (ChainChecksPParams (..))
+import qualified Cardano.Ledger.Dijkstra.Forecast as Dijkstra
 import Cardano.Ledger.Keys (hashKey)
+import qualified Cardano.Ledger.Shelley.API as SL
 import Cardano.Ledger.State (emptyLeiosCommittee)
 import Cardano.Protocol.Crypto (Crypto, StandardCrypto)
 import qualified Cardano.Protocol.Leios.BlockHeader as LeiosCodec
 import Cardano.Slotting.EpochInfo (epochInfoSlotLength)
 import Cardano.Slotting.Slot (SlotNo)
 import Cardano.Slotting.Time (SlotLength)
-import Ouroboros.Consensus.Block (WithOrigin (NotOrigin))
 import Control.DeepSeq (NFData)
 import Control.Monad (when)
 import Control.Monad.Except (Except, throwError)
@@ -45,14 +46,12 @@
 import GHC.Generics (Generic)
 import LeiosDemoTypes (certificationGapOfPeriods, ebAnnouncementSize)
 import qualified LeiosDemoTypes as Leios
-import NoThunks.Class (NoThunks)
-import qualified Cardano.Ledger.Dijkstra.Forecast as Dijkstra
-import qualified Cardano.Ledger.Shelley.API as SL
 import Lens.Micro ((^.))
+import NoThunks.Class (NoThunks)
+import Ouroboros.Consensus.Block (WithOrigin (NotOrigin))
 import qualified Ouroboros.Consensus.HardFork.History as History
 import Ouroboros.Consensus.Protocol.Abstract
 import Ouroboros.Consensus.Protocol.Praos
-import Ouroboros.Consensus.Protocol.TPraos (TPraos)
 import Ouroboros.Consensus.Protocol.Praos.Common
   ( HasMaxMajorProtVer (..)
   , PraosCanBeLeader
@@ -63,6 +62,7 @@
   )
 import Ouroboros.Consensus.Protocol.Praos.Orphans ()
 import qualified Ouroboros.Consensus.Protocol.Praos.Views as Views
+import Ouroboros.Consensus.Protocol.TPraos (TPraos)
 
 {-------------------------------------------------------------------------------
   The protocol
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos/Common.hs ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos/Common.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos/Common.hs      1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos/Common.hs        2026-10-09 22:02:59.336080022 +0000
@@ -12,8 +12,8 @@
 {-# LANGUAGE StandaloneDeriving #-}
 {-# LANGUAGE StandaloneKindSignatures #-}
 {-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeFamilyDependencies #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeFamilyDependencies #-}
 {-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE UndecidableInstances #-}
 
@@ -396,7 +396,6 @@
 
 -----
 
-
 -----
 
 -- | @a@ for the protocols without Leios, and @b@ for the ones with it.
@@ -412,7 +411,6 @@
 type EitherLeiosF :: Type -> Type -> Type -> Type
 data family EitherLeiosF proto a :: Type -> Type
 
-
 -----
 
 -- | The announcement as 'LeiosDemoTypes' spells it.
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos.hs ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos.hs     1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/Praos.hs       2026-10-09 22:02:59.544077562 +0000
@@ -3,10 +3,10 @@
 {-# LANGUAGE DeriveAnyClass #-}
 {-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE DerivingStrategies #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE ExistentialQuantification #-}
+{-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE NamedFieldPuns #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -15,8 +15,8 @@
 {-# LANGUAGE StandaloneDeriving #-}
 {-# LANGUAGE StandaloneKindSignatures #-}
 {-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE UndecidableSuperClasses #-}
 {-# LANGUAGE ViewPatterns #-}
@@ -82,8 +82,8 @@
   )
 import qualified Cardano.Ledger.Keys as SL
 import Cardano.Ledger.Shelley (ShelleyEra)
-import Cardano.Ledger.Slot (Duration (Duration), (+*))
 import qualified Cardano.Ledger.Shelley.API as SL
+import Cardano.Ledger.Slot (Duration (Duration), (+*))
 import qualified Cardano.Ledger.State as SL
 import Cardano.Protocol.Crypto (Crypto, KES, StandardCrypto, VRF)
 import qualified Cardano.Protocol.Praos.BlockHeader as PraosCodec
@@ -121,27 +121,27 @@
   )
 import qualified Codec.CBOR.Encoding as CBOR
 import Codec.Serialise (Serialise (decode, encode))
-import Control.Exception (throw)
 import Control.DeepSeq (NFData)
+import Control.Exception (throw)
 import Control.Monad (unless)
 import Control.Monad.Except (Except, runExcept, throwError)
 import Data.Coerce (coerce)
 import Data.Functor.Identity (runIdentity)
 import Data.Kind (Type)
 import Data.Map.Strict (Map)
-import Data.Typeable (Typeable)
 import qualified Data.Map.Strict as Map
 import Data.Proxy (Proxy (Proxy))
+import Data.Typeable (Typeable)
 import Data.Void (Void)
 import Data.Word (Word64)
 import GHC.Generics (Generic)
-import Lens.Micro ((^.))
 import LeiosDemoTypes
   ( EbAnnouncement
   , LeiosHeaderErr
   , decodeEbAnnouncement
   , encodeEbAnnouncement
   )
+import Lens.Micro ((^.))
 import NoThunks.Class (NoThunks)
 import Numeric.Natural (Natural)
 import Ouroboros.Consensus.Block (WithOrigin (NotOrigin))
@@ -152,8 +152,8 @@
 import Ouroboros.Consensus.Protocol.Ledger.Util (isNewEpoch)
 import Ouroboros.Consensus.Protocol.Praos.Common
 import Ouroboros.Consensus.Protocol.Praos.Orphans ()
-import Ouroboros.Consensus.Protocol.Signed (Signed)
 import qualified Ouroboros.Consensus.Protocol.Praos.Views as Views
+import Ouroboros.Consensus.Protocol.Signed (Signed)
 import Ouroboros.Consensus.Protocol.TPraos
   ( ConsensusConfig (TPraosConfig, tpraosEpochInfo, tpraosParams)
   , TPraos
@@ -187,7 +187,7 @@
 instance Functor (EitherLeiosF (Praos c) a) where
   fmap _ (PraosLeiosLeft a) = PraosLeiosLeft a
 
-instance (() ~ a) => Applicative (EitherLeiosF (Praos c) a) where
+instance () ~ a => Applicative (EitherLeiosF (Praos c) a) where
   pure _ = PraosLeiosLeft ()
   PraosLeiosLeft () <*> PraosLeiosLeft () = PraosLeiosLeft ()
 
@@ -408,7 +408,6 @@
   enforceSize "AnnouncedBy" 2
   MkAnnouncedBy <$> fromCBOR <*> decodeEbAnnouncement
 
-
 deriving anyclass instance
   ( Typeable proto
   , NoThunks (EitherLeiosF proto () (StrictMaybe AnnouncedBy))
@@ -549,15 +548,15 @@
 
 deriving instance
   (BasePraosCrypto proto c, Eq (EitherLeiosF proto Void ())) =>
-    Eq (BasePraosValidationErr proto c)
+  Eq (BasePraosValidationErr proto c)
 
 deriving instance
   (BasePraosCrypto proto c, Typeable proto, NoThunks (EitherLeiosF proto Void ())) =>
-    NoThunks (BasePraosValidationErr proto c)
+  NoThunks (BasePraosValidationErr proto c)
 
 deriving instance
   (BasePraosCrypto proto c, Show (EitherLeiosF proto Void ())) =>
-    Show (BasePraosValidationErr proto c)
+  Show (BasePraosValidationErr proto c)
 
 instance PraosCrypto c => ConsensusProtocol (Praos c) where
   type ChainDepState (Praos c) = BasePraosState (Praos c)
@@ -965,7 +964,6 @@
 (Right _) ?!: _ = pure ()
 (Left e1) ?!: f = throwError $ f e1
 
-
 infix 1 ?!:
 
 -- | 'checkIsLeader' for any Praos.
diff -ru /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/TPraos.hs ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/TPraos.hs
--- /nix/store/4f2v0q4rjqgwn0m641sfkrvv2knfys3y-1kafv79rpxq1j1zbplwf0vdicwcjw4by-source/ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/TPraos.hs    1970-01-01 00:00:01.000000000 +0000
+++ ./ouroboros-consensus-protocol/src/ouroboros-consensus-protocol/Ouroboros/Consensus/Protocol/TPraos.hs      2026-10-09 22:02:59.457078591 +0000
@@ -182,7 +182,7 @@
 instance Functor (EitherLeiosF (TPraos c) a) where
   fmap _ (TPraosLeiosLeft a) = TPraosLeiosLeft a
 
-instance (() ~ a) => Applicative (EitherLeiosF (TPraos c) a) where
+instance () ~ a => Applicative (EitherLeiosF (TPraos c) a) where
   pure _ = TPraosLeiosLeft ()
   TPraosLeiosLeft () <*> TPraosLeiosLeft () = TPraosLeiosLeft ()
 
*** fourmolu-exe-fourmolu-0.18.0.0 found changes that need addressed first