Hi all,

I've tried a development snapshot of GHC's master branch from the beginning of this month and I am curious about the reason for a specific change. I noticed that a simple program like

idNil :: [a] -> [a]
idNil [] = []

is internally represented (after type checking) as:

AbsBinds [] []
  {Exports: [idNil <= idNil2]
   Exported types: idNil :: forall a. [a] -> [a]
   Binds: idNil2 [] = (/\(@a2). [] @a2) @a

Can someone point me to a reason why the right side of idNil2 is not represented as [] @ a, like it was in GHC 8.10.1? I have not tried it with GHC 9.0. It is interesting to have a type lambda that is immediately followed by a type application.

Thanks,

Kai

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to