ollef/Bidirectional — pull request #1 by AndrasKovacs (2014-04-16 10:19:00+00:00)
Title: Swap match order of <:forallL and <:forallR

Hi,

In some cases subtype fails to solve "a^ = a" where "a^" is existential and "a" is universal. For example:
```
print $ evalNameGen $ subtype mempty (tforall "a" $ tvar"a") (tforall "a" $ tvar"a") -- throws an error
```
The reason is that subtype checks "<:forallL" before "<:forallR", therefore the universal variables introduced by "<:forallR" are not in the visible context for the existentials.

Switching the order of the two cases solves the issue.