At the moment HsExpr includes the following two constructors

  | ExprWithTySig
                (LHsExpr id)
                (LHsSigWcType id)

  | ExprWithTySigOut              -- Post typechecking
                (LHsExpr id)
                (LHsSigWcType Name)  -- Retain the signature,
                                     -- as HsSigType Name, for
                                     -- round-tripping purposes

I do not understand why we need the second one, which hard-codes Name
instead of id.

There are a couple of places where there is an XXXOut variant with
hard coded Name parameter, and these complicate creating any kind of
custom class intended to work on a parameterised AST as it ripples out
and forces Name instances of it everywhere.

Perhaps we should introduce HsExprLR id id to cope with renaming?

Alan
_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to