[project @ 1999-07-15 14:08:03 by keithw]
This commit makes a start at implementing polymorphic usage annotations. * The module Type has now been split into TypeRep, containing the representation Type(..) and other information for `friends' only, and Type, providing the public interface to Type. Due to a bug in the interface-file slurping prior to ghc-4.04, {-# SOURCE #-} dependencies must unfortunately still refer to TypeRep even though they are not friends. * Unfoldings in interface files now print as __U instead of __u. UpdateInfo now prints as __UA instead of __U. * A new sort of variables, UVar, in their own namespace, uvName, has been introduced for usage variables. * Usage binders __fuall uv have been introduced. Usage annotations are now __u - ty (used once), __u ! ty (used possibly many times), __u uv ty (used uv times), where uv is a UVar. __o and __m have gone. All this still lives only in a TyNote, *for now* (but not for much longer). * Variance calculation for TyCons has moved from typecheck/TcTyClsDecls to types/Variance. * Usage annotation and inference are now done together in a single pass. Provision has been made for inferring polymorphic usage annotations (with __fuall) but this has not yet been implemented. Watch this space!
Showing
- ghc/compiler/basicTypes/DataCon.hi-boot 1 addition, 1 deletionghc/compiler/basicTypes/DataCon.hi-boot
- ghc/compiler/basicTypes/DataCon.hi-boot-5 1 addition, 1 deletionghc/compiler/basicTypes/DataCon.hi-boot-5
- ghc/compiler/basicTypes/FieldLabel.lhs 1 addition, 1 deletionghc/compiler/basicTypes/FieldLabel.lhs
- ghc/compiler/basicTypes/IdInfo.lhs 3 additions, 1 deletionghc/compiler/basicTypes/IdInfo.lhs
- ghc/compiler/basicTypes/MkId.lhs 1 addition, 1 deletionghc/compiler/basicTypes/MkId.lhs
- ghc/compiler/basicTypes/OccName.lhs 9 additions, 3 deletionsghc/compiler/basicTypes/OccName.lhs
- ghc/compiler/basicTypes/Var.lhs 12 additions, 2 deletionsghc/compiler/basicTypes/Var.lhs
- ghc/compiler/basicTypes/VarEnv.lhs 1 addition, 1 deletionghc/compiler/basicTypes/VarEnv.lhs
- ghc/compiler/basicTypes/VarSet.lhs 3 additions, 2 deletionsghc/compiler/basicTypes/VarSet.lhs
- ghc/compiler/coreSyn/CoreLint.lhs 2 additions, 2 deletionsghc/compiler/coreSyn/CoreLint.lhs
- ghc/compiler/coreSyn/CoreUtils.lhs 4 additions, 3 deletionsghc/compiler/coreSyn/CoreUtils.lhs
- ghc/compiler/coreSyn/Subst.hi-boot 2 additions, 2 deletionsghc/compiler/coreSyn/Subst.hi-boot
- ghc/compiler/coreSyn/Subst.hi-boot-5 2 additions, 2 deletionsghc/compiler/coreSyn/Subst.hi-boot-5
- ghc/compiler/coreSyn/Subst.lhs 5 additions, 2 deletionsghc/compiler/coreSyn/Subst.lhs
- ghc/compiler/cprAnalysis/CprAnalyse.lhs 4 additions, 2 deletionsghc/compiler/cprAnalysis/CprAnalyse.lhs
- ghc/compiler/deSugar/DsForeign.lhs 2 additions, 2 deletionsghc/compiler/deSugar/DsForeign.lhs
- ghc/compiler/deSugar/DsUtils.lhs 1 addition, 1 deletionghc/compiler/deSugar/DsUtils.lhs
- ghc/compiler/hsSyn/HsTypes.lhs 51 additions, 19 deletionsghc/compiler/hsSyn/HsTypes.lhs
- ghc/compiler/main/CmdLineOpts.lhs 3 additions, 3 deletionsghc/compiler/main/CmdLineOpts.lhs
- ghc/compiler/main/MkIface.lhs 1 addition, 1 deletionghc/compiler/main/MkIface.lhs
Loading
Please register or sign in to comment