Why is there an unexpected “expected type” of () in this conduit composition (fusion)?
问题 I have the following conduit components that are being fused together: awaitVals () :: ConduitT (Element mono) (Element mono) m () intermTmp :: forall o. (Element mono -> Bool) -> ConduitT (Element mono) o m ([Element mono]) The fusion occurs like: awaitVals () .| intermTmp curPred . According to the fuse function ( .| ), I think the types should be OK here. Fuse is: (.|) :: Monad m => ConduitT a b m () -> ConduitT b c m r -> ConduitT a c m r Here's the entire function definition: