Skip to content

Commit 08812ef

Browse files
committed
ouroboros-network-protocols: type signatures
* Provide kinds for some of the type variables. This improves haddocks. * Added export list for `PeerSharing.Codec` * Not exporting `encodeTxSubmission2` and `decodeTxSubmission2`, they are not used outside of this module, and they are not used in `ouroboros-consensus`.
1 parent 565b4d1 commit 08812ef

File tree

4 files changed

+24
-15
lines changed

4 files changed

+24
-15
lines changed

ouroboros-network-protocols/src/Ouroboros/Network/Protocol/BlockFetch/Codec.hs

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{-# LANGUAGE DataKinds #-}
22
{-# LANGUAGE FlexibleContexts #-}
33
{-# LANGUAGE GADTs #-}
4-
{-# LANGUAGE NamedFieldPuns #-}
54
{-# LANGUAGE PolyKinds #-}
65
{-# LANGUAGE RankNTypes #-}
76
{-# LANGUAGE ScopedTypeVariables #-}
@@ -18,19 +17,20 @@ import Control.Monad.Class.MonadST
1817
import Control.Monad.Class.MonadTime.SI
1918

2019
import Data.ByteString.Lazy qualified as LBS
20+
import Data.Kind (Type)
2121

2222
import Codec.CBOR.Decoding qualified as CBOR
2323
import Codec.CBOR.Encoding qualified as CBOR
2424
import Codec.CBOR.Read qualified as CBOR
2525
import Text.Printf
2626

27-
import Network.TypedProtocol.Codec.CBOR
27+
import Network.TypedProtocol.Codec.CBOR hiding (decode, encode)
2828

2929
import Ouroboros.Network.Protocol.BlockFetch.Type
3030
import Ouroboros.Network.Protocol.Limits
3131

3232
-- | Byte Limit.
33-
byteLimitsBlockFetch :: forall bytes block point.
33+
byteLimitsBlockFetch :: forall bytes (block :: Type) (point :: Type).
3434
(bytes -> Word) -- ^ compute size of bytes
3535
-> ProtocolSizeLimits (BlockFetch block point) bytes
3636
byteLimitsBlockFetch = ProtocolSizeLimits stateToLimit
@@ -54,6 +54,7 @@ byteLimitsBlockFetch = ProtocolSizeLimits stateToLimit
5454
-- | `BFStreaming` | `longWait` |
5555
-- +------------------+---------------+
5656
--
57+
timeLimitsBlockFetch :: forall (block :: Type) (point :: Type).
5758
ProtocolTimeLimits (BlockFetch block point)
5859
timeLimitsBlockFetch = ProtocolTimeLimits stateToLimit
5960
where
@@ -138,7 +139,7 @@ codecBlockFetch encodeBlock decodeBlock
138139

139140

140141
codecBlockFetchId
141-
:: forall block point m.
142+
:: forall (block :: Type) (point :: Type) m.
142143
Monad m
143144
=> Codec (BlockFetch block point) CodecFailure m
144145
(AnyMessage (BlockFetch block point))

ouroboros-network-protocols/src/Ouroboros/Network/Protocol/ChainSync/Codec.hs

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import Ouroboros.Network.Protocol.ChainSync.Type
2323
import Ouroboros.Network.Protocol.Limits
2424

2525
import Data.ByteString.Lazy qualified as LBS
26+
import Data.Kind (Type)
2627
import Data.Singletons (withSingI)
2728
import System.Random (StdGen, randomR)
2829

@@ -78,7 +79,7 @@ maxChainSyncTimeout = 269
7879
-- | @'StIntersect'@ | 'shortWait' |
7980
-- +----------------------------+-------------------------------------------------------------+
8081
--
81-
timeLimitsChainSync :: forall header point tip.
82+
timeLimitsChainSync :: forall (header :: Type) (point :: Type) (tip :: Type).
8283
StdGen
8384
-> ProtocolTimeLimits (ChainSync header point tip)
8485
timeLimitsChainSync rnd = ProtocolTimeLimits stateToLimit

ouroboros-network-protocols/src/Ouroboros/Network/Protocol/PeerSharing/Codec.hs

+11-4
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,18 @@
66
{-# LANGUAGE RankNTypes #-}
77
{-# LANGUAGE ScopedTypeVariables #-}
88

9-
module Ouroboros.Network.Protocol.PeerSharing.Codec where
9+
module Ouroboros.Network.Protocol.PeerSharing.Codec
10+
( codecPeerSharing
11+
, codecPeerSharingId
12+
, byteLimitsPeerSharing
13+
, timeLimitsPeerSharing
14+
) where
1015

1116
import Control.Monad.Class.MonadST
1217
import Control.Monad.Class.MonadTime.SI (DiffTime)
1318

1419
import Data.ByteString.Lazy (ByteString)
20+
import Data.Kind (Type)
1521

1622
import Codec.CBOR.Decoding qualified as CBOR
1723
import Codec.CBOR.Encoding qualified as CBOR
@@ -23,7 +29,7 @@ import Network.TypedProtocol.Codec.CBOR
2329
import Ouroboros.Network.Protocol.Limits
2430
import Ouroboros.Network.Protocol.PeerSharing.Type
2531

26-
codecPeerSharing :: forall m peerAddress.
32+
codecPeerSharing :: forall m (peerAddress :: Type).
2733
MonadST m
2834
=> (peerAddress -> CBOR.Encoding)
2935
-- ^ encode 'peerAddress'
@@ -87,7 +93,7 @@ codecPeerSharing encodeAddress decodeAddress = mkCodecCborLazyBS encodeMsg decod
8793
Just n -> CBOR.decodeSequenceLenN (flip (:)) [] reverse n dec
8894

8995
codecPeerSharingId
90-
:: forall peerAddress m.
96+
:: forall (peerAddress :: Type) m.
9197
Monad m
9298
=> Codec (PeerSharing peerAddress) CodecFailure m (AnyMessage (PeerSharing peerAddress))
9399
codecPeerSharingId = Codec encodeMsg decodeMsg
@@ -121,7 +127,7 @@ codecPeerSharingId = Codec encodeMsg decodeMsg
121127
maxTransmissionUnit :: Word
122128
maxTransmissionUnit = 4 * 1440
123129

124-
byteLimitsPeerSharing :: forall peerAddress bytes.
130+
byteLimitsPeerSharing :: forall (peerAddress :: Type) bytes.
125131
(bytes -> Word) -- ^ compute size of bytes
126132
-> ProtocolSizeLimits (PeerSharing peerAddress) bytes
127133
byteLimitsPeerSharing = ProtocolSizeLimits sizeLimitForState
@@ -144,6 +150,7 @@ byteLimitsPeerSharing = ProtocolSizeLimits sizeLimitForState
144150
-- | `StBusy` | `longWait` |
145151
-- +----------------------+---------------+
146152
--
153+
timeLimitsPeerSharing :: forall (peerAddress :: Type). ProtocolTimeLimits (PeerSharing peerAddress)
147154
timeLimitsPeerSharing = ProtocolTimeLimits { timeLimitForState }
148155
where
149156
timeLimitForState :: forall (st :: PeerSharing peerAddress).

ouroboros-network-protocols/src/Ouroboros/Network/Protocol/TxSubmission2/Codec.hs

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,20 @@
1010
module Ouroboros.Network.Protocol.TxSubmission2.Codec
1111
( codecTxSubmission2
1212
, codecTxSubmission2Id
13-
, encodeTxSubmission2
14-
, decodeTxSubmission2
1513
, byteLimitsTxSubmission2
1614
, timeLimitsTxSubmission2
1715
) where
1816

1917
import Control.Monad.Class.MonadST
2018
import Control.Monad.Class.MonadTime.SI
19+
import Data.ByteString.Lazy (ByteString)
20+
import Data.Kind (Type)
2121
import Data.List.NonEmpty qualified as NonEmpty
22+
import Text.Printf
2223

2324
import Codec.CBOR.Decoding qualified as CBOR
2425
import Codec.CBOR.Encoding qualified as CBOR
2526
import Codec.CBOR.Read qualified as CBOR
26-
import Data.ByteString.Lazy (ByteString)
27-
import Text.Printf
2827

2928
import Network.TypedProtocol.Codec.CBOR
3029

@@ -63,6 +62,7 @@ byteLimitsTxSubmission2 = ProtocolSizeLimits stateToLimit
6362
-- | `StTxs` | `shortWait` |
6463
-- +-----------------------------+---------------+
6564
--
65+
timeLimitsTxSubmission2 :: forall (txid :: Type) (tx :: Type). ProtocolTimeLimits (TxSubmission2 txid tx)
6666
timeLimitsTxSubmission2 = ProtocolTimeLimits stateToLimit
6767
where
6868
stateToLimit :: forall (st :: TxSubmission2 txid tx).
@@ -76,7 +76,7 @@ timeLimitsTxSubmission2 = ProtocolTimeLimits stateToLimit
7676

7777

7878
codecTxSubmission2
79-
:: forall txid tx m.
79+
:: forall (txid :: Type) (tx :: Type) m.
8080
MonadST m
8181
=> (txid -> CBOR.Encoding)
8282
-- ^ encode 'txid'
@@ -103,7 +103,7 @@ codecTxSubmission2 encodeTxId decodeTxId
103103
decodeTxSubmission2 decodeTxId decodeTx stok len key
104104

105105
encodeTxSubmission2
106-
:: forall txid tx (st :: TxSubmission2 txid tx) (st' :: TxSubmission2 txid tx).
106+
:: forall (txid :: Type) (tx :: Type) (st :: TxSubmission2 txid tx) (st' :: TxSubmission2 txid tx).
107107
(txid -> CBOR.Encoding)
108108
-- ^ encode 'txid'
109109
-> (tx -> CBOR.Encoding)

0 commit comments

Comments
 (0)