<div dir="ltr">Hello Ollumide,<div><br></div><div>this may help: it builds and runs anyway.</div><div><br></div><div><br>​{-</div><div>instance Applicative ((->) r) where</div><div>    pure x = (\_ -> x)</div><div>    f <*> g = \x -> f x (g x)</div><div><br></div><div>with the following expression</div><div><br></div><div>ghci> :t (+) <$> (+3) <*> (*100)</div><div>(+) <$> (+3) <*> (*100) :: (Num a) => a -> a</div><div>ghci> (+) <$> (+3) <*> (*100) $ 5</div><div>508</div><div><br></div><div>-}</div><div><br></div><div>f::Num f => f -> f -> f</div><div>f = (+)</div><div><br></div><div>g::Num g => g -> g</div><div>g = (+ 3)</div><div><br></div><div>h::Num h => h -> h</div><div>h = (* 100)</div><div><br></div><div><br></div><div>fg::Num a =>     a -> a -> a</div><div>fg = f <$> g</div><div>{-  fg a b = a + (b + 3)</div><div>    fg a = \b -> a + (b + 3)</div><div>-}</div><div><br></div><div>fgh::Num a =>  a -> a</div><div>fgh = fg <*> h</div><div>{-  fgh b = fg (b * 100)</div><div>    fgh = \b -> fg (b * 100)</div><div>-}</div></div>