appendStartSP :: [b] -> SP a b -> SP a b feedSP :: a -> [a] -> SP a b -> SP a b interpSP :: (t1 -> t2 -> t2) -> ((a -> t2) -> t2) -> t2 -> SP a t1 -> t2 pullSP :: SP a1 a2 -> ([a2], SP a1 a2) stepSP :: [b] -> Cont (SP a b) a walkSP :: SP a1 a2 -> a1 -> ([a2], SP a1 a2)