There's an implicit quantifier in type of `f`, like this: `f :: forall
a. a -> ListF a a`. When I add `ScopedTypeVariables` and `forall a.
...` in top level definition, it's like all `a`s in scope of top level
definition are same, except when explicitly defined as `forall a.
...`.
Is my intuition correct?