Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

Order of declarations affects which programs are accepted (type families and existentials)
Consider the following example: ```haskell {-# LANGUAGE ExistentialQuantification, TypeFamilies #-} module Bug where type family G n type instance G a = F data T = forall w. T (G w) type family F where F = () -- type family G n ``` GHC rejects this program, when checking if `T` is ambiguous. However, if I move the declaration of `G` to the end of the file (the declaration that is commented out), then GHC accepts the program. I would guess that, somehow, it matters in what order things are processed---if `G` is evaluated fully first, it can resolve to `()` and there is no ambiguity. However, if `G` is not evaluated, then there appears to be an ambiguity as `w` occurs under a type family.
issue