File tree Expand file tree Collapse file tree 3 files changed +25
-5
lines changed
Expand file tree Collapse file tree 3 files changed +25
-5
lines changed Original file line number Diff line number Diff line change 1717
1818### Values
1919
20- many :: forall f a. (Alternative f) => f a -> f [a]
20+ many :: forall f a. (Alternative f, Lazy1 f ) => f a -> f [a]
2121
22- some :: forall f a. (Alternative f) => f a -> f [a]
22+ some :: forall f a. (Alternative f, Lazy1 f ) => f a -> f [a]
2323
2424
2525## Module Control.Apply
5656 join :: forall a m. (Bind m) => m (m a) -> m a
5757
5858
59+ ## Module Control.Lazy
60+
61+ ### Type Classes
62+
63+ class Lazy a where
64+ defer :: (Unit -> a) -> a
65+
66+ class Lazy1 a where
67+ defer1 :: forall t. (Unit -> a t) -> a t
68+
69+
5970## Module Control.Monad
6071
6172### Values
Original file line number Diff line number Diff line change 11module Control.Alternative where
22
33import Control.Alt
4+ import Control.Lazy
45import Control.Plus
56
67class (Applicative f , Plus f ) <= Alternative f
78
8- some :: forall f a . (Alternative f ) => f a -> f [a ]
9- some v = (:) <$> v <*> many v
9+ some :: forall f a . (Alternative f , Lazy1 f ) => f a -> f [a ]
10+ some v = (:) <$> v <*> defer1 (\_ -> many v)
1011
11- many :: forall f a . (Alternative f ) => f a -> f [a ]
12+ many :: forall f a . (Alternative f , Lazy1 f ) => f a -> f [a ]
1213many v = some v <|> pure []
14+
Original file line number Diff line number Diff line change 1+ module Control.Lazy where
2+
3+ class Lazy a where
4+ defer :: (Unit -> a ) -> a
5+
6+ class Lazy1 a where
7+ defer1 :: forall t . (Unit -> a t ) -> a t
You can’t perform that action at this time.
0 commit comments