So I just recently learned about and started using TypeApplications, and was wondering how we can generally know what type variables we're assigning. The documentation on TypeApplications I found mentions:

## Code unexpectedly accepted by GHC/GHCi

I don't understand why this code should pass type-checking:Since each component is bound to the same variable x, I would expect that the most general type for this expression to be (Maybe a, Maybe a). I get the same results if I use a where instead of a let. Am...

## Haskell explicit recursion vs `iterate`

While writing a function using iterate in Haskell, I found that an equivalent version with explicit recursion seemed noticeably faster - even though I believed that explicit recursion ought to be frowned upon in Haskell.

## Is it possible to invert the order errors are displayed?

When compiling a faulty program with GHC, errors are displayed in ascending line order. That causes the first errors to get pushed up the console, so you need to scroll up if you work by fixing the first errors first, which may be annoying. Is it possible to ask GHC...

## Why is this not a case of the restricted monad limitation?

In the following code snippet I initially believed to have a restricted monad error (I forgot to add the Monad m => in the instance Monad (Transform m a) definition). Having read quite a bit about restricted monads I wonder why this here happens to be ok:

## Why does my functional dependency conflict disappear when I expand the definition?

I was trying to implement Integers at the type level in Haskell. To start I implemented natural numbers with