免責事項:これは最近haskell-cafeリストで尋ねられました。誰かに私の謝罪は、ダブル投稿に悩まさ。列挙型の列挙型の作成
I(例えばiteratee
、iterIO
、及びconduit
)を知っているiteratee-実装パッケージのすべては、enumerator
パッケージを除き、enumeratee組成関数を定義します。これは重大な制限のように私には思える、そしてまだまた、実装が比較的簡単なようだ:
import Data.Enumerator
import Data.Enumerator.Internal
(=$=) :: Monad m
=> Enumeratee a0 a1 m (Step a2 m b) -> Enumeratee a1 a2 m b
-> Enumeratee a0 a2 m b
(=$=) e01 e12 step = Iteratee $ do
step' <- runIteratee $ e12 step
runIteratee . joinI $ e01 step'
は、いくつかは、私が欠けていることをここに落とし穴がありますか?またはenumerator
の列挙型構成を定義しない別の理由はありますか?
私は、この質問に彼をリンクさせる[列挙子パッケージ](http://hackage.haskell.org/package/enumerator)の著者/保守担当者、John Millikinにメールを送りました。 –