> On Nov 10, 2014, at 07:58, Austin Seipp <aus...@well-typed.com> wrote: > > Hi Iavor; > > I took a very, very cursory glance. Naturally I am not a typechecker > guru, but I did look over the mechanical changes/extensions to thread > things around. Two things popped out to me: > > - 1) Ugh, a new .hs-boot file. I assume this wasn't added without > good reason, but ideally we would be eliminating them quicker than we > add them. :) I want to take a closer look at this; perhaps we can > refactor something for you to remove the need for this. > > - 2) I am kind of not a fan of having separate 'plugins for > core2core' and 'plugins for typechecking' flags, AKA -ftc-plugin and > -fplugin. Ideally I would think all plugins could be uniformly > specified by simply saying '-fplugin'. This mostly avoids the need for > duplication and a naming convention/slew of flags for each case (which > we have to catalog and document). There may be an easy way to make > this the case; I haven't looked closely yet (it has been some time > since I starred at the plugin code, even though Max wrote it and I > helped get it merged!)
I looked into this again a bit today and recall now why we made a separate Plugin type and flag; adding the TcPlugin to the existing Plugin type defined in CoreMonad creates a circular dependency between CoreMonad and TcRnTypes. We could (and perhaps should) move all of the plugin types into a separate module, but that would require pulling other types (e.g. CoreToDo) out of CoreMonad to break the circularity. _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs