Code redundancy in PrelNames?

Simon Peyton Jones simonpj at microsoft.com
Wed Jul 2 18:36:54 UTC 2014


| Is this redundancy a conscious choice or just an accident? If it's

It's an accident.  Good catch.

I suggest eliminating methName and using varQual instead.  The reverse doesn't work; varQual is used a lot!

thanks

Simon

| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Jan
| Stolarek
| Sent: 02 July 2014 08:58
| To: ghc-devs at haskell.org
| Subject: Code redundancy in PrelNames?
| 
| I'm looking at PrelNames.lhs and I believe there is some redundancy that
| can also lead to
| confusion. Consider these definitions:
| 
|   bindMName          = methName gHC_BASE (fsLit ">>=")    bindMClassOpKey
|   arrAName           = varQual aRROW (fsLit "arr")          arrAIdKey
| 
| Former is defined as "methName", while the latter is "varQual". These are
| defined like this:
| 
|   varQual :: Module -> FastString -> Unique -> Name
|   varQual  = mk_known_key_name varName
| 
|   mk_known_key_name :: NameSpace -> Module -> FastString -> Unique ->
| Name
|   mk_known_key_name space modu str unique
|     = mkExternalName unique modu (mkOccNameFS space str) noSrcSpan
| 
|   methName :: Module -> FastString -> Unique -> Name
|   methName modu occ unique
|     = mkExternalName unique modu (mkVarOccFS occ) noSrcSpan
| 
| Expanding the call to mk_known_key_name in varQual the RHS of varQual
| becomes :
| 
|   mkExternalName unique modu (mkOccNameFS varName str) noSrcSpan
| 
| Now, the call to "mkVarOccFS occ" in methName resolves to "mkOccNameFS
| varName occ", making the
| call to varQual identical to methName.
| 
| Is this redundancy a conscious choice or just an accident? If it's
| conscious then what is the
| purpose? I spent several minutes trying to understand why bindMName and
| arrAName are defined
| differently. Names suggest that bindMName is a method, while arrAName is
| a qualified variable. I
| find this confusing and I think it would be better to drop varQual in
| favour of methName.
| Thoughts?
| 
| Janek
| _______________________________________________
| ghc-devs mailing list
| ghc-devs at haskell.org
| http://www.haskell.org/mailman/listinfo/ghc-devs


More information about the ghc-devs mailing list