fudgets-0.18.3: hsrc/sp/ParSP.hs
module ParSP(seqSP, parSP) where
import SP
parSP sp1 sp2 =
case sp1 of
PutSP y sp1' -> PutSP y (parSP sp1' sp2)
GetSP xsp1 -> parSP1 xsp1 sp2
NullSP -> sp2
parSP1 xsp1 sp2 =
case sp2 of
PutSP y sp2' -> PutSP y (parSP1 xsp1 sp2')
GetSP xsp2 -> GetSP (\x -> parSP (xsp1 x) (xsp2 x))
NullSP -> GetSP xsp1
seqSP sp1 sp2 =
case sp1 of
PutSP y sp1' -> PutSP y (seqSP sp1' sp2)
GetSP xsp -> GetSP (\x -> seqSP (xsp x) sp2)
NullSP -> sp2