packages feed

haskell-names 0.7.0 → 0.8.0

raw patch · 41 files changed

+890/−869 lines, 41 filesdep ~aesondep ~haskell-namesdep ~haskell-src-extsPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aeson, haskell-names, haskell-src-exts

API changes (from Hackage documentation)

- Language.Haskell.Names.Environment: instance Data.Aeson.Types.Class.FromJSON Language.Haskell.Names.Types.Symbol
- Language.Haskell.Names.Environment: instance Data.Aeson.Types.Class.ToJSON Language.Haskell.Names.Types.Symbol
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.Binds l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.ClassDecl l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.ConDecl l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.Decl l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.FieldDecl l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.GadtDecl l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.Match l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.Pat l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.QualConDecl l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.QualStmt l) l
- Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Annotated.Syntax.Stmt l) l
+ Language.Haskell.Names.Environment: instance Data.Aeson.Types.FromJSON.FromJSON Language.Haskell.Names.Types.Symbol
+ Language.Haskell.Names.Environment: instance Data.Aeson.Types.ToJSON.ToJSON Language.Haskell.Names.Types.Symbol
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.Binds l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.ClassDecl l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.ConDecl l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.Decl l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.FieldDecl l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.GadtDecl l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.Match l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.Pat l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.QualConDecl l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.QualStmt l) l
+ Language.Haskell.Names.GetBound: instance Data.Data.Data l => Language.Haskell.Names.GetBound.GetBound (Language.Haskell.Exts.Syntax.Stmt l) l
- Language.Haskell.Names: Class :: ModuleName -> Name -> Symbol
+ Language.Haskell.Names: Class :: ModuleName () -> Name () -> Symbol
- Language.Haskell.Names: Constructor :: ModuleName -> Name -> Name -> Symbol
+ Language.Haskell.Names: Constructor :: ModuleName () -> Name () -> Name () -> Symbol
- Language.Haskell.Names: Data :: ModuleName -> Name -> Symbol
+ Language.Haskell.Names: Data :: ModuleName () -> Name () -> Symbol
- Language.Haskell.Names: DataFam :: ModuleName -> Name -> Maybe Name -> Symbol
+ Language.Haskell.Names: DataFam :: ModuleName () -> Name () -> Maybe (Name ()) -> Symbol
- Language.Haskell.Names: GlobalSymbol :: Symbol -> QName -> NameInfo l
+ Language.Haskell.Names: GlobalSymbol :: Symbol -> (QName ()) -> NameInfo l
- Language.Haskell.Names: Import :: (Map QName [Symbol]) -> NameInfo l
+ Language.Haskell.Names: Import :: (Map (QName ()) [Symbol]) -> NameInfo l
- Language.Haskell.Names: Method :: ModuleName -> Name -> Name -> Symbol
+ Language.Haskell.Names: Method :: ModuleName () -> Name () -> Name () -> Symbol
- Language.Haskell.Names: NewType :: ModuleName -> Name -> Symbol
+ Language.Haskell.Names: NewType :: ModuleName () -> Name () -> Symbol
- Language.Haskell.Names: RecExpWildcard :: [(Name, NameInfo l)] -> NameInfo l
+ Language.Haskell.Names: RecExpWildcard :: [(Name (), NameInfo l)] -> NameInfo l
- Language.Haskell.Names: Selector :: ModuleName -> Name -> Name -> [Name] -> Symbol
+ Language.Haskell.Names: Selector :: ModuleName () -> Name () -> Name () -> [Name ()] -> Symbol
- Language.Haskell.Names: Type :: ModuleName -> Name -> Symbol
+ Language.Haskell.Names: Type :: ModuleName () -> Name () -> Symbol
- Language.Haskell.Names: TypeFam :: ModuleName -> Name -> Maybe Name -> Symbol
+ Language.Haskell.Names: TypeFam :: ModuleName () -> Name () -> Maybe (Name ()) -> Symbol
- Language.Haskell.Names: Value :: ModuleName -> Name -> Symbol
+ Language.Haskell.Names: Value :: ModuleName () -> Name () -> Symbol
- Language.Haskell.Names: [associate] :: Symbol -> Maybe Name
+ Language.Haskell.Names: [associate] :: Symbol -> Maybe (Name ())
- Language.Haskell.Names: [className] :: Symbol -> Name
+ Language.Haskell.Names: [className] :: Symbol -> Name ()
- Language.Haskell.Names: [constructors] :: Symbol -> [Name]
+ Language.Haskell.Names: [constructors] :: Symbol -> [Name ()]
- Language.Haskell.Names: [symbolModule] :: Symbol -> ModuleName
+ Language.Haskell.Names: [symbolModule] :: Symbol -> ModuleName ()
- Language.Haskell.Names: [symbolName] :: Symbol -> Name
+ Language.Haskell.Names: [symbolName] :: Symbol -> Name ()
- Language.Haskell.Names: [typeName] :: Symbol -> Name
+ Language.Haskell.Names: [typeName] :: Symbol -> Name ()
- Language.Haskell.Names: type Environment = Map ModuleName [Symbol]
+ Language.Haskell.Names: type Environment = Map (ModuleName ()) [Symbol]
- Language.Haskell.Names.Annotated: GlobalSymbol :: Symbol -> QName -> NameInfo l
+ Language.Haskell.Names.Annotated: GlobalSymbol :: Symbol -> (QName ()) -> NameInfo l
- Language.Haskell.Names.Annotated: Import :: (Map QName [Symbol]) -> NameInfo l
+ Language.Haskell.Names.Annotated: Import :: (Map (QName ()) [Symbol]) -> NameInfo l
- Language.Haskell.Names.Annotated: RecExpWildcard :: [(Name, NameInfo l)] -> NameInfo l
+ Language.Haskell.Names.Annotated: RecExpWildcard :: [(Name (), NameInfo l)] -> NameInfo l
- Language.Haskell.Names.Environment: type Environment = Map ModuleName [Symbol]
+ Language.Haskell.Names.Environment: type Environment = Map (ModuleName ()) [Symbol]
- Language.Haskell.Names.GlobalSymbolTable: fromList :: [(QName, Symbol)] -> Table
+ Language.Haskell.Names.GlobalSymbolTable: fromList :: [(QName (), Symbol)] -> Table
- Language.Haskell.Names.GlobalSymbolTable: type Table = Map QName [Symbol]
+ Language.Haskell.Names.GlobalSymbolTable: type Table = Map (QName ()) [Symbol]
- Language.Haskell.Names.Open: WcField :: Name -> ModuleName -> Bool -> WcField
+ Language.Haskell.Names.Open: WcField :: Name () -> ModuleName () -> Bool -> WcField
- Language.Haskell.Names.Open: [wcFieldModuleName] :: WcField -> ModuleName
+ Language.Haskell.Names.Open: [wcFieldModuleName] :: WcField -> ModuleName ()
- Language.Haskell.Names.Open: [wcFieldName] :: WcField -> Name
+ Language.Haskell.Names.Open: [wcFieldName] :: WcField -> Name ()
- Language.Haskell.Names.Open: initialScope :: ModuleName -> Table -> Scope
+ Language.Haskell.Names.Open: initialScope :: ModuleName () -> Table -> Scope
- Language.Haskell.Names.SyntaxUtils: annName :: Name -> Name ()
+ Language.Haskell.Names.SyntaxUtils: annName :: a -> a
- Language.Haskell.Names.SyntaxUtils: nameQualification :: QName l -> Maybe ModuleName
+ Language.Haskell.Names.SyntaxUtils: nameQualification :: QName l -> Maybe (ModuleName ())

Files

CHANGELOG.md view
@@ -1,13 +1,18 @@ Changes ======= -Version 0.7.0--------------+Version 0.8.0+------------ -* Improve annotation performance * Relax bounds on aeson * Relax bounds on transformers * Bugfixes+* Use haskell-src-exts 1.18++Version 0.7.0+-------------++* Improve annotation performance  Version 0.6.0 -------------
haskell-names.cabal view
@@ -1,5 +1,5 @@ Name:                   haskell-names-Version:                0.7.0+Version:                0.8.0 License:                BSD3 Author:                 Philipp Schuster, Roman Cheplyaka, Lennart Augustsson Maintainer:             Philipp Schuster@@ -22,6 +22,7 @@   tests/imports/*.hs   tests/exports/*.hs.golden   tests/exports/*.hs+  tests/environment/Prelude.symbols.golden data-files:   data/baseEnvironment/Control.Applicative.symbols   data/baseEnvironment/Control.Arrow.symbols@@ -235,13 +236,13 @@   Default-Language: Haskell2010   Build-depends:       base >= 4 && < 5-    , haskell-src-exts >= 1.17 && < 1.18+    , haskell-src-exts >= 1.18 && < 1.19     , mtl >= 2.2.1 && < 2.3     , transformers >=0.4.2.0 && < 0.6     , filepath >= 1.1 && < 1.5     , containers >= 0.2 && < 0.6     , uniplate >= 1.5.1 && < 1.7-    , aeson >= 0.8.0.2 && < 0.12+    , aeson >= 0.8.0.2 && < 1.1     , bytestring >= 0.10.4.0 && < 0.11     , data-lens-light >= 0.1.2.1 && < 0.2               , traverse-with-class >= 0.2.0.3 && < 0.3@@ -281,7 +282,8 @@     run.hs   Build-depends:       base >= 4 && < 5-    , haskell-src-exts >= 1.17 && < 1.18+    , haskell-names >= 0.8.0 && < 0.9+    , haskell-src-exts >= 1.18 && < 1.19     , mtl >= 2.2.1 && < 2.3     , filepath >= 1.1 && <1.5     , containers >= 0.2 && < 0.6@@ -290,5 +292,4 @@     , filemanip >= 0.3.6.3 && < 0.4     , pretty-show >= 1.6.1 && < 1.7     , traverse-with-class >= 0.2.0.3 && < 0.3-    , haskell-names >= 0.7.0 && < 0.8 
src/Language/Haskell/Names/Annotated.hs view
@@ -17,10 +17,8 @@ import Language.Haskell.Names.Open.Instances () import qualified Language.Haskell.Names.GlobalSymbolTable as Global import qualified Language.Haskell.Names.LocalSymbolTable as Local-import Language.Haskell.Names.SyntaxUtils (annName,setAnn)-import Language.Haskell.Exts.Annotated.Simplify (sQName)-import Language.Haskell.Exts.Annotated-import qualified Language.Haskell.Exts.Syntax as UnAnn+import Language.Haskell.Names.SyntaxUtils (dropAnn, annName,setAnn)+import Language.Haskell.Exts import Data.Proxy import Data.Lens.Light import Data.Typeable (@@ -97,7 +95,7 @@    checkUniqueness symbols = case symbols of     [] -> ScopeError (ENotInScope qname)-    [symbol] -> GlobalSymbol symbol (sQName qname)+    [symbol] -> GlobalSymbol symbol (dropAnn qname)     _ -> ScopeError (EAmbiguous qname symbols)  @@ -124,13 +122,13 @@    checkUniqueness qname symbols = case symbols of     [] -> ScopeError (ENotInScope qname)-    [symbol] -> GlobalSymbol symbol (sQName qname)+    [symbol] -> GlobalSymbol symbol (dropAnn qname)     _ -> ScopeError (EAmbiguous qname symbols)  -qualifyName :: Maybe UnAnn.ModuleName -> Name l -> QName l+qualifyName :: Maybe (ModuleName ()) -> Name l -> QName l qualifyName Nothing n = UnQual (ann n) n-qualifyName (Just (UnAnn.ModuleName moduleName)) n =+qualifyName (Just (ModuleName () moduleName)) n =   Qual (ann n) annotatedModuleName n where     annotatedModuleName = ModuleName (ann n) moduleName 
src/Language/Haskell/Names/Environment.hs view
@@ -13,9 +13,8 @@   ) where  import Language.Haskell.Names.Types (Environment, Symbol(..))-import Language.Haskell.Exts (ModuleName(ModuleName),prettyPrint,Name)-import Language.Haskell.Names.SyntaxUtils (stringToName,nameToString,annName)-import Language.Haskell.Exts.Annotated.Simplify (sName)+import Language.Haskell.Exts (ModuleName(ModuleName),Name,prettyPrint)+import Language.Haskell.Names.SyntaxUtils (stringToName,nameToString,dropAnn, annName) import qualified Data.ByteString.Lazy as BS (readFile, writeFile, pack) import Data.Aeson import Data.Monoid@@ -49,7 +48,7 @@   deriving (Typeable, Show) instance Exception SymbolsFileException -prettyName :: Name -> String+prettyName :: Name () -> String prettyName = nameToString . annName  instance ToJSON Symbol where@@ -86,13 +85,13 @@   DataFam {} -> "dataFamily"   Class   {} -> "class" -parseName :: String -> Name-parseName = sName . stringToName+parseName :: String -> Name ()+parseName = dropAnn . stringToName  instance FromJSON Symbol where   parseJSON (Object v) = do     entity <- v .: "entity"-    symbolmodule <- ModuleName <$> v .: "module"+    symbolmodule <- ModuleName () <$> v .: "module"     symbolname <- parseName <$> v .: "name"      case entity :: String of@@ -133,5 +132,5 @@     return (moduleName, symbols))   return (Map.fromList moduleSymbols) -baseModules :: [ModuleName]-baseModules = map ModuleName ["Control.Applicative","Control.Arrow","Control.Category","Control.Concurrent.Chan","Control.Concurrent.MVar","Control.Concurrent.QSem","Control.Concurrent.QSemN","Control.Concurrent","Control.Exception.Base","Control.Exception","Control.Monad.Fix","Control.Monad.Instances","Control.Monad.ST.Imp","Control.Monad.ST.Lazy.Imp","Control.Monad.ST.Lazy.Safe","Control.Monad.ST.Lazy.Unsafe","Control.Monad.ST.Lazy","Control.Monad.ST.Safe","Control.Monad.ST.Strict","Control.Monad.ST.Unsafe","Control.Monad.ST","Control.Monad.Zip","Control.Monad","Data.Bits","Data.Bool","Data.Char","Data.Complex","Data.Data","Data.Dynamic","Data.Either","Data.Eq","Data.Fixed","Data.Foldable","Data.Function","Data.Functor","Data.IORef","Data.Int","Data.Ix","Data.List","Data.Maybe","Data.Monoid","Data.OldTypeable.Internal","Data.OldTypeable","Data.Ord","Data.Ratio","Data.STRef.Lazy","Data.STRef.Strict","Data.STRef","Data.String","Data.Traversable","Data.Tuple","Data.Typeable.Internal","Data.Typeable","Data.Unique","Data.Version","Data.Word","Debug.Trace","Foreign.C.Error","Foreign.C.String","Foreign.C.Types","Foreign.C","Foreign.Concurrent","Foreign.ForeignPtr.Imp","Foreign.ForeignPtr.Safe","Foreign.ForeignPtr.Unsafe","Foreign.ForeignPtr","Foreign.Marshal.Alloc","Foreign.Marshal.Array","Foreign.Marshal.Error","Foreign.Marshal.Pool","Foreign.Marshal.Safe","Foreign.Marshal.Unsafe","Foreign.Marshal.Utils","Foreign.Marshal","Foreign.Ptr","Foreign.Safe","Foreign.StablePtr","Foreign.Storable","Foreign","GHC.Arr","GHC.Base","GHC.Char","GHC.Conc.IO","GHC.Conc.Signal","GHC.Conc.Sync","GHC.Conc","GHC.ConsoleHandler","GHC.Constants","GHC.Desugar","GHC.Enum","GHC.Environment","GHC.Err","GHC.Event.Array","GHC.Event.Clock","GHC.Event.Control","GHC.Event.EPoll","GHC.Event.IntMap","GHC.Event.Internal","GHC.Event.KQueue","GHC.Event.Manager","GHC.Event.PSQ","GHC.Event.Poll","GHC.Event.Thread","GHC.Event.TimerManager","GHC.Event.Unique","GHC.Event","GHC.Exception","GHC.Exts","GHC.Fingerprint.Type","GHC.Fingerprint","GHC.Float.ConversionUtils","GHC.Float.RealFracMethods","GHC.Float","GHC.Foreign","GHC.ForeignPtr","GHC.GHCi","GHC.Generics","GHC.IO.Buffer","GHC.IO.BufferedIO","GHC.IO.Device","GHC.IO.Encoding.CodePage","GHC.IO.Encoding.Failure","GHC.IO.Encoding.Iconv","GHC.IO.Encoding.Latin1","GHC.IO.Encoding.Types","GHC.IO.Encoding.UTF16","GHC.IO.Encoding.UTF32","GHC.IO.Encoding.UTF8","GHC.IO.Encoding","GHC.IO.Exception","GHC.IO.FD","GHC.IO.Handle.FD","GHC.IO.Handle.Internals","GHC.IO.Handle.Text","GHC.IO.Handle.Types","GHC.IO.Handle","GHC.IO.IOMode","GHC.IO","GHC.IOArray","GHC.IORef","GHC.IP","GHC.Int","GHC.List","GHC.MVar","GHC.Num","GHC.PArr","GHC.Pack","GHC.Profiling","GHC.Ptr","GHC.Read","GHC.Real","GHC.ST","GHC.STRef","GHC.Show","GHC.Stable","GHC.Stack","GHC.Stats","GHC.Storable","GHC.TopHandler","GHC.TypeLits","GHC.Unicode","GHC.Weak","GHC.Word","Numeric","Prelude","System.CPUTime","System.Console.GetOpt","System.Environment.ExecutablePath","System.Environment","System.Exit","System.IO.Error","System.IO.Unsafe","System.IO","System.Info","System.Mem.StableName","System.Mem.Weak","System.Mem","System.Posix.Internals","System.Posix.Types","System.Timeout","Text.ParserCombinators.ReadP","Text.ParserCombinators.ReadPrec","Text.Printf","Text.Read.Lex","Text.Read","Text.Show.Functions","Text.Show","Unsafe.Coerce","GHC.CString","GHC.Classes","GHC.Debug","GHC.IntWord64","GHC.Magic","GHC.Prim","GHC.PrimopWrappers","GHC.Tuple","GHC.Types","GHC.Integer.Logarithms.Internals","GHC.Integer.Logarithms","GHC.Integer.Simple.Internals","GHC.Integer.Type","GHC.Integer"]+baseModules :: [ModuleName ()]+baseModules = map (ModuleName ()) ["Control.Applicative","Control.Arrow","Control.Category","Control.Concurrent.Chan","Control.Concurrent.MVar","Control.Concurrent.QSem","Control.Concurrent.QSemN","Control.Concurrent","Control.Exception.Base","Control.Exception","Control.Monad.Fix","Control.Monad.Instances","Control.Monad.ST.Imp","Control.Monad.ST.Lazy.Imp","Control.Monad.ST.Lazy.Safe","Control.Monad.ST.Lazy.Unsafe","Control.Monad.ST.Lazy","Control.Monad.ST.Safe","Control.Monad.ST.Strict","Control.Monad.ST.Unsafe","Control.Monad.ST","Control.Monad.Zip","Control.Monad","Data.Bits","Data.Bool","Data.Char","Data.Complex","Data.Data","Data.Dynamic","Data.Either","Data.Eq","Data.Fixed","Data.Foldable","Data.Function","Data.Functor","Data.IORef","Data.Int","Data.Ix","Data.List","Data.Maybe","Data.Monoid","Data.OldTypeable.Internal","Data.OldTypeable","Data.Ord","Data.Ratio","Data.STRef.Lazy","Data.STRef.Strict","Data.STRef","Data.String","Data.Traversable","Data.Tuple","Data.Typeable.Internal","Data.Typeable","Data.Unique","Data.Version","Data.Word","Debug.Trace","Foreign.C.Error","Foreign.C.String","Foreign.C.Types","Foreign.C","Foreign.Concurrent","Foreign.ForeignPtr.Imp","Foreign.ForeignPtr.Safe","Foreign.ForeignPtr.Unsafe","Foreign.ForeignPtr","Foreign.Marshal.Alloc","Foreign.Marshal.Array","Foreign.Marshal.Error","Foreign.Marshal.Pool","Foreign.Marshal.Safe","Foreign.Marshal.Unsafe","Foreign.Marshal.Utils","Foreign.Marshal","Foreign.Ptr","Foreign.Safe","Foreign.StablePtr","Foreign.Storable","Foreign","GHC.Arr","GHC.Base","GHC.Char","GHC.Conc.IO","GHC.Conc.Signal","GHC.Conc.Sync","GHC.Conc","GHC.ConsoleHandler","GHC.Constants","GHC.Desugar","GHC.Enum","GHC.Environment","GHC.Err","GHC.Event.Array","GHC.Event.Clock","GHC.Event.Control","GHC.Event.EPoll","GHC.Event.IntMap","GHC.Event.Internal","GHC.Event.KQueue","GHC.Event.Manager","GHC.Event.PSQ","GHC.Event.Poll","GHC.Event.Thread","GHC.Event.TimerManager","GHC.Event.Unique","GHC.Event","GHC.Exception","GHC.Exts","GHC.Fingerprint.Type","GHC.Fingerprint","GHC.Float.ConversionUtils","GHC.Float.RealFracMethods","GHC.Float","GHC.Foreign","GHC.ForeignPtr","GHC.GHCi","GHC.Generics","GHC.IO.Buffer","GHC.IO.BufferedIO","GHC.IO.Device","GHC.IO.Encoding.CodePage","GHC.IO.Encoding.Failure","GHC.IO.Encoding.Iconv","GHC.IO.Encoding.Latin1","GHC.IO.Encoding.Types","GHC.IO.Encoding.UTF16","GHC.IO.Encoding.UTF32","GHC.IO.Encoding.UTF8","GHC.IO.Encoding","GHC.IO.Exception","GHC.IO.FD","GHC.IO.Handle.FD","GHC.IO.Handle.Internals","GHC.IO.Handle.Text","GHC.IO.Handle.Types","GHC.IO.Handle","GHC.IO.IOMode","GHC.IO","GHC.IOArray","GHC.IORef","GHC.IP","GHC.Int","GHC.List","GHC.MVar","GHC.Num","GHC.PArr","GHC.Pack","GHC.Profiling","GHC.Ptr","GHC.Read","GHC.Real","GHC.ST","GHC.STRef","GHC.Show","GHC.Stable","GHC.Stack","GHC.Stats","GHC.Storable","GHC.TopHandler","GHC.TypeLits","GHC.Unicode","GHC.Weak","GHC.Word","Numeric","Prelude","System.CPUTime","System.Console.GetOpt","System.Environment.ExecutablePath","System.Environment","System.Exit","System.IO.Error","System.IO.Unsafe","System.IO","System.Info","System.Mem.StableName","System.Mem.Weak","System.Mem","System.Posix.Internals","System.Posix.Types","System.Timeout","Text.ParserCombinators.ReadP","Text.ParserCombinators.ReadPrec","Text.Printf","Text.Read.Lex","Text.Read","Text.Show.Functions","Text.Show","Unsafe.Coerce","GHC.CString","GHC.Classes","GHC.Debug","GHC.IntWord64","GHC.Magic","GHC.Prim","GHC.PrimopWrappers","GHC.Tuple","GHC.Types","GHC.Integer.Logarithms.Internals","GHC.Integer.Logarithms","GHC.Integer.Simple.Internals","GHC.Integer.Type","GHC.Integer"]
src/Language/Haskell/Names/Exports.hs view
@@ -10,9 +10,7 @@ import Control.Monad import Control.Monad.Writer import Data.Data-import qualified Language.Haskell.Exts as UnAnn (QName(Qual,UnQual))-import Language.Haskell.Exts.Annotated.Simplify (sQName,sModuleName)-import Language.Haskell.Exts.Annotated+import Language.Haskell.Exts import Language.Haskell.Names.Types import Language.Haskell.Names.ScopeUtils import Language.Haskell.Names.SyntaxUtils@@ -34,8 +32,7 @@   case annotateExportSpec globalTable exportSpec of     EVar (Scoped (Export symbols) _) _ -> symbols     EAbs (Scoped (Export symbols) _) _ _ -> symbols-    EThingAll (Scoped (Export symbols) _) _ -> symbols-    EThingWith (Scoped (Export symbols) _) _ _ -> symbols+    EThingWith (Scoped (Export symbols) _) _ _ _ -> symbols     EModuleContents (Scoped (Export symbols) _) _ -> symbols     _ -> [] @@ -52,16 +49,16 @@     case Global.lookupValue qn globalTable of       [] -> scopeError (ENotInScope qn) exportSpec       [symbol] -> EVar (Scoped (Export [symbol]) l)-            (Scoped (GlobalSymbol symbol (sQName qn)) <$> qn)+            (Scoped (GlobalSymbol symbol (dropAnn qn)) <$> qn)       symbols -> scopeError (EAmbiguous qn symbols) exportSpec   EAbs l ns qn ->     case Global.lookupType qn globalTable of       [] -> scopeError (ENotInScope qn) exportSpec       [symbol] -> EAbs (Scoped (Export [symbol]) l)             (noScope ns)-            (Scoped (GlobalSymbol symbol (sQName qn)) <$> qn)+            (Scoped (GlobalSymbol symbol (dropAnn qn)) <$> qn)       symbols -> scopeError (EAmbiguous qn symbols) exportSpec-  EThingAll l qn ->+  EThingWith l w@(EWildcard _ _) qn _ ->     case Global.lookupType qn globalTable of       [] -> scopeError (ENotInScope qn) exportSpec       [symbol] ->@@ -73,9 +70,9 @@               return subSymbol)           s = [symbol] <> subSymbols         in-          EThingAll (Scoped (Export s) l) (Scoped (GlobalSymbol symbol (sQName qn)) <$> qn)+          EThingWith (Scoped (Export s) l) (fmap (Scoped None) w) (Scoped (GlobalSymbol symbol (dropAnn qn)) <$> qn) []       symbols -> scopeError (EAmbiguous qn symbols) exportSpec-  EThingWith l qn cns ->+  EThingWith l w@(NoWildcard {}) qn cns ->     case Global.lookupType qn globalTable of       [] -> scopeError (ENotInScope qn) exportSpec       [symbol] ->@@ -88,7 +85,7 @@               cns           s = [symbol] <> subSymbols         in-          EThingWith (Scoped (Export s) l) (Scoped (GlobalSymbol symbol (sQName qn)) <$> qn) cns'+          EThingWith (Scoped (Export s) l) (fmap (Scoped None) w) (Scoped (GlobalSymbol symbol (dropAnn qn)) <$> qn) cns'       symbols -> scopeError (EAmbiguous qn symbols) exportSpec   -- FIXME ambiguity check   EModuleContents _ modulename -> Scoped (Export exportedSymbols) <$> exportSpec where@@ -96,11 +93,11 @@       exportedSymbols = Set.toList (Set.intersection inScopeQualified inScopeUnqualified)        inScopeQualified = Set.fromList (do-          (UnAnn.Qual prefix _, symbols) <- Map.toList globalTable-          guard (prefix == sModuleName modulename)+          (Qual _ prefix _, symbols) <- Map.toList globalTable+          guard (prefix == dropAnn modulename)           symbols)        inScopeUnqualified = Set.fromList (do-          (UnAnn.UnQual _, symbols) <- Map.toList globalTable+          (UnQual _ _, symbols) <- Map.toList globalTable           symbols) 
src/Language/Haskell/Names/GetBound.hs view
@@ -8,8 +8,7 @@ import Data.Generics.Uniplate.Data import Data.Data -import qualified Language.Haskell.Exts as UnAnn-import Language.Haskell.Exts.Annotated+import Language.Haskell.Exts import Language.Haskell.Names.RecordWildcards import Language.Haskell.Names.SyntaxUtils import qualified Language.Haskell.Names.GlobalSymbolTable as Global@@ -144,7 +143,7 @@       dropExp (PViewPat _ _ x) = x       dropExp x = x -      getRecVars :: [UnAnn.Name] -> PatField l -> [Name l]+      getRecVars :: [Name ()] -> PatField l -> [Name l]       getRecVars _ PFieldPat {} = [] -- this is already found by the generic algorithm       getRecVars _ (PFieldPun _ qn) = [qNameToName qn]       getRecVars elidedFields (PFieldWildcard l) = map (setAnn l . annName) elidedFields
src/Language/Haskell/Names/GlobalSymbolTable.hs view
@@ -2,12 +2,7 @@ -- | This module is designed to be imported qualified. module Language.Haskell.Names.GlobalSymbolTable where -import Language.Haskell.Exts (-    QName)-import qualified Language.Haskell.Exts.Annotated as Ann (-    QName)-import Language.Haskell.Exts.Annotated.Simplify (-    sQName)+import Language.Haskell.Exts hiding (NewType)  import Data.Map (     Map)@@ -19,9 +14,10 @@ import Data.Maybe (fromMaybe)  import Language.Haskell.Names.Types+import Language.Haskell.Names.SyntaxUtils (dropAnn)  -- | Global symbol table — contains names declared somewhere at the top level.-type Table = Map QName [Symbol]+type Table = Map (QName ()) [Symbol]  -- | Empty global symbol table. empty :: Table@@ -31,17 +27,17 @@ mergeTables :: Table -> Table -> Table mergeTables = Map.unionWith List.union -lookupValue :: Ann.QName l -> Table -> [Symbol]+lookupValue :: QName l -> Table -> [Symbol] lookupValue qn = filter isValue . lookupName qn -lookupType :: Ann.QName l -> Table -> [Symbol]+lookupType :: QName l -> Table -> [Symbol] lookupType qn = filter isType . lookupName qn -lookupMethodOrAssociate :: Ann.QName l -> Table -> [Symbol]+lookupMethodOrAssociate :: QName l -> Table -> [Symbol] lookupMethodOrAssociate qn = filter isMethodOrAssociated . lookupName qn -lookupName :: Ann.QName l -> Table -> [Symbol]-lookupName qn table = fromMaybe [] (Map.lookup (sQName qn) table)+lookupName ::  QName l -> Table -> [Symbol]+lookupName qn table = fromMaybe [] (Map.lookup (dropAnn qn) table)  isValue :: Symbol -> Bool isValue symbol = case symbol of@@ -68,6 +64,6 @@     DataFam {} -> True     _ -> False -fromList :: [(QName,Symbol)] -> Table+fromList :: [(QName (),Symbol)] -> Table fromList = Map.fromListWith List.union . map (second (:[])) 
src/Language/Haskell/Names/Imports.hs view
@@ -13,12 +13,8 @@  import Control.Monad.Writer import Data.Map as Map (lookup)-import qualified Language.Haskell.Exts as UnAnn (-  ModuleName(ModuleName))-import Language.Haskell.Exts.Annotated.Simplify (-  sName,sModuleName)-import Language.Haskell.Exts.Annotated (-  Module(Module), ModuleName,ImportDecl(..),+import Language.Haskell.Exts (+  Module(Module), ModuleName(ModuleName), ImportDecl(..),   ann,ImportSpecList(..),ImportSpec(..),Name(..),   Annotated) import Language.Haskell.Exts.Extension (@@ -46,26 +42,26 @@       DisableExtension ImplicitPrelude `elem` extensions || isPreludeImported     isPreludeImported = not (null (do       importDecl <- importDecls-      guard (sModuleName (importModule importDecl) == preludeModuleName)))+      guard (dropAnn (importModule importDecl) == preludeModuleName)))     preludeSymbols = fromMaybe [] (Map.lookup preludeModuleName environment)     (_, extensions) = getModuleExtensions modul -preludeModuleName :: UnAnn.ModuleName-preludeModuleName = UnAnn.ModuleName "Prelude"+preludeModuleName :: ModuleName ()+preludeModuleName = ModuleName () "Prelude"  importDeclTable :: Environment -> ImportDecl l -> Global.Table importDeclTable environment importDecl =   computeSymbolTable isQualified moduleName importSymbols where     ImportDecl _ importModuleName isQualified _ _ _ maybeAs maybeImportSpecList =       importDecl-    moduleName = sModuleName (fromMaybe importModuleName maybeAs)+    moduleName = dropAnn (fromMaybe importModuleName maybeAs)     importSymbols = case maybeImportSpecList of       Nothing ->         importModuleSymbols       Just importSpecList ->         importSpecListSymbols importModuleName importModuleSymbols importSpecList     importModuleSymbols = fromMaybe [] (-      Map.lookup (sModuleName importModuleName) environment)+      Map.lookup (dropAnn importModuleName) environment)   importSpecListSymbols :: ModuleName l -> [Symbol] -> ImportSpecList l -> [Symbol]@@ -101,7 +97,7 @@     maybeAs     maybeImportSpecList = importDecl -  importDecl' = case Map.lookup (sModuleName importModuleName) environment of+  importDecl' = case Map.lookup (dropAnn importModuleName) environment of     Nothing -> scopeError (EModNotFound importModuleName) importDecl     Just symbols ->       ImportDecl@@ -123,7 +119,7 @@               ScopeError e             _ -> Import table           table = computeSymbolTable isQualified qualificationName importSymbols-          qualificationName = sModuleName (fromMaybe importModuleName maybeAs)+          qualificationName = dropAnn (fromMaybe importModuleName maybeAs)           importSymbols =             maybe               symbols@@ -237,7 +233,7 @@           cns'   where     (~~) :: Symbol -> Name l -> Bool-    symbol ~~ name = symbolName symbol == sName name+    symbol ~~ name = symbolName symbol == dropAnn name      isConstructor :: Symbol -> Bool     isConstructor Constructor {} = True
src/Language/Haskell/Names/LocalSymbolTable.hs view
@@ -9,23 +9,22 @@  import qualified Data.Map as Map import Data.Monoid-import Language.Haskell.Exts (Name)-import Language.Haskell.Exts.Annotated.Simplify (sName)-import qualified Language.Haskell.Exts.Annotated as Ann+import Language.Haskell.Exts+import Language.Haskell.Names.SyntaxUtils (dropAnn) import Language.Haskell.Names.Types  -- | Local symbol table — contains locally bound names-newtype Table = Table (Map.Map Name Ann.SrcLoc)+newtype Table = Table (Map.Map (Name ()) SrcLoc)   deriving Monoid -addValue :: Ann.SrcInfo l => Ann.Name l -> Table -> Table+addValue :: SrcInfo l => Name l -> Table -> Table addValue n (Table vs) =-  Table (Map.insert (sName n) (Ann.getPointLoc $ Ann.ann n) vs)+  Table (Map.insert (dropAnn n) (getPointLoc $ ann n) vs) -lookupValue :: Ann.QName l -> Table -> Either (Error l) Ann.SrcLoc-lookupValue qn@(Ann.UnQual _ n) (Table vs) =+lookupValue :: QName l -> Table -> Either (Error l) SrcLoc+lookupValue qn@(UnQual _ n) (Table vs) =   maybe (Left $ ENotInScope qn) Right $-    Map.lookup (sName n) vs+    Map.lookup (dropAnn n) vs lookupValue qn _ = Left $ ENotInScope qn  empty :: Table
src/Language/Haskell/Names/ModuleSymbols.hs view
@@ -10,10 +10,8 @@ import Data.Data import qualified Data.Map as Map -import qualified Language.Haskell.Exts as UnAnn (ModuleName,Name)-import Language.Haskell.Exts.Annotated hiding (NewType)-import Language.Haskell.Exts.Annotated.Simplify (sModuleName,sName)-import qualified Language.Haskell.Exts.Annotated as Syntax (DataOrNew(NewType))+import Language.Haskell.Exts hiding (DataOrNew(NewType))+import qualified Language.Haskell.Exts as Syntax (DataOrNew(NewType)) import Language.Haskell.Names.Types import qualified Language.Haskell.Names.GlobalSymbolTable as Global import Language.Haskell.Names.SyntaxUtils@@ -28,7 +26,7 @@   -> Module l   -> Global.Table moduleTable impTbl m = Global.mergeTables impTbl (computeSymbolTable-  False (sModuleName (getModuleName m)) (moduleSymbols impTbl m))+  False (dropAnn (getModuleName m)) (moduleSymbols impTbl m))  -- | Compute the symbols that are defined in the given module. --@@ -53,7 +51,7 @@ getTopDeclSymbols impTbl modulename d = (case d of     TypeDecl _ dh _ -> [declHeadSymbol Type dh] -    TypeFamDecl _ dh _ -> [TypeFam (sModuleName modulename) (sName (getDeclHeadName dh)) Nothing]+    TypeFamDecl _ dh _ _ -> [TypeFam (dropAnn modulename) (dropAnn (getDeclHeadName dh)) Nothing]      DataDecl _ dataOrNew _ dh qualConDecls _ -> declHeadSymbol (dataOrNewCon dataOrNew) dh : infos where @@ -72,27 +70,27 @@          infos = constructorsToInfos modulename dq cons           -    DataFamDecl _ _ dh _ -> [DataFam (sModuleName modulename) (sName (getDeclHeadName dh)) Nothing]+    DataFamDecl _ _ dh _ -> [DataFam (dropAnn modulename) (dropAnn (getDeclHeadName dh)) Nothing]      ClassDecl _ _ declHead _ mds -> classSymbol : typeFamilySymbols ++ dataFamilySymbols ++ methodSymbols where         cdecls = fromMaybe [] mds         classSymbol = declHeadSymbol Class declHead         typeFamilySymbols = do-            ClsTyFam   _   familyHead _ <- cdecls-            return (TypeFam (sModuleName modulename) (sName (getDeclHeadName familyHead)) (Just (sName (getDeclHeadName declHead))))+            ClsTyFam   _   familyHead _ _ <- cdecls+            return (TypeFam (dropAnn modulename) (dropAnn (getDeclHeadName familyHead)) (Just (dropAnn (getDeclHeadName declHead))))         dataFamilySymbols = do             ClsDataFam _ _ familyHead _ <- cdecls-            return (DataFam (sModuleName modulename) (sName (getDeclHeadName familyHead)) (Just (sName (getDeclHeadName declHead))))+            return (DataFam (dropAnn modulename) (dropAnn (getDeclHeadName familyHead)) (Just (dropAnn (getDeclHeadName declHead))))         methodSymbols = do             methodName <- getBound impTbl d-            return (Method (sModuleName modulename) (sName methodName) (sName (getDeclHeadName declHead)))+            return (Method (dropAnn modulename) (dropAnn methodName) (dropAnn (getDeclHeadName declHead))) -    FunBind _ ms -> [ Value (sModuleName modulename) (sName vn) ] where+    FunBind _ ms -> [ Value (dropAnn modulename) (dropAnn vn) ] where       vn : _ = getBound impTbl ms -    PatBind _ p _ _ -> [ Value (sModuleName modulename) (sName vn) | vn <- getBound impTbl p ]+    PatBind _ p _ _ -> [ Value (dropAnn modulename) (dropAnn vn) | vn <- getBound impTbl p ] -    ForImp _ _ _ _ fn _ -> [ Value (sModuleName modulename) (sName fn)]+    ForImp _ _ _ _ fn _ -> [ Value (dropAnn modulename) (dropAnn fn)]      DataInsDecl _ _ typ qualConDecls _ -> constructorsToInfos modulename (typeOuterName typ) (qualConDeclNames qualConDecls) @@ -105,7 +103,7 @@      _ -> [])         where-            declHeadSymbol c dh = c (sModuleName modulename) (sName (getDeclHeadName dh))+            declHeadSymbol c dh = c (dropAnn modulename) (dropAnn (getDeclHeadName dh))  -- | Takes a type name and a list of constructor names paired with selector names. Returns --   all symbols i.e. constructors and selectors.@@ -113,7 +111,7 @@ constructorsToInfos modulename typename constructors = conInfos ++ selInfos where         conInfos = do             (constructorname,_) <- constructors-            return (Constructor (sModuleName modulename) (sName constructorname) (sName typename))+            return (Constructor (dropAnn modulename) (dropAnn constructorname) (dropAnn typename))          selectorsMap = Map.fromListWith (++) (do             (constructorname,selectornames) <- constructors@@ -124,7 +122,7 @@             (_,selectornames) <- constructors             selectorname <- selectornames             constructornames <- maybeToList (Map.lookup (nameToString selectorname) selectorsMap)-            return (Selector (sModuleName modulename) (sName selectorname) (sName typename) (map sName constructornames))+            return (Selector (dropAnn modulename) (dropAnn selectorname) (dropAnn typename) (map dropAnn constructornames))  typeOuterName :: Type l -> Name l typeOuterName t = case t of@@ -134,7 +132,7 @@     TyParen _ typ -> typeOuterName typ     TyInfix _ _ qname _ -> qNameToName qname     TyKind _ typ _ -> typeOuterName typ-    TyBang _ _ typ -> typeOuterName typ+    TyBang _ _ _ typ -> typeOuterName typ     _ -> error "illegal data family in data instance"  qualConDeclNames :: [QualConDecl l] -> [(Name l,[Name l])]@@ -147,5 +145,5 @@             return (n , [f | FieldDecl _ fNames _ <- fields, f <- fNames])  -dataOrNewCon :: Syntax.DataOrNew l -> UnAnn.ModuleName -> UnAnn.Name -> Symbol+dataOrNewCon :: Syntax.DataOrNew l -> ModuleName () -> Name () -> Symbol dataOrNewCon dataOrNew = case dataOrNew of DataType {} -> Data; Syntax.NewType {} -> NewType
src/Language/Haskell/Names/Open/Base.hs view
@@ -11,8 +11,7 @@ import qualified Language.Haskell.Names.LocalSymbolTable as Local import Language.Haskell.Names.GetBound import Language.Haskell.Names.RecordWildcards-import Language.Haskell.Exts.Annotated-import qualified Language.Haskell.Exts.Syntax as UnAnn+import Language.Haskell.Exts import Control.Applicative import Control.Monad.Identity import Data.List@@ -48,18 +47,18 @@ -- If we enter an instance with a qualified class name we have to -- remember the qualification to resolve method names. data Scope = Scope-  { _moduName :: UnAnn.ModuleName+  { _moduName :: ModuleName ()   , _gTable :: Global.Table   , _lTable :: Local.Table   , _nameCtx :: NameContext-  , _instQual :: Maybe UnAnn.ModuleName+  , _instQual :: Maybe (ModuleName ())   , _wcNames :: WcNames   }  makeLens ''Scope  -- | Create an initial scope-initialScope :: UnAnn.ModuleName -> Global.Table -> Scope+initialScope :: ModuleName () -> Global.Table -> Scope initialScope moduleName tbl = Scope moduleName tbl Local.empty Other Nothing []  -- | Merge local tables of two scopes. The other fields of the scopes are@@ -158,5 +157,5 @@ exprUT :: Scope -> Scope exprUT = setNameCtx ReferenceUT -instQ :: Maybe UnAnn.ModuleName -> Scope -> Scope+instQ :: Maybe (ModuleName ()) -> Scope -> Scope instQ m = setL instQual m
src/Language/Haskell/Names/Open/Derived.hs view
@@ -2,7 +2,7 @@ {-# LANGUAGE TemplateHaskell, MultiParamTypeClasses, FlexibleInstances, ConstraintKinds, UndecidableInstances #-} module Language.Haskell.Names.Open.Derived where -import Language.Haskell.Exts.Annotated+import Language.Haskell.Exts import Data.Generics.Traversable.TH  deriveGTraversable ''ModuleName@@ -150,3 +150,11 @@ deriveGTraversable ''PatternSynDirection  deriveGTraversable ''Role++deriveGTraversable ''InjectivityInfo++deriveGTraversable ''ResultSig++deriveGTraversable ''Unpackedness++deriveGTraversable ''EWildcard
src/Language/Haskell/Names/Open/Instances.hs view
@@ -15,7 +15,7 @@ import Language.Haskell.Names.Open.Derived () import Language.Haskell.Names.GetBound import Language.Haskell.Names.RecordWildcards-import Language.Haskell.Exts.Annotated+import Language.Haskell.Exts import Language.Haskell.Names.SyntaxUtils import qualified Data.Data as D import Control.Applicative
src/Language/Haskell/Names/RecordWildcards.hs view
@@ -7,8 +7,6 @@ import Control.Monad  import Language.Haskell.Exts-import Language.Haskell.Exts.Annotated.Simplify (sName)-import qualified Language.Haskell.Exts.Annotated as Ann import Language.Haskell.Names.Types import Language.Haskell.Names.SyntaxUtils import qualified Language.Haskell.Names.GlobalSymbolTable as Global@@ -26,9 +24,9 @@  -- | Information about a field in the wildcard data WcField = WcField-  { wcFieldName :: Name+  { wcFieldName :: Name ()     -- ^ the field's simple name-  , wcFieldModuleName :: ModuleName+  , wcFieldModuleName :: ModuleName ()     -- ^ the field's original name   , wcExistsGlobalValue :: Bool     -- ^ whether there is a global value in scope with the same name as@@ -37,14 +35,14 @@  getElidedFields   :: Global.Table-  -> Ann.QName l-  -> [Ann.Name l] -- mentioned field names+  -> QName l+  -> [Name l] -- mentioned field names   -> WcNames getElidedFields globalTable con fields =   let-    givenFieldNames :: Map.Map Name ()+    givenFieldNames :: Map.Map (Name ()) ()     givenFieldNames =-      Map.fromList . map ((, ()) . sName) $ fields+      Map.fromList . map ((, ()) . dropAnn) $ fields      -- FIXME must report error when the constructor cannot be     -- resolved@@ -61,9 +59,9 @@         guard (conOrigName `elem` constructors)         return symbol) -    existsGlobalValue :: Name -> Bool+    existsGlobalValue :: Name () -> Bool     existsGlobalValue name =-      case Map.lookup (UnQual name) globalTable of+      case Map.lookup (UnQual () name) globalTable of         Just [symbol]           | Just typeOrigName <- mbTypeOrigName           , Selector {} <- symbol@@ -72,7 +70,7 @@           | otherwise -> True -- exists, but not this field's selector         _ -> False -- doesn't exist or ambiguous -    ourFieldNames :: Map.Map Name WcField+    ourFieldNames :: Map.Map (Name ()) WcField     ourFieldNames = Map.fromList (do         symbol <- ourFieldInfos         let name = symbolName symbol@@ -85,24 +83,24 @@    in Map.elems $ ourFieldNames `Map.difference` givenFieldNames -nameOfPatField :: Ann.PatField l -> Maybe (Ann.Name l)+nameOfPatField :: PatField l -> Maybe (Name l) nameOfPatField pf =   case pf of-    Ann.PFieldPat _ qn _ -> Just $ qNameToName qn-    Ann.PFieldPun _ qn -> Just $ qNameToName qn-    Ann.PFieldWildcard {} -> Nothing+    PFieldPat _ qn _ -> Just $ qNameToName qn+    PFieldPun _ qn -> Just $ qNameToName qn+    PFieldWildcard {} -> Nothing -nameOfUpdField :: Ann.FieldUpdate l -> Maybe (Ann.Name l)+nameOfUpdField :: FieldUpdate l -> Maybe (Name l) nameOfUpdField pf =   case pf of-    Ann.FieldUpdate _ qn _ -> Just $ qNameToName qn-    Ann.FieldPun _ qn -> Just $ qNameToName qn-    Ann.FieldWildcard {} -> Nothing+    FieldUpdate _ qn _ -> Just $ qNameToName qn+    FieldPun _ qn -> Just $ qNameToName qn+    FieldWildcard {} -> Nothing  patWcNames   :: Global.Table-  -> Ann.QName l-  -> [Ann.PatField l]+  -> QName l+  -> [PatField l]   -> WcNames patWcNames gt con patfs =   getElidedFields gt con $@@ -111,8 +109,8 @@ expWcNames   :: Global.Table   -> Local.Table-  -> Ann.QName l-  -> [Ann.FieldUpdate l]+  -> QName l+  -> [FieldUpdate l]   -> WcNames expWcNames gt lt con patfs =   filter isInScope $@@ -123,4 +121,4 @@       | Right {} <- Local.lookupValue qn lt = True       | otherwise = wcExistsGlobalValue field       where-        qn = Ann.UnQual () (annName (wcFieldName field))+        qn = UnQual () (annName (wcFieldName field))
src/Language/Haskell/Names/Recursive.hs view
@@ -11,8 +11,7 @@  import qualified Data.Map as Map (insert) import Control.Monad.State.Strict (State, execState, get, modify)-import Language.Haskell.Exts.Annotated-import Language.Haskell.Exts.Annotated.Simplify (sModuleName)+import Language.Haskell.Exts  import Language.Haskell.Names.Types import Language.Haskell.Names.SyntaxUtils@@ -50,7 +49,7 @@ findFixPoint modules = loop (replicate (length modules) []) where   loop modulesSymbols = do     forM_ (zip modules modulesSymbols) (\(modul, symbols) -> do-      modify (Map.insert (sModuleName (getModuleName modul)) symbols))+      modify (Map.insert (dropAnn (getModuleName modul)) symbols))     environment <- get     modulesSymbols' <- forM modules (\modul -> do       let globalTable = moduleTable (importTable environment modul) modul@@ -74,7 +73,7 @@           maybeExports' = fmap (annotateExportSpecList globalTable) maybeExports     modulePragmas' = fmap noScope modulePragmas     importDecls' = annotateImportDecls moduleName environment importDecls-    decls' = map (annotateDecl (initialScope (sModuleName moduleName) globalTable)) decls+    decls' = map (annotateDecl (initialScope (dropAnn moduleName) globalTable)) decls     globalTable = moduleTable (importTable environment modul) modul     moduleName = getModuleName modul annotate _ _ = error "annotateModule: non-standard modules are not supported"
src/Language/Haskell/Names/ScopeUtils.hs view
@@ -6,8 +6,6 @@ import Language.Haskell.Names.Types import Language.Haskell.Names.SyntaxUtils import Language.Haskell.Exts-import Language.Haskell.Exts.Annotated.Simplify (sName)-import qualified Language.Haskell.Exts.Annotated as Ann import qualified Language.Haskell.Names.GlobalSymbolTable as Global import Control.Monad (guard) import Data.List (nub)@@ -18,10 +16,10 @@ none :: l -> Scoped l none = Scoped None -noScope :: (Ann.Annotated a) => a l -> a (Scoped l)+noScope :: (Annotated a) => a l -> a (Scoped l) noScope = fmap none -symbolParent :: Symbol -> Maybe Name+symbolParent :: Symbol -> Maybe (Name ()) symbolParent (Selector { typeName = n }) = Just n symbolParent (Constructor { typeName = n }) = Just n symbolParent (Method { className = n }) = Just n@@ -35,47 +33,47 @@     -- inserted.     --     -- If 'False', then both qualified and unqualified names are insterted.-  -> ModuleName+  -> ModuleName ()   -> [Symbol]   -> Global.Table computeSymbolTable qual modulename symbols =   Global.fromList (qualified <> if qual then [] else unqualified) where     qualified = do         symbol <- symbols-        return (Qual modulename (symbolName symbol),symbol)+        return (Qual  ()modulename (symbolName symbol),symbol)     unqualified = do         symbol <- symbols-        return (UnQual (symbolName symbol),symbol)+        return (UnQual () (symbolName symbol),symbol)  -- | Find a single constructor or method name in a list of symbols resolveCName   :: [Symbol]-  -> Name-  -> (Ann.CName l -> Error l) -- ^ error for "not found" condition-  -> Ann.CName l-  -> (Ann.CName (Scoped l), [Symbol])+  -> Name ()+  -> (CName l -> Error l) -- ^ error for "not found" condition+  -> CName l+  -> (CName (Scoped l), [Symbol]) resolveCName symbols parent notFound cn =   let     vs = nub (do         symbol <- symbols         guard (Global.isValue symbol)         let name = symbolName symbol-        guard (sName (unCName cn) == name)+        guard (dropAnn (unCName cn) == name)         Just p <- return $ symbolParent symbol         guard (p == parent)         return symbol)   in     case vs of       [] -> (scopeError (notFound cn) cn, [])-      [symbol] -> (Scoped (GlobalSymbol symbol (UnQual (sName (unCName cn)))) <$> cn, [symbol])+      [symbol] -> (Scoped (GlobalSymbol symbol (UnQual () (dropAnn (unCName cn)))) <$> cn, [symbol])       _ -> (scopeError (EInternal "resolveCName") cn, [])  -- | Find a list of constructor or method names in a list of symbols. resolveCNames   :: [Symbol]-  -> Name-  -> (Ann.CName l -> Error l) -- ^ error for "not found" condition-  -> [Ann.CName l]-  -> ([Ann.CName (Scoped l)], [Symbol])+  -> Name ()+  -> (CName l -> Error l) -- ^ error for "not found" condition+  -> [CName l]+  -> ([CName (Scoped l)], [Symbol]) resolveCNames syms orig notFound =   second mconcat . unzip . map (resolveCName syms orig notFound)
src/Language/Haskell/Names/SyntaxUtils.hs view
@@ -26,8 +26,7 @@ import Data.Either import Data.Foldable hiding (elem) import qualified Data.Set as Set-import qualified Language.Haskell.Exts as UnAnn-import Language.Haskell.Exts.Annotated+import Language.Haskell.Exts import Language.Haskell.Names.Types  dropAnn :: (Functor a) => a l -> a ()@@ -36,17 +35,16 @@ setAnn :: (Functor a) => l' -> a l -> a l' setAnn l = fmap (const l) -annName :: UnAnn.Name -> Name ()-annName (UnAnn.Ident n) = Ident () n-annName (UnAnn.Symbol n) = Symbol () n+annName :: a -> a+annName = id -nameQualification :: QName l -> Maybe UnAnn.ModuleName+nameQualification :: QName l -> Maybe (ModuleName ()) nameQualification (UnQual _ _) =   Nothing nameQualification (Special _ _) =   Nothing nameQualification (Qual _ (ModuleName _ moduleName) _) =-  Just (UnAnn.ModuleName moduleName)+  Just (ModuleName () moduleName)  getModuleName :: Module l -> ModuleName l getModuleName (Module _ (Just (ModuleHead _ mn _ _)) _ _ _) = mn@@ -90,7 +88,7 @@  getDeclHead :: Decl l -> Maybe (DeclHead l) getDeclHead (TypeDecl _ dhead _) = Just dhead-getDeclHead (TypeFamDecl _ dhead _) = Just dhead+getDeclHead (TypeFamDecl _ dhead _ _) = Just dhead getDeclHead (DataDecl _ _ _ dhead _ _) = Just dhead getDeclHead (GDataDecl _ _ _ dhead _ _ _) = Just dhead getDeclHead (DataFamDecl _ _ dhead _) = Just dhead@@ -109,7 +107,7 @@  isTypeDecl :: Decl l -> Bool isTypeDecl (TypeDecl _ _ _) = True-isTypeDecl (TypeFamDecl _ _ _) = True+isTypeDecl (TypeFamDecl _ _ _ _) = True isTypeDecl (DataDecl _ _ _ _ _ _) = True isTypeDecl (GDataDecl _ _ _ _ _ _ _) = True isTypeDecl (DataFamDecl _ _ _ _) = True
src/Language/Haskell/Names/Types.hs view
@@ -3,7 +3,6 @@ module Language.Haskell.Names.Types where  import Language.Haskell.Exts-import qualified Language.Haskell.Exts.Annotated as Ann import Data.Typeable import Data.Data import Data.Foldable as F@@ -16,65 +15,65 @@ -- declared in and its name. data Symbol     = Value-      { symbolModule :: ModuleName-      , symbolName :: Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()       }       -- ^ value or function     | Method-      { symbolModule :: ModuleName-      , symbolName :: Name-      , className :: Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()+      , className :: Name ()       }       -- ^ class method     | Selector-      { symbolModule :: ModuleName-      , symbolName :: Name-      , typeName :: Name-      , constructors :: [Name]+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()+      , typeName :: Name ()+      , constructors :: [Name ()]       }       -- ^ record field selector     | Constructor-      { symbolModule :: ModuleName-      , symbolName :: Name-      , typeName :: Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()+      , typeName :: Name ()       }       -- ^ data constructor     | Type-      { symbolModule :: ModuleName-      , symbolName :: Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()       }       -- ^ type synonym     | Data-      { symbolModule :: ModuleName-      , symbolName :: Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()       }       -- ^ data type     | NewType-      { symbolModule :: ModuleName-      , symbolName :: Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()       }       -- ^ newtype     | TypeFam-      { symbolModule :: ModuleName-      , symbolName :: Name-      , associate :: Maybe Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()+      , associate :: Maybe (Name ())       }       -- ^ type family     | DataFam-      { symbolModule :: ModuleName-      , symbolName :: Name-      , associate :: Maybe Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()+      , associate :: Maybe (Name ())       }       -- ^ data family     | Class-      { symbolModule :: ModuleName-      , symbolName :: Name+      { symbolModule :: ModuleName ()+      , symbolName :: Name ()       }       -- ^ type class     deriving (Eq, Ord, Show, Data, Typeable)  -- | A map from module name to list of symbols it exports.-type Environment = Map ModuleName [Symbol]+type Environment = Map (ModuleName ()) [Symbol]  -- | A pair of the name information and original annotation. Used as an -- annotation type for AST.@@ -83,7 +82,7 @@  -- | Information about the names used in an AST. data NameInfo l-    = GlobalSymbol Symbol QName+    = GlobalSymbol Symbol (QName ())       -- ^ global entitiy and the way it is referenced     | LocalValue  SrcLoc       -- ^ local value, and location where it is bound@@ -93,7 +92,7 @@       -- ^ here the value name is bound     | TypeBinder        -- ^ here the type name is defined-    | Import      (Map QName [Symbol])+    | Import      (Map (QName ()) [Symbol])       -- ^ @import@ declaration, and the table of symbols that it       -- introduces     | ImportPart  [Symbol]@@ -103,7 +102,7 @@     | RecPatWildcard [Symbol]       -- ^ wildcard in a record pattern. The list contains resolved names       -- of the fields that are brought in scope by this pattern.-    | RecExpWildcard [(Name, NameInfo l)]+    | RecExpWildcard [(Name (), NameInfo l)]       -- ^ wildcard in a record construction expression. The list contains       -- resolved names of the fields and information about values       -- assigned to those fields.@@ -115,18 +114,18 @@  -- | Errors during name resolution. data Error l-  = ENotInScope (Ann.QName l) -- FIXME annotate with namespace (types/values)+  = ENotInScope (QName l) -- FIXME annotate with namespace (types/values)     -- ^ name is not in scope-  | EAmbiguous (Ann.QName l) [Symbol]+  | EAmbiguous (QName l) [Symbol]     -- ^ name is ambiguous-  | ETypeAsClass (Ann.QName l)+  | ETypeAsClass (QName l)     -- ^ type is used where a type class is expected-  | EClassAsType (Ann.QName l)+  | EClassAsType (QName l)     -- ^ type class is used where a type is expected   | ENotExported-      (Maybe (Ann.Name l)) ---      (Ann.Name l)         ---      (Ann.ModuleName l)+      (Maybe (Name l)) --+      (Name l)         --+      (ModuleName l)     -- ^ Attempt to explicitly import a name which is not exported (or,     -- possibly, does not even exist). For example:     --@@ -139,7 +138,7 @@     -- 2. the name which is not exported     --     -- 3. the module which does not export the name-  | EModNotFound (Ann.ModuleName l)+  | EModNotFound (ModuleName l)     -- ^ module not found   | EInternal String     -- ^ internal error@@ -152,7 +151,7 @@ -- | Display an error. -- -- Note: can span multiple lines; the trailing newline is included.-ppError :: Ann.SrcInfo l => Error l -> String+ppError :: SrcInfo l => Error l -> String ppError e =   case e of     ENotInScope qn -> printf "%s: not in scope: %s\n"@@ -185,16 +184,16 @@     EInternal s -> printf "Internal error: %s\n" s    where-    ppLoc :: (Ann.Annotated a, Ann.SrcInfo l) => a l -> String-    ppLoc = prettyPrint . Ann.getPointLoc . Ann.ann+    ppLoc :: (Annotated a, SrcInfo l) => a l -> String+    ppLoc = prettyPrint . getPointLoc . ann -instance (Ann.SrcInfo l) => Ann.SrcInfo (Scoped l) where-    toSrcInfo l1 ss l2 = Scoped None $ Ann.toSrcInfo l1 ss l2-    fromSrcInfo = Scoped None . Ann.fromSrcInfo-    getPointLoc = Ann.getPointLoc . sLoc-    fileName = Ann.fileName . sLoc-    startLine = Ann.startLine . sLoc-    startColumn = Ann.startColumn . sLoc+instance (SrcInfo l) => SrcInfo (Scoped l) where+    toSrcInfo l1 ss l2 = Scoped None $ toSrcInfo l1 ss l2+    fromSrcInfo = Scoped None . fromSrcInfo+    getPointLoc = getPointLoc . sLoc+    fileName = fileName . sLoc+    startLine = startLine . sLoc+    startColumn = startColumn . sLoc  sLoc :: Scoped l -> l sLoc (Scoped _ l) = l
+ tests/environment/Prelude.symbols.golden view
@@ -0,0 +1,1 @@+[{"name":"Bool","module":"GHC.Types","entity":"data"},{"name":"False","module":"GHC.Types","type":"Bool","entity":"constructor"},{"name":"True","module":"GHC.Types","type":"Bool","entity":"constructor"},{"name":"&&","module":"GHC.Classes","entity":"value"},{"name":"||","module":"GHC.Classes","entity":"value"},{"name":"not","module":"GHC.Classes","entity":"value"},{"name":"otherwise","module":"GHC.Base","entity":"value"},{"name":"Maybe","module":"Data.Maybe","entity":"data"},{"name":"Nothing","module":"Data.Maybe","type":"Maybe","entity":"constructor"},{"name":"Just","module":"Data.Maybe","type":"Maybe","entity":"constructor"},{"name":"maybe","module":"Data.Maybe","entity":"value"},{"name":"Either","module":"Data.Either","entity":"data"},{"name":"Left","module":"Data.Either","type":"Either","entity":"constructor"},{"name":"Right","module":"Data.Either","type":"Either","entity":"constructor"},{"name":"either","module":"Data.Either","entity":"value"},{"name":"Ordering","module":"GHC.Types","entity":"data"},{"name":"LT","module":"GHC.Types","type":"Ordering","entity":"constructor"},{"name":"EQ","module":"GHC.Types","type":"Ordering","entity":"constructor"},{"name":"GT","module":"GHC.Types","type":"Ordering","entity":"constructor"},{"name":"Char","module":"GHC.Types","entity":"data"},{"name":"String","module":"GHC.Base","entity":"type"},{"name":"fst","module":"Data.Tuple","entity":"value"},{"name":"snd","module":"Data.Tuple","entity":"value"},{"name":"curry","module":"Data.Tuple","entity":"value"},{"name":"uncurry","module":"Data.Tuple","entity":"value"},{"name":"Eq","module":"GHC.Classes","entity":"class"},{"name":"==","module":"GHC.Classes","entity":"method","class":"Eq"},{"name":"/=","module":"GHC.Classes","entity":"method","class":"Eq"},{"name":"Ord","module":"GHC.Classes","entity":"class"},{"name":"compare","module":"GHC.Classes","entity":"method","class":"Ord"},{"name":"<","module":"GHC.Classes","entity":"method","class":"Ord"},{"name":"<=","module":"GHC.Classes","entity":"method","class":"Ord"},{"name":">=","module":"GHC.Classes","entity":"method","class":"Ord"},{"name":">","module":"GHC.Classes","entity":"method","class":"Ord"},{"name":"max","module":"GHC.Classes","entity":"method","class":"Ord"},{"name":"min","module":"GHC.Classes","entity":"method","class":"Ord"},{"name":"Enum","module":"GHC.Enum","entity":"class"},{"name":"succ","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"pred","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"toEnum","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"fromEnum","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"enumFrom","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"enumFromThen","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"enumFromTo","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"enumFromThenTo","module":"GHC.Enum","entity":"method","class":"Enum"},{"name":"Bounded","module":"GHC.Enum","entity":"class"},{"name":"minBound","module":"GHC.Enum","entity":"method","class":"Bounded"},{"name":"maxBound","module":"GHC.Enum","entity":"method","class":"Bounded"},{"name":"Int","module":"GHC.Types","entity":"data"},{"name":"Integer","module":"GHC.Integer.Type","entity":"data"},{"name":"Float","module":"GHC.Types","entity":"data"},{"name":"Double","module":"GHC.Types","entity":"data"},{"name":"Rational","module":"GHC.Real","entity":"type"},{"name":"Num","module":"GHC.Num","entity":"class"},{"name":"+","module":"GHC.Num","entity":"method","class":"Num"},{"name":"-","module":"GHC.Num","entity":"method","class":"Num"},{"name":"*","module":"GHC.Num","entity":"method","class":"Num"},{"name":"negate","module":"GHC.Num","entity":"method","class":"Num"},{"name":"abs","module":"GHC.Num","entity":"method","class":"Num"},{"name":"signum","module":"GHC.Num","entity":"method","class":"Num"},{"name":"fromInteger","module":"GHC.Num","entity":"method","class":"Num"},{"name":"Real","module":"GHC.Real","entity":"class"},{"name":"toRational","module":"GHC.Real","entity":"method","class":"Real"},{"name":"Integral","module":"GHC.Real","entity":"class"},{"name":"quot","module":"GHC.Real","entity":"method","class":"Integral"},{"name":"rem","module":"GHC.Real","entity":"method","class":"Integral"},{"name":"div","module":"GHC.Real","entity":"method","class":"Integral"},{"name":"mod","module":"GHC.Real","entity":"method","class":"Integral"},{"name":"quotRem","module":"GHC.Real","entity":"method","class":"Integral"},{"name":"divMod","module":"GHC.Real","entity":"method","class":"Integral"},{"name":"toInteger","module":"GHC.Real","entity":"method","class":"Integral"},{"name":"Fractional","module":"GHC.Real","entity":"class"},{"name":"/","module":"GHC.Real","entity":"method","class":"Fractional"},{"name":"recip","module":"GHC.Real","entity":"method","class":"Fractional"},{"name":"fromRational","module":"GHC.Real","entity":"method","class":"Fractional"},{"name":"Floating","module":"GHC.Float","entity":"class"},{"name":"pi","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"exp","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"log","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"sqrt","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"**","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"logBase","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"sin","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"cos","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"tan","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"asin","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"acos","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"atan","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"sinh","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"cosh","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"tanh","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"asinh","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"acosh","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"atanh","module":"GHC.Float","entity":"method","class":"Floating"},{"name":"RealFrac","module":"GHC.Real","entity":"class"},{"name":"properFraction","module":"GHC.Real","entity":"method","class":"RealFrac"},{"name":"truncate","module":"GHC.Real","entity":"method","class":"RealFrac"},{"name":"round","module":"GHC.Real","entity":"method","class":"RealFrac"},{"name":"ceiling","module":"GHC.Real","entity":"method","class":"RealFrac"},{"name":"floor","module":"GHC.Real","entity":"method","class":"RealFrac"},{"name":"RealFloat","module":"GHC.Float","entity":"class"},{"name":"floatRadix","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"floatDigits","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"floatRange","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"decodeFloat","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"encodeFloat","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"exponent","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"significand","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"scaleFloat","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"isNaN","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"isInfinite","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"isDenormalized","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"isIEEE","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"isNegativeZero","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"atan2","module":"GHC.Float","entity":"method","class":"RealFloat"},{"name":"subtract","module":"GHC.Num","entity":"value"},{"name":"even","module":"GHC.Real","entity":"value"},{"name":"odd","module":"GHC.Real","entity":"value"},{"name":"gcd","module":"GHC.Real","entity":"value"},{"name":"lcm","module":"GHC.Real","entity":"value"},{"name":"^","module":"GHC.Real","entity":"value"},{"name":"^^","module":"GHC.Real","entity":"value"},{"name":"fromIntegral","module":"GHC.Real","entity":"value"},{"name":"realToFrac","module":"GHC.Real","entity":"value"},{"name":"Monad","module":"GHC.Base","entity":"class"},{"name":">>=","module":"GHC.Base","entity":"method","class":"Monad"},{"name":">>","module":"GHC.Base","entity":"method","class":"Monad"},{"name":"return","module":"GHC.Base","entity":"method","class":"Monad"},{"name":"fail","module":"GHC.Base","entity":"method","class":"Monad"},{"name":"Functor","module":"GHC.Base","entity":"class"},{"name":"fmap","module":"GHC.Base","entity":"method","class":"Functor"},{"name":"mapM","module":"Control.Monad","entity":"value"},{"name":"mapM_","module":"Control.Monad","entity":"value"},{"name":"sequence","module":"Control.Monad","entity":"value"},{"name":"sequence_","module":"Control.Monad","entity":"value"},{"name":"=<<","module":"Control.Monad","entity":"value"},{"name":"id","module":"GHC.Base","entity":"value"},{"name":"const","module":"GHC.Base","entity":"value"},{"name":".","module":"GHC.Base","entity":"value"},{"name":"flip","module":"GHC.Base","entity":"value"},{"name":"$","module":"GHC.Base","entity":"value"},{"name":"until","module":"GHC.Base","entity":"value"},{"name":"asTypeOf","module":"GHC.Base","entity":"value"},{"name":"error","module":"GHC.Err","entity":"value"},{"name":"undefined","module":"GHC.Err","entity":"value"},{"name":"seq","module":"GHC.Prim","entity":"value"},{"name":"$!","module":"Prelude","entity":"value"},{"name":"map","module":"GHC.Base","entity":"value"},{"name":"++","module":"GHC.Base","entity":"value"},{"name":"filter","module":"GHC.List","entity":"value"},{"name":"head","module":"GHC.List","entity":"value"},{"name":"last","module":"GHC.List","entity":"value"},{"name":"tail","module":"GHC.List","entity":"value"},{"name":"init","module":"GHC.List","entity":"value"},{"name":"null","module":"GHC.List","entity":"value"},{"name":"length","module":"GHC.List","entity":"value"},{"name":"!!","module":"GHC.List","entity":"value"},{"name":"reverse","module":"GHC.List","entity":"value"},{"name":"foldl","module":"GHC.List","entity":"value"},{"name":"foldl1","module":"Data.List","entity":"value"},{"name":"foldr","module":"GHC.Base","entity":"value"},{"name":"foldr1","module":"GHC.List","entity":"value"},{"name":"and","module":"GHC.List","entity":"value"},{"name":"or","module":"GHC.List","entity":"value"},{"name":"any","module":"GHC.List","entity":"value"},{"name":"all","module":"GHC.List","entity":"value"},{"name":"sum","module":"Data.List","entity":"value"},{"name":"product","module":"Data.List","entity":"value"},{"name":"concat","module":"GHC.List","entity":"value"},{"name":"concatMap","module":"GHC.List","entity":"value"},{"name":"maximum","module":"Data.List","entity":"value"},{"name":"minimum","module":"Data.List","entity":"value"},{"name":"scanl","module":"GHC.List","entity":"value"},{"name":"scanl1","module":"GHC.List","entity":"value"},{"name":"scanr","module":"GHC.List","entity":"value"},{"name":"scanr1","module":"GHC.List","entity":"value"},{"name":"iterate","module":"GHC.List","entity":"value"},{"name":"repeat","module":"GHC.List","entity":"value"},{"name":"replicate","module":"GHC.List","entity":"value"},{"name":"cycle","module":"GHC.List","entity":"value"},{"name":"take","module":"GHC.List","entity":"value"},{"name":"drop","module":"GHC.List","entity":"value"},{"name":"splitAt","module":"GHC.List","entity":"value"},{"name":"takeWhile","module":"GHC.List","entity":"value"},{"name":"dropWhile","module":"GHC.List","entity":"value"},{"name":"span","module":"GHC.List","entity":"value"},{"name":"break","module":"GHC.List","entity":"value"},{"name":"elem","module":"GHC.List","entity":"value"},{"name":"notElem","module":"GHC.List","entity":"value"},{"name":"lookup","module":"GHC.List","entity":"value"},{"name":"zip","module":"GHC.List","entity":"value"},{"name":"zip3","module":"GHC.List","entity":"value"},{"name":"zipWith","module":"GHC.List","entity":"value"},{"name":"zipWith3","module":"GHC.List","entity":"value"},{"name":"unzip","module":"GHC.List","entity":"value"},{"name":"unzip3","module":"GHC.List","entity":"value"},{"name":"lines","module":"Data.List","entity":"value"},{"name":"words","module":"Data.List","entity":"value"},{"name":"unlines","module":"Data.List","entity":"value"},{"name":"unwords","module":"Data.List","entity":"value"},{"name":"ShowS","module":"GHC.Show","entity":"type"},{"name":"Show","module":"GHC.Show","entity":"class"},{"name":"showsPrec","module":"GHC.Show","entity":"method","class":"Show"},{"name":"showList","module":"GHC.Show","entity":"method","class":"Show"},{"name":"show","module":"GHC.Show","entity":"method","class":"Show"},{"name":"shows","module":"GHC.Show","entity":"value"},{"name":"showChar","module":"GHC.Show","entity":"value"},{"name":"showString","module":"GHC.Show","entity":"value"},{"name":"showParen","module":"GHC.Show","entity":"value"},{"name":"ReadS","module":"Text.ParserCombinators.ReadP","entity":"type"},{"name":"Read","module":"GHC.Read","entity":"class"},{"name":"readsPrec","module":"GHC.Read","entity":"method","class":"Read"},{"name":"readList","module":"GHC.Read","entity":"method","class":"Read"},{"name":"reads","module":"Text.Read","entity":"value"},{"name":"readParen","module":"GHC.Read","entity":"value"},{"name":"read","module":"Text.Read","entity":"value"},{"name":"lex","module":"GHC.Read","entity":"value"},{"name":"IO","module":"GHC.Types","entity":"newtype"},{"name":"putChar","module":"System.IO","entity":"value"},{"name":"putStr","module":"System.IO","entity":"value"},{"name":"putStrLn","module":"System.IO","entity":"value"},{"name":"print","module":"System.IO","entity":"value"},{"name":"getChar","module":"System.IO","entity":"value"},{"name":"getLine","module":"System.IO","entity":"value"},{"name":"getContents","module":"System.IO","entity":"value"},{"name":"interact","module":"System.IO","entity":"value"},{"name":"FilePath","module":"GHC.IO","entity":"type"},{"name":"readFile","module":"System.IO","entity":"value"},{"name":"writeFile","module":"System.IO","entity":"value"},{"name":"appendFile","module":"System.IO","entity":"value"},{"name":"readIO","module":"System.IO","entity":"value"},{"name":"readLn","module":"System.IO","entity":"value"},{"name":"IOError","module":"GHC.IO.Exception","entity":"type"},{"name":"ioError","module":"GHC.IO.Exception","entity":"value"},{"name":"userError","module":"GHC.IO.Exception","entity":"value"}]
tests/exports/DataFamilies.hs.golden view
@@ -1,30 +1,30 @@ [ DataFam-    { symbolModule = ModuleName "DataFamilies"-    , symbolName = Ident "Vector"+    { symbolModule = ModuleName () "DataFamilies"+    , symbolName = Ident () "Vector"     , associate = Nothing     } , Class-    { symbolModule = ModuleName "DataFamilies"-    , symbolName = Ident "ListLike"+    { symbolModule = ModuleName () "DataFamilies"+    , symbolName = Ident () "ListLike"     } , TypeFam-    { symbolModule = ModuleName "DataFamilies"-    , symbolName = Ident "I"-    , associate = Just (Ident "ListLike")+    { symbolModule = ModuleName () "DataFamilies"+    , symbolName = Ident () "I"+    , associate = Just (Ident () "ListLike")     } , Method-    { symbolModule = ModuleName "DataFamilies"-    , symbolName = Ident "method1"-    , className = Ident "ListLike"+    { symbolModule = ModuleName () "DataFamilies"+    , symbolName = Ident () "method1"+    , className = Ident () "ListLike"     } , DataFam-    { symbolModule = ModuleName "DataFamilies"-    , symbolName = Ident "Vector"+    { symbolModule = ModuleName () "DataFamilies"+    , symbolName = Ident () "Vector"     , associate = Nothing     } , Constructor-    { symbolModule = ModuleName "DataFamilies"-    , symbolName = Ident "U_Vector"-    , typeName = Ident "Vector"+    { symbolModule = ModuleName () "DataFamilies"+    , symbolName = Ident () "U_Vector"+    , typeName = Ident () "Vector"     } ]
tests/exports/ExportList.hs.golden view
@@ -1,3 +1,5 @@ [ Data-    { symbolModule = ModuleName "ExportList" , symbolName = Ident "A" }+    { symbolModule = ModuleName () "ExportList"+    , symbolName = Ident () "A"+    } ]
tests/exports/ExportList2.hs.golden view
@@ -1,11 +1,11 @@ [ Selector-    { symbolModule = ModuleName "ExportList2"-    , symbolName = Ident "b"-    , typeName = Ident "A"-    , constructors = [ Ident "B" , Ident "A" ]+    { symbolModule = ModuleName () "ExportList2"+    , symbolName = Ident () "b"+    , typeName = Ident () "A"+    , constructors = [ Ident () "B" , Ident () "A" ]     } , Value-    { symbolModule = ModuleName "ExportList2"-    , symbolName = Ident "c"+    { symbolModule = ModuleName () "ExportList2"+    , symbolName = Ident () "c"     } ]
tests/exports/ExportListMembers.hs.golden view
@@ -1,39 +1,39 @@ [ Data-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "Foo"+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "Foo"     } , Constructor-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "Foo1"-    , typeName = Ident "Foo"+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "Foo1"+    , typeName = Ident () "Foo"     } , Constructor-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "Foo3"-    , typeName = Ident "Foo"+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "Foo3"+    , typeName = Ident () "Foo"     } , Selector-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "c"-    , typeName = Ident "Foo"-    , constructors = [ Ident "Foo2" ]+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "c"+    , typeName = Ident () "Foo"+    , constructors = [ Ident () "Foo2" ]     } , Class-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "Bar"+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "Bar"     } , Method-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "x"-    , className = Ident "Bar"+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "x"+    , className = Ident () "Bar"     } , NewType-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "N"+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "N"     } , Constructor-    { symbolModule = ModuleName "ExportListMembers"-    , symbolName = Ident "N"-    , typeName = Ident "N"+    { symbolModule = ModuleName () "ExportListMembers"+    , symbolName = Ident () "N"+    , typeName = Ident () "N"     } ]
tests/exports/ExportListWildcards.hs.golden view
@@ -1,50 +1,50 @@ [ Data-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "Foo"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "Foo"     } , Constructor-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "Foo1"-    , typeName = Ident "Foo"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "Foo1"+    , typeName = Ident () "Foo"     } , Constructor-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "Foo2"-    , typeName = Ident "Foo"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "Foo2"+    , typeName = Ident () "Foo"     } , Constructor-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "Foo3"-    , typeName = Ident "Foo"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "Foo3"+    , typeName = Ident () "Foo"     } , Selector-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "c"-    , typeName = Ident "Foo"-    , constructors = [ Ident "Foo3" ]+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "c"+    , typeName = Ident () "Foo"+    , constructors = [ Ident () "Foo3" ]     } , Class-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "Bar"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "Bar"     } , Method-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "x"-    , className = Ident "Bar"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "x"+    , className = Ident () "Bar"     } , NewType-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "N"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "N"     } , Constructor-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "N"-    , typeName = Ident "N"+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "N"+    , typeName = Ident () "N"     } , Selector-    { symbolModule = ModuleName "ExportListWildcards"-    , symbolName = Ident "unN"-    , typeName = Ident "N"-    , constructors = [ Ident "N" ]+    { symbolModule = ModuleName () "ExportListWildcards"+    , symbolName = Ident () "unN"+    , typeName = Ident () "N"+    , constructors = [ Ident () "N" ]     } ]
tests/exports/ImplicitExportList.hs.golden view
@@ -1,3 +1,5 @@ [ Value-    { symbolModule = ModuleName "Main" , symbolName = Ident "main" }+    { symbolModule = ModuleName () "Main"+    , symbolName = Ident () "main"+    } ]
tests/exports/ModuleReExport.hs.golden view
@@ -1,82 +1,82 @@ [ Value-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "function"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "function"     } , Method-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "method1"-    , className = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "method1"+    , className = Ident () "Class"     } , Method-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "method2"-    , className = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "method2"+    , className = Ident () "Class"     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "selector1"-    , typeName = Ident "DataTypeWithSelectors"-    , constructors = [ Ident "DataTypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "selector1"+    , typeName = Ident () "DataTypeWithSelectors"+    , constructors = [ Ident () "DataTypeWithSelectors" ]     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "selector2"-    , typeName = Ident "DataTypeWithSelectors"-    , constructors = [ Ident "DataTypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "selector2"+    , typeName = Ident () "DataTypeWithSelectors"+    , constructors = [ Ident () "DataTypeWithSelectors" ]     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "unNewtype"-    , typeName = Ident "NewtypeWithSelectors"-    , constructors = [ Ident "NewtypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "unNewtype"+    , typeName = Ident () "NewtypeWithSelectors"+    , constructors = [ Ident () "NewtypeWithSelectors" ]     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Constructor1"-    , typeName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Constructor1"+    , typeName = Ident () "DataType"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Constructor2"-    , typeName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Constructor2"+    , typeName = Ident () "DataType"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataTypeWithSelectors"-    , typeName = Ident "DataTypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataTypeWithSelectors"+    , typeName = Ident () "DataTypeWithSelectors"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Newtype"-    , typeName = Ident "Newtype"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Newtype"+    , typeName = Ident () "Newtype"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "NewtypeWithSelectors"-    , typeName = Ident "NewtypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "NewtypeWithSelectors"+    , typeName = Ident () "NewtypeWithSelectors"     } , Type-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "TypeSynonym"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "TypeSynonym"     } , Data-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataType"     } , Data-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataTypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataTypeWithSelectors"     } , NewType-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Newtype"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Newtype"     } , NewType-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "NewtypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "NewtypeWithSelectors"     } , Class-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Class"     } ]
tests/exports/Prelude.hs.golden view
@@ -1,82 +1,82 @@ [ Data-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataType"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Constructor1"-    , typeName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Constructor1"+    , typeName = Ident () "DataType"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Constructor2"-    , typeName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Constructor2"+    , typeName = Ident () "DataType"     } , Data-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataTypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataTypeWithSelectors"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataTypeWithSelectors"-    , typeName = Ident "DataTypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataTypeWithSelectors"+    , typeName = Ident () "DataTypeWithSelectors"     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "selector1"-    , typeName = Ident "DataTypeWithSelectors"-    , constructors = [ Ident "DataTypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "selector1"+    , typeName = Ident () "DataTypeWithSelectors"+    , constructors = [ Ident () "DataTypeWithSelectors" ]     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "selector2"-    , typeName = Ident "DataTypeWithSelectors"-    , constructors = [ Ident "DataTypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "selector2"+    , typeName = Ident () "DataTypeWithSelectors"+    , constructors = [ Ident () "DataTypeWithSelectors" ]     } , NewType-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Newtype"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Newtype"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Newtype"-    , typeName = Ident "Newtype"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Newtype"+    , typeName = Ident () "Newtype"     } , NewType-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "NewtypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "NewtypeWithSelectors"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "NewtypeWithSelectors"-    , typeName = Ident "NewtypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "NewtypeWithSelectors"+    , typeName = Ident () "NewtypeWithSelectors"     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "unNewtype"-    , typeName = Ident "NewtypeWithSelectors"-    , constructors = [ Ident "NewtypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "unNewtype"+    , typeName = Ident () "NewtypeWithSelectors"+    , constructors = [ Ident () "NewtypeWithSelectors" ]     } , Type-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "TypeSynonym"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "TypeSynonym"     } , Class-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Class"     } , Method-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "method1"-    , className = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "method1"+    , className = Ident () "Class"     } , Method-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "method2"-    , className = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "method2"+    , className = Ident () "Class"     } , Value-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "function"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "function"     } ]
tests/exports/Rec1.hs.golden view
@@ -1,9 +1,17 @@ [ Value-    { symbolModule = ModuleName "Rec1" , symbolName = Ident "rec1_1" }+    { symbolModule = ModuleName () "Rec1"+    , symbolName = Ident () "rec1_1"+    } , Value-    { symbolModule = ModuleName "Rec1" , symbolName = Ident "rec1_2" }+    { symbolModule = ModuleName () "Rec1"+    , symbolName = Ident () "rec1_2"+    } , Value-    { symbolModule = ModuleName "Rec2" , symbolName = Ident "rec2" }+    { symbolModule = ModuleName () "Rec2"+    , symbolName = Ident () "rec2"+    } , Value-    { symbolModule = ModuleName "Rec3" , symbolName = Ident "rec3" }+    { symbolModule = ModuleName () "Rec3"+    , symbolName = Ident () "rec3"+    } ]
tests/exports/Rec2.hs.golden view
@@ -1,7 +1,13 @@ [ Value-    { symbolModule = ModuleName "Rec2" , symbolName = Ident "rec2" }+    { symbolModule = ModuleName () "Rec2"+    , symbolName = Ident () "rec2"+    } , Value-    { symbolModule = ModuleName "Rec1" , symbolName = Ident "rec1_1" }+    { symbolModule = ModuleName () "Rec1"+    , symbolName = Ident () "rec1_1"+    } , Value-    { symbolModule = ModuleName "Rec3" , symbolName = Ident "rec3" }+    { symbolModule = ModuleName () "Rec3"+    , symbolName = Ident () "rec3"+    } ]
tests/exports/Rec3.hs.golden view
@@ -1,7 +1,13 @@ [ Value-    { symbolModule = ModuleName "Rec1" , symbolName = Ident "rec1_1" }+    { symbolModule = ModuleName () "Rec1"+    , symbolName = Ident () "rec1_1"+    } , Value-    { symbolModule = ModuleName "Rec1" , symbolName = Ident "rec1_2" }+    { symbolModule = ModuleName () "Rec1"+    , symbolName = Ident () "rec1_2"+    } , Value-    { symbolModule = ModuleName "Rec3" , symbolName = Ident "rec3" }+    { symbolModule = ModuleName () "Rec3"+    , symbolName = Ident () "rec3"+    } ]
tests/exports/SelfReExport.hs.golden view
@@ -1,90 +1,90 @@ [ Value-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "function"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "function"     } , Method-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "method1"-    , className = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "method1"+    , className = Ident () "Class"     } , Method-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "method2"-    , className = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "method2"+    , className = Ident () "Class"     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "selector1"-    , typeName = Ident "DataTypeWithSelectors"-    , constructors = [ Ident "DataTypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "selector1"+    , typeName = Ident () "DataTypeWithSelectors"+    , constructors = [ Ident () "DataTypeWithSelectors" ]     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "selector2"-    , typeName = Ident "DataTypeWithSelectors"-    , constructors = [ Ident "DataTypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "selector2"+    , typeName = Ident () "DataTypeWithSelectors"+    , constructors = [ Ident () "DataTypeWithSelectors" ]     } , Selector-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "unNewtype"-    , typeName = Ident "NewtypeWithSelectors"-    , constructors = [ Ident "NewtypeWithSelectors" ]+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "unNewtype"+    , typeName = Ident () "NewtypeWithSelectors"+    , constructors = [ Ident () "NewtypeWithSelectors" ]     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Constructor1"-    , typeName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Constructor1"+    , typeName = Ident () "DataType"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Constructor2"-    , typeName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Constructor2"+    , typeName = Ident () "DataType"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataTypeWithSelectors"-    , typeName = Ident "DataTypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataTypeWithSelectors"+    , typeName = Ident () "DataTypeWithSelectors"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Newtype"-    , typeName = Ident "Newtype"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Newtype"+    , typeName = Ident () "Newtype"     } , Constructor-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "NewtypeWithSelectors"-    , typeName = Ident "NewtypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "NewtypeWithSelectors"+    , typeName = Ident () "NewtypeWithSelectors"     } , Type-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "TypeSynonym"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "TypeSynonym"     } , Data-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataType"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataType"     } , Data-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "DataTypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "DataTypeWithSelectors"     } , NewType-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Newtype"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Newtype"     } , NewType-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "NewtypeWithSelectors"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "NewtypeWithSelectors"     } , Class-    { symbolModule = ModuleName "Prelude"-    , symbolName = Ident "Class"+    { symbolModule = ModuleName () "Prelude"+    , symbolName = Ident () "Class"     } , Value-    { symbolModule = ModuleName "SelfReExport"-    , symbolName = Ident "local"+    { symbolModule = ModuleName () "SelfReExport"+    , symbolName = Ident () "local"     } , Data-    { symbolModule = ModuleName "SelfReExport"-    , symbolName = Ident "Local"+    { symbolModule = ModuleName () "SelfReExport"+    , symbolName = Ident () "Local"     } ]
tests/exports/SimpleData.hs.golden view
@@ -1,8 +1,10 @@ [ Data-    { symbolModule = ModuleName "SimpleData" , symbolName = Ident "A" }+    { symbolModule = ModuleName () "SimpleData"+    , symbolName = Ident () "A"+    } , Constructor-    { symbolModule = ModuleName "SimpleData"-    , symbolName = Ident "A"-    , typeName = Ident "A"+    { symbolModule = ModuleName () "SimpleData"+    , symbolName = Ident () "A"+    , typeName = Ident () "A"     } ]
tests/exports/SimpleTypes.hs.golden view
@@ -1,29 +1,29 @@ [ Data-    { symbolModule = ModuleName "SimpleTypes"-    , symbolName = Ident "A"+    { symbolModule = ModuleName () "SimpleTypes"+    , symbolName = Ident () "A"     } , Constructor-    { symbolModule = ModuleName "SimpleTypes"-    , symbolName = Ident "B"-    , typeName = Ident "A"+    { symbolModule = ModuleName () "SimpleTypes"+    , symbolName = Ident () "B"+    , typeName = Ident () "A"     } , Selector-    { symbolModule = ModuleName "SimpleTypes"-    , symbolName = Ident "c"-    , typeName = Ident "A"-    , constructors = [ Ident "B" ]+    { symbolModule = ModuleName () "SimpleTypes"+    , symbolName = Ident () "c"+    , typeName = Ident () "A"+    , constructors = [ Ident () "B" ]     } , NewType-    { symbolModule = ModuleName "SimpleTypes"-    , symbolName = Ident "G"+    { symbolModule = ModuleName () "SimpleTypes"+    , symbolName = Ident () "G"     } , Constructor-    { symbolModule = ModuleName "SimpleTypes"-    , symbolName = Ident "H"-    , typeName = Ident "G"+    { symbolModule = ModuleName () "SimpleTypes"+    , symbolName = Ident () "H"+    , typeName = Ident () "G"     } , Type-    { symbolModule = ModuleName "SimpleTypes"-    , symbolName = Ident "L"+    { symbolModule = ModuleName () "SimpleTypes"+    , symbolName = Ident () "L"     } ]
tests/exports/SimpleValue.hs.golden view
@@ -1,5 +1,5 @@ [ Value-    { symbolModule = ModuleName "SimpleValue"-    , symbolName = Ident "a"+    { symbolModule = ModuleName () "SimpleValue"+    , symbolName = Ident () "a"     } ]
tests/imports/ExplicitPreludeQualified.hs.golden view
@@ -1,124 +1,126 @@ fromList-  [ ( Qual (ModuleName "Prelude") (Ident "Class")+  [ ( Qual () (ModuleName () "Prelude") (Ident () "Class")     , [ Class-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Constructor1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Constructor1")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor1"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor1"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Constructor2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataType")+  , ( Qual () (ModuleName () "Prelude") (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataTypeWithSelectors")+  , ( Qual+        () (ModuleName () "Prelude") (Ident () "DataTypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"-          , typeName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"+          , typeName = Ident () "DataTypeWithSelectors"           }       , Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Newtype")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Newtype")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"-          , typeName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"+          , typeName = Ident () "Newtype"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "NewtypeWithSelectors")+  , ( Qual+        () (ModuleName () "Prelude") (Ident () "NewtypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"-          , typeName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"+          , typeName = Ident () "NewtypeWithSelectors"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "TypeSynonym")+  , ( Qual () (ModuleName () "Prelude") (Ident () "TypeSynonym")     , [ Type-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "TypeSynonym"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "TypeSynonym"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "function")+  , ( Qual () (ModuleName () "Prelude") (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "method1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "method1")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method1"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method1"+          , className = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "method2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "method2")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method2"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method2"+          , className = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "selector1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "selector1")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector1"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector1"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "selector2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "selector2")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector2"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector2"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "unNewtype")+  , ( Qual () (ModuleName () "Prelude") (Ident () "unNewtype")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "unNewtype"-          , typeName = Ident "NewtypeWithSelectors"-          , constructors = [ Ident "NewtypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "unNewtype"+          , typeName = Ident () "NewtypeWithSelectors"+          , constructors = [ Ident () "NewtypeWithSelectors" ]           }       ]     )
tests/imports/Hiding.hs.golden view
@@ -1,117 +1,118 @@ fromList-  [ ( Qual (ModuleName "Prelude") (Ident "Constructor2")+  [ ( Qual () (ModuleName () "Prelude") (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataType")+  , ( Qual () (ModuleName () "Prelude") (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataTypeWithSelectors")+  , ( Qual+        () (ModuleName () "Prelude") (Ident () "DataTypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"-          , typeName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"+          , typeName = Ident () "DataTypeWithSelectors"           }       , Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "TypeSynonym")+  , ( Qual () (ModuleName () "Prelude") (Ident () "TypeSynonym")     , [ Type-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "TypeSynonym"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "TypeSynonym"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "function")+  , ( Qual () (ModuleName () "Prelude") (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "method2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "method2")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method2"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method2"+          , className = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "selector1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "selector1")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector1"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector1"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( UnQual (Ident "Constructor2")+  , ( UnQual () (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "DataType")+  , ( UnQual () (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "DataTypeWithSelectors")+  , ( UnQual () (Ident () "DataTypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"-          , typeName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"+          , typeName = Ident () "DataTypeWithSelectors"           }       , Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"           }       ]     )-  , ( UnQual (Ident "TypeSynonym")+  , ( UnQual () (Ident () "TypeSynonym")     , [ Type-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "TypeSynonym"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "TypeSynonym"           }       ]     )-  , ( UnQual (Ident "function")+  , ( UnQual () (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( UnQual (Ident "method2")+  , ( UnQual () (Ident () "method2")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method2"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method2"+          , className = Ident () "Class"           }       ]     )-  , ( UnQual (Ident "selector1")+  , ( UnQual () (Ident () "selector1")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector1"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector1"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )
tests/imports/ImplicitPrelude.hs.golden view
@@ -1,247 +1,249 @@ fromList-  [ ( Qual (ModuleName "Prelude") (Ident "Class")+  [ ( Qual () (ModuleName () "Prelude") (Ident () "Class")     , [ Class-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Constructor1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Constructor1")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor1"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor1"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Constructor2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataType")+  , ( Qual () (ModuleName () "Prelude") (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataTypeWithSelectors")+  , ( Qual+        () (ModuleName () "Prelude") (Ident () "DataTypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"-          , typeName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"+          , typeName = Ident () "DataTypeWithSelectors"           }       , Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Newtype")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Newtype")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"-          , typeName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"+          , typeName = Ident () "Newtype"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "NewtypeWithSelectors")+  , ( Qual+        () (ModuleName () "Prelude") (Ident () "NewtypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"-          , typeName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"+          , typeName = Ident () "NewtypeWithSelectors"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "TypeSynonym")+  , ( Qual () (ModuleName () "Prelude") (Ident () "TypeSynonym")     , [ Type-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "TypeSynonym"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "TypeSynonym"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "function")+  , ( Qual () (ModuleName () "Prelude") (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "method1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "method1")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method1"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method1"+          , className = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "method2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "method2")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method2"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method2"+          , className = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "selector1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "selector1")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector1"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector1"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "selector2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "selector2")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector2"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector2"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "unNewtype")+  , ( Qual () (ModuleName () "Prelude") (Ident () "unNewtype")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "unNewtype"-          , typeName = Ident "NewtypeWithSelectors"-          , constructors = [ Ident "NewtypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "unNewtype"+          , typeName = Ident () "NewtypeWithSelectors"+          , constructors = [ Ident () "NewtypeWithSelectors" ]           }       ]     )-  , ( UnQual (Ident "Class")+  , ( UnQual () (Ident () "Class")     , [ Class-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Class"           }       ]     )-  , ( UnQual (Ident "Constructor1")+  , ( UnQual () (Ident () "Constructor1")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor1"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor1"+          , typeName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "Constructor2")+  , ( UnQual () (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "DataType")+  , ( UnQual () (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "DataTypeWithSelectors")+  , ( UnQual () (Ident () "DataTypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"-          , typeName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"+          , typeName = Ident () "DataTypeWithSelectors"           }       , Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"           }       ]     )-  , ( UnQual (Ident "Newtype")+  , ( UnQual () (Ident () "Newtype")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"-          , typeName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"+          , typeName = Ident () "Newtype"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       ]     )-  , ( UnQual (Ident "NewtypeWithSelectors")+  , ( UnQual () (Ident () "NewtypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"-          , typeName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"+          , typeName = Ident () "NewtypeWithSelectors"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"           }       ]     )-  , ( UnQual (Ident "TypeSynonym")+  , ( UnQual () (Ident () "TypeSynonym")     , [ Type-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "TypeSynonym"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "TypeSynonym"           }       ]     )-  , ( UnQual (Ident "function")+  , ( UnQual () (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( UnQual (Ident "method1")+  , ( UnQual () (Ident () "method1")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method1"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method1"+          , className = Ident () "Class"           }       ]     )-  , ( UnQual (Ident "method2")+  , ( UnQual () (Ident () "method2")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method2"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method2"+          , className = Ident () "Class"           }       ]     )-  , ( UnQual (Ident "selector1")+  , ( UnQual () (Ident () "selector1")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector1"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector1"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( UnQual (Ident "selector2")+  , ( UnQual () (Ident () "selector2")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector2"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector2"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( UnQual (Ident "unNewtype")+  , ( UnQual () (Ident () "unNewtype")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "unNewtype"-          , typeName = Ident "NewtypeWithSelectors"-          , constructors = [ Ident "NewtypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "unNewtype"+          , typeName = Ident () "NewtypeWithSelectors"+          , constructors = [ Ident () "NewtypeWithSelectors" ]           }       ]     )
tests/imports/ImportAll.hs.golden view
@@ -1,25 +1,25 @@ fromList-  [ ( Qual (ModuleName "Prelude") (Ident "Newtype")+  [ ( Qual () (ModuleName () "Prelude") (Ident () "Newtype")     , [ NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       , Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"-          , typeName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"+          , typeName = Ident () "Newtype"           }       ]     )-  , ( UnQual (Ident "Newtype")+  , ( UnQual () (Ident () "Newtype")     , [ NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       , Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"-          , typeName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"+          , typeName = Ident () "Newtype"           }       ]     )
tests/imports/ImportList.hs.golden view
@@ -1,75 +1,75 @@ fromList-  [ ( Qual (ModuleName "Prelude") (Ident "Constructor1")+  [ ( Qual () (ModuleName () "Prelude") (Ident () "Constructor1")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor1"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor1"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Constructor2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataType")+  , ( Qual () (ModuleName () "Prelude") (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Newtype")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Newtype")     , [ NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "function")+  , ( Qual () (ModuleName () "Prelude") (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( UnQual (Ident "Constructor1")+  , ( UnQual () (Ident () "Constructor1")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor1"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor1"+          , typeName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "Constructor2")+  , ( UnQual () (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "DataType")+  , ( UnQual () (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "Newtype")+  , ( UnQual () (Ident () "Newtype")     , [ NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       ]     )-  , ( UnQual (Ident "function")+  , ( UnQual () (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )
tests/imports/SimpleImport.hs.golden view
@@ -1,247 +1,249 @@ fromList-  [ ( Qual (ModuleName "Prelude") (Ident "Class")+  [ ( Qual () (ModuleName () "Prelude") (Ident () "Class")     , [ Class-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Constructor1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Constructor1")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor1"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor1"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Constructor2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataType")+  , ( Qual () (ModuleName () "Prelude") (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "DataTypeWithSelectors")+  , ( Qual+        () (ModuleName () "Prelude") (Ident () "DataTypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"-          , typeName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"+          , typeName = Ident () "DataTypeWithSelectors"           }       , Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "Newtype")+  , ( Qual () (ModuleName () "Prelude") (Ident () "Newtype")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"-          , typeName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"+          , typeName = Ident () "Newtype"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "NewtypeWithSelectors")+  , ( Qual+        () (ModuleName () "Prelude") (Ident () "NewtypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"-          , typeName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"+          , typeName = Ident () "NewtypeWithSelectors"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "TypeSynonym")+  , ( Qual () (ModuleName () "Prelude") (Ident () "TypeSynonym")     , [ Type-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "TypeSynonym"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "TypeSynonym"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "function")+  , ( Qual () (ModuleName () "Prelude") (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "method1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "method1")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method1"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method1"+          , className = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "method2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "method2")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method2"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method2"+          , className = Ident () "Class"           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "selector1")+  , ( Qual () (ModuleName () "Prelude") (Ident () "selector1")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector1"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector1"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "selector2")+  , ( Qual () (ModuleName () "Prelude") (Ident () "selector2")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector2"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector2"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( Qual (ModuleName "Prelude") (Ident "unNewtype")+  , ( Qual () (ModuleName () "Prelude") (Ident () "unNewtype")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "unNewtype"-          , typeName = Ident "NewtypeWithSelectors"-          , constructors = [ Ident "NewtypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "unNewtype"+          , typeName = Ident () "NewtypeWithSelectors"+          , constructors = [ Ident () "NewtypeWithSelectors" ]           }       ]     )-  , ( UnQual (Ident "Class")+  , ( UnQual () (Ident () "Class")     , [ Class-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Class"           }       ]     )-  , ( UnQual (Ident "Constructor1")+  , ( UnQual () (Ident () "Constructor1")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor1"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor1"+          , typeName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "Constructor2")+  , ( UnQual () (Ident () "Constructor2")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Constructor2"-          , typeName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Constructor2"+          , typeName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "DataType")+  , ( UnQual () (Ident () "DataType")     , [ Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataType"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataType"           }       ]     )-  , ( UnQual (Ident "DataTypeWithSelectors")+  , ( UnQual () (Ident () "DataTypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"-          , typeName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"+          , typeName = Ident () "DataTypeWithSelectors"           }       , Data-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "DataTypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "DataTypeWithSelectors"           }       ]     )-  , ( UnQual (Ident "Newtype")+  , ( UnQual () (Ident () "Newtype")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"-          , typeName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"+          , typeName = Ident () "Newtype"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "Newtype"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "Newtype"           }       ]     )-  , ( UnQual (Ident "NewtypeWithSelectors")+  , ( UnQual () (Ident () "NewtypeWithSelectors")     , [ Constructor-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"-          , typeName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"+          , typeName = Ident () "NewtypeWithSelectors"           }       , NewType-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "NewtypeWithSelectors"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "NewtypeWithSelectors"           }       ]     )-  , ( UnQual (Ident "TypeSynonym")+  , ( UnQual () (Ident () "TypeSynonym")     , [ Type-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "TypeSynonym"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "TypeSynonym"           }       ]     )-  , ( UnQual (Ident "function")+  , ( UnQual () (Ident () "function")     , [ Value-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "function"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "function"           }       ]     )-  , ( UnQual (Ident "method1")+  , ( UnQual () (Ident () "method1")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method1"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method1"+          , className = Ident () "Class"           }       ]     )-  , ( UnQual (Ident "method2")+  , ( UnQual () (Ident () "method2")     , [ Method-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "method2"-          , className = Ident "Class"+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "method2"+          , className = Ident () "Class"           }       ]     )-  , ( UnQual (Ident "selector1")+  , ( UnQual () (Ident () "selector1")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector1"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector1"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( UnQual (Ident "selector2")+  , ( UnQual () (Ident () "selector2")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "selector2"-          , typeName = Ident "DataTypeWithSelectors"-          , constructors = [ Ident "DataTypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "selector2"+          , typeName = Ident () "DataTypeWithSelectors"+          , constructors = [ Ident () "DataTypeWithSelectors" ]           }       ]     )-  , ( UnQual (Ident "unNewtype")+  , ( UnQual () (Ident () "unNewtype")     , [ Selector-          { symbolModule = ModuleName "Prelude"-          , symbolName = Ident "unNewtype"-          , typeName = Ident "NewtypeWithSelectors"-          , constructors = [ Ident "NewtypeWithSelectors" ]+          { symbolModule = ModuleName () "Prelude"+          , symbolName = Ident () "unNewtype"+          , typeName = Ident () "NewtypeWithSelectors"+          , constructors = [ Ident () "NewtypeWithSelectors" ]           }       ]     )
tests/run.hs view
@@ -22,8 +22,8 @@ import Text.Printf import qualified Data.Foldable as F -import Language.Haskell.Exts.Annotated hiding (NewType)-import qualified Language.Haskell.Exts.Annotated as Syntax (DataOrNew(NewType))+import Language.Haskell.Exts hiding (DataOrNew(NewType))+import qualified Language.Haskell.Exts.Syntax as Syntax (DataOrNew(NewType)) import qualified Language.Haskell.Exts as U (ModuleName(ModuleName)) import Language.Haskell.Names import Language.Haskell.Names.Exports@@ -96,7 +96,7 @@ environmentTests = goldenTest path run where   run = do     baseEnvironment <- loadBase-    writeSymbols out (baseEnvironment Map.! (U.ModuleName "Prelude"))+    writeSymbols out (baseEnvironment Map.! (U.ModuleName () "Prelude"))   path = "tests/environment/Prelude.symbols"   out = path <.> "out"