Files
postgrest/docs/Applicative.md
T
2016-12-10 16:01:47 +00:00

91 lines
1.4 KiB
Markdown

Applicative
===========
Functor
-------
```haskell
class Functor (f :: * -> *) where
fmap :: (a -> b) -> f a -> f b
(<$) :: a -> f b -> f a
```
```haskell
(<$>) :: Functor f => (a -> b) -> f a -> f b
```
```haskell
($>) :: Functor f => f a -> b -> f b
```
Applicatives
-------
```haskell
class Functor f => Applicative (f :: * -> *) where
pure :: a -> f a
(<*>) :: f (a -> b) -> f a -> f b
(*>) :: f a -> f b -> f b
(<*) :: f a -> f b -> f a
```
```haskell
orAlt :: (Alternative f, Monoid a) => f a -> f a
```
```haskell
orEmpty :: Alternative f => Bool -> a -> f a
```
```haskell
eitherA :: (Alternative f) => f a -> f b -> f (Either a b)
```
```haskell
pass :: Applicative f => f ()
```
Alternative
-------
```haskell
class Applicative f => Alternative (f :: * -> *) where
empty :: f a
(<|>) :: f a -> f a -> f a
some :: f a -> f [a]
many :: f a -> f [a]
```
```haskell
(<|>) :: Alternative f => f a -> f a -> f a
```
```haskell
many :: Alternative f => f a -> f [a]
```
```haskell
some :: Alternative f => f a -> f [a]
```
```haskell
optional :: Alternative f => f a -> f (Maybe a)
```
```haskell
liftA :: Applicative f => (a -> b) -> f a -> f b
```
```haskell
empty :: Alternative f => f a
```
```haskell
guarded :: (Alternative f) => (a -> Bool) -> a -> f a
```
```haskell
guardedA :: (Functor f, Alternative t) => (a -> f Bool) -> a -> f (t a)
```