-
-
---------------------------------
--- The "system names" are extra implicit names *bound* by the decl.
--- They are kept in a list rather than a tuple
--- to make the renamer easier.
-
-type ClassSysNames name = [name]
--- For class decls they are:
--- [tycon, datacon wrapper, datacon worker,
--- superclass selector 1, ..., superclass selector n]
-
-type DataSysNames name = [name]
--- For data decls they are
--- [from, to]
--- where from :: T -> Tring
--- to :: Tring -> T
-
-tyClDeclSysNames :: TyClDecl name pat -> [(name, SrcLoc)]
--- Similar to tyClDeclNames, but returns the "implicit"
--- or "system" names of the declaration
-
-tyClDeclSysNames (ClassDecl {tcdSysNames = names, tcdLoc = loc})
- = [(n,loc) | n <- names]
-tyClDeclSysNames (TyData {tcdCons = cons, tcdSysNames = names, tcdLoc = loc})
- = [(n,loc) | n <- names] ++
- [(wkr_name,loc) | ConDecl _ wkr_name _ _ _ loc <- cons]
-tyClDeclSysNames decl = []
-
-
-mkClassDeclSysNames :: (name, name, name, [name]) -> [name]
-getClassDeclSysNames :: [name] -> (name, name, name, [name])
-mkClassDeclSysNames (a,b,c,ds) = a:b:c:ds
-getClassDeclSysNames (a:b:c:ds) = (a,b,c,ds)