[perform alias expansion before constructor checking when determining if types are compatable, as newtypes might have phantom arguments
John Meacham <john@repetae.net>**20061123014029] hunk ./DataConstructors.hs 272
+        -- we expand aliases first, because the newtype might have phantom types as arguments
+        f c (ELit (LitCons {  litAliasFor = Just af, litArgs = as })) b = do
+            f c (foldl eAp af as) b
+        f c a (ELit (LitCons {  litAliasFor = Just af, litArgs = as })) = do
+            f c a (foldl eAp af as)
hunk ./DataConstructors.hs 292
-        f c (ELit (LitCons {  litAliasFor = Just af, litArgs = as })) b = do
-            f c (foldl eAp af as) b
-        f c a (ELit (LitCons {  litAliasFor = Just af, litArgs = as })) = do
-            f c a (foldl eAp af as)