A type variable can be either universally ("for all x, then ...") or existentially quantified ("there exists some x, ...").
(If you're a maths persons, this corresponds to ∀x. x and ∃x. x, respectively)
In haskell, universally quantified type vars are represented with a forall:
head :: forall a. [a] -> Maybe a