@@ -12,17 +12,17 @@ import Prelude.Functor
13---- Applicative functors/Idioms
13---- Applicative functors/Idioms
15−infixl 2 <*>
15+infixl 3 <*>
17interface Functor f => Applicative (f : Type -> Type) where
17interface Functor f => Applicative (f : Type -> Type) where
18 pure : a -> f a
18 pure : a -> f a
19 (<*>) : f (a -> b) -> f a -> f b
19 (<*>) : f (a -> b) -> f a -> f b
21−infixl 2 <*
21+infixl 3 <*
22(<*) : Applicative f => f a -> f b -> f a
22(<*) : Applicative f => f a -> f b -> f a
23a <* b = map const a <*> b
23a <* b = map const a <*> b
25−infixl 2 *>
25+infixl 3 *>
26(*>) : Applicative f => f a -> f b -> f b
26(*>) : Applicative f => f a -> f b -> f b
27a *> b = map (const id) a <*> b
27a *> b = map (const id) a <*> b
@@ -38,7 +38,7 @@ liftA2 f a b = (map f a) <*> b
38liftA3 : Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
38liftA3 : Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
39liftA3 f a b c = (map f a) <*> b <*> c
39liftA3 f a b c = (map f a) <*> b <*> c
41−infixr 3 <|>
41+infixr 2 <|>
42interface Applicative f => Alternative (f : Type -> Type) where
42interface Applicative f => Alternative (f : Type -> Type) where
43 empty : f a
43 empty : f a
44 (<|>) : f a -> f a -> f a
44 (<|>) : f a -> f a -> f a