如何访问Data.Functor.Of?

pap*_*uck 2 haskell haskell-streaming

我正在尝试使用库的长度函数streaming-bytestring Data.ByteString.Streaming.Char8

我看到返回值的类型为Of,但不清楚如何检查它。我试过使用case,但Not in scope: data constructor ‘O.Of’即使我对进行了合格的导入,编译器也会说Data.Functor.Of

如何检查价值?

代码示例:

ghci> let bs = BSSC.string "tiger"            
ghci> bs                                                   
Chunk "tiger" (Empty (()))                                            
ghci> BSSC.length bs                 
6 :> ()                                  
ghci> let len = BSSC.length bs
ghci> :t len
len :: Monad m => m (OO.Of Int ())
Run Code Online (Sandbox Code Playgroud)

Cac*_*tus 6

的构造函数Of称为(:>)

-- | A left-strict pair; the base functor for streams of individual elements.
data Of a b = !a :> b
    deriving (Data, Eq, Foldable, Ord,
              Read, Show, Traversable, Typeable, Generic, Generic1)
infixr 5 :>
Run Code Online (Sandbox Code Playgroud)

所以你应该可以做类似的事情

n :> _ <- length bs
Run Code Online (Sandbox Code Playgroud)