@@ -23,3 +23,11 @@ sepBy v s = sepBy1 v s
23-- | One or more occurences of v separated by s.
23-- | One or more occurences of v separated by s.
24sepBy1 :: SemiIsoAlternative f => f a -> f () -> f [a]
24sepBy1 :: SemiIsoAlternative f => f a -> f () -> f [a]
25sepBy1 v s = _Cons /$/ v /*/ (s */ sepBy1 v s /|/ sipure _Empty)
25sepBy1 v s = _Cons /$/ v /*/ (s */ sepBy1 v s /|/ sipure _Empty)
28+couldBe :: SemiIsoFunctor f => f () -> f ()
31+-- | Something that should be, but doesn't have to be.
32+shouldBe :: SemiIsoAlternative f => f () -> f ()
33+shouldBe f = constant () /$/ f