bytestring builder内部的type参数是什么?

sja*_*obi 6 haskell bytestring

核心数据类型Data.ByteString.Builder

newtype Builder = Builder (forall r. BuildStep r -> BuildStep r)

type BuildStep a = BufferRange -> IO (BuildSignal a)

data BuildSignal a =
    Done {-# UNPACK #-} !(Ptr Word8) a
  | BufferFull
      {-# UNPACK #-} !Int 
      {-# UNPACK #-} !(Ptr Word8)
                     (BuildStep a)
  | InsertChunk
      {-# UNPACK #-} !(Ptr Word8)
                     S.ByteString
                     (BuildStep a)
Run Code Online (Sandbox Code Playgroud)

类型参数(ra)用于什么目的?

Dan*_*ner 5

这不是必需的.作为证据,我创建了一个fork,它不会更改任何公共API - 只有名为的模块的API Internal- 但会删除此类型的参数.