# Chapter Excercises ## fill in the types 1. `pure :: a -> [a]`, `(<*>) :: [(a -> b)] -> [a] -> [b]` 2. `pure :: a -> IO a`, `(<*>) :: IO (a -> b) -> IO a -> IO b` 3. `pure :: a -> (b,a)`, `(<*>) :: (c, (a -> b)) -> (c, a) -> (c, b)` 4. `pure :: a -> (e -> a)`, `(<*>) :: (e -> (a -> b))) -> (e -> a) -> (e -> b)` ## Write instances see src/instances.hs ## Combinations see src/combinations.hs