我正在尝试使用streaming-bytestring Data.ByteString.Streaming.Char8库的length函数。
我看到返回值的类型是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 ())发布于 2019-05-14 15:19:28
The constructor of Of is called (:>)
-- | 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 :>所以你应该能够做一些像这样的事情
n :> _ <- length bshttps://stackoverflow.com/questions/56124811
复制相似问题