Compose

```
(.) :: (b -> c) -> (a -> b) -> (a -> c)
(>=>) :: (a -> m b) -> (b -> m c) -> (a -> m c)
```

Map, apply, bind

```
fmap :: (a -> b) -> f a -> f b
ap :: f (a -> b) -> f a -> f b
bind :: m a -> (a -> m b) -> m b
```

Compose

```
(.) :: (b -> c) -> (a -> b) -> (a -> c)
(>=>) :: (a -> m b) -> (b -> m c) -> (a -> m c)
```

Map, apply, bind

```
fmap :: (a -> b) -> f a -> f b
ap :: f (a -> b) -> f a -> f b
bind :: m a -> (a -> m b) -> m b
```