File tree Expand file tree Collapse file tree 5 files changed +50
-37
lines changed
Expand file tree Collapse file tree 5 files changed +50
-37
lines changed Original file line number Diff line number Diff line change 22/externs /
33/node_modules /
44/bower_components /
5+ /output /
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ module Control.Apply where
2+
3+ infixl 4 <*
4+ infixl 4 *>
5+
6+ (<*) :: forall a b f . (Apply f ) => f a -> f b -> f a
7+ (<*) a b = const <$> a <*> b
8+
9+ (*>) :: forall a b f . (Apply f ) => f a -> f b -> f b
10+ (*>) a b = const id <$> a <*> b
11+
12+ lift2 :: forall a b c f . (Apply f ) => (a -> b -> c ) -> f a -> f b -> f c
13+ lift2 f a b = f <$> a <*> b
14+
15+ lift3 :: forall a b c d f . (Apply f ) => (a -> b -> c -> d ) -> f a -> f b -> f c -> f d
16+ lift3 f a b c = f <$> a <*> b <*> c
17+
18+ lift4 :: forall a b c d e f . (Apply f ) => (a -> b -> c -> d -> e ) -> f a -> f b -> f c -> f d -> f e
19+ lift4 f a b c d = f <$> a <*> b <*> c <*> d
20+
21+ lift5 :: forall a b c d e f g . (Apply f ) => (a -> b -> c -> d -> e -> g ) -> f a -> f b -> f c -> f d -> f e -> f g
22+ lift5 f a b c d e = f <$> a <*> b <*> c <*> d <*> e
23+
24+ forever :: forall a b f . (Apply f ) => f a -> f b
25+ forever a = a *> forever a
Original file line number Diff line number Diff line change 1+ module Control.Bind where
2+
3+ infixr 1 =<<
4+ infixr 1 >=>
5+ infixr 1 <=<
6+
7+ (=<<) :: forall a b m . (Bind m ) => (a -> m b ) -> m a -> m b
8+ (=<<) f m = m >>= f
9+
10+ (>=>) :: forall a b c m . (Bind m ) => (a -> m b ) -> (b -> m c ) -> a -> m c
11+ (>=>) f g a = f a >>= g
12+
13+ (<=<) :: forall a b c m . (Bind m ) => (b -> m c ) -> (a -> m b ) -> a -> m c
14+ (<=<) f g a = f =<< g a
15+
16+ join :: forall a m . (Bind m ) => m (m a ) -> m a
17+ join m = m >>= id
18+
19+ ifM :: forall a m . (Bind m ) => m Boolean -> m a -> m a -> m a
20+ ifM cond t f = cond >>= \cond' -> if cond' then t else f
Original file line number Diff line number Diff line change 11module Control.Monad where
22
3- import Prelude
4- import Data.Array
5-
63replicateM :: forall m a . (Monad m ) => Number -> m a -> m [a ]
74replicateM 0 _ = return []
85replicateM n m = do
96 a <- m
107 as <- replicateM (n - 1 ) m
118 return (a : as)
129
13- infixr 1 >=>
14- infixr 1 <=<
15-
16- (>=>) :: forall m a b c . (Monad m ) => (a -> m b ) -> (b -> m c ) -> a -> m c
17- (>=>) f g a = do
18- b <- f a
19- g b
20-
21- (<=<) :: forall m a b c . (Monad m ) => (b -> m c ) -> (a -> m b ) -> a -> m c
22- (<=<) = flip (>=>)
23-
24- join :: forall m a . (Monad m ) => m (m a ) -> m a
25- join mm = do
26- m <- mm
27- m
28-
2910foldM :: forall m a b . (Monad m ) => (a -> b -> m a ) -> a -> [b ] -> m a
3011foldM _ a [] = return a
3112foldM f a (b:bs) = f a b >>= \a' -> foldM f a' bs
3213
3314when :: forall m . (Monad m ) => Boolean -> m { } -> m { }
3415when true m = m
3516when false _ = return {}
17+
18+ unless :: forall m . (Monad m ) => Boolean -> m { } -> m { }
19+ unless false m = m
20+ unless true _ = return {}
You can’t perform that action at this time.
0 commit comments