[remove TiData, TypeUtils, and MultiModuleBasics modules
John Meacham <john@repetae.net>**20060407102355] hunk ./E/FromHs.hs 49
+import FrontEnd.Tc.Module(TiData(..))
hunk ./E/FromHs.hs 51
-import FrontEnd.TiData
hunk ./FrontEnd/Class.hs 84
-import TypeUtils
hunk ./FrontEnd/Class.hs 443
+flattenLeftTypeApplication :: HsType -> [HsType]
+flattenLeftTypeApplication t
+   = flatTypeAcc t []
+   where
+   flatTypeAcc (HsTyApp t1 t2) acc
+      = flatTypeAcc t1 (t2:acc)
+   flatTypeAcc nonTypApp acc
+      = nonTypApp:acc
+
hunk ./FrontEnd/Exports.hs 4
-module FrontEnd.Exports(determineExports) where
+module FrontEnd.Exports(determineExports,ModInfo(..),modInfoHsModule_s) where
hunk ./FrontEnd/Exports.hs 20
-import MultiModuleBasics
hunk ./FrontEnd/Exports.hs 25
+data ModInfo = ModInfo {
+    modInfoName :: Module,
+    modInfoDefs :: [(Name,SrcLoc,[Name])],
+    modInfoConsArity :: [(Name,Int)],
+    modInfoExport :: [Name],
+    modInfoImport :: [(Name,[Name])],
+    modInfoHsModule :: HsModule,
+    modInfoOptions :: Opt
+    }
+   {-! derive: update !-}
+
+instance Eq ModInfo where
+    a == b = modInfoName a == modInfoName b
+
+instance Ord ModInfo where
+    compare a b = compare (modInfoName a) (modInfoName b)
+
hunk ./FrontEnd/FrontEnd.hs 3
-    TiData(..)
+    Tc.TiData(..)
hunk ./FrontEnd/FrontEnd.hs 20
-import MultiModuleBasics
hunk ./FrontEnd/FrontEnd.hs 25
-import FrontEnd.TiData
hunk ./FrontEnd/FrontEnd.hs 34
-               -> (Ho -> Ho -> TiData -> IO Ho)  -- ^ routine which takes the global ho, the partial local ho and the output of the front end, and returns the completed ho.
+               -> (Ho -> Ho -> Tc.TiData -> IO Ho)  -- ^ routine which takes the global ho, the partial local ho and the output of the front end, and returns the completed ho.
hunk ./FrontEnd/FrontEnd.hs 51
-doModules :: (Ho -> Ho -> TiData -> IO Ho) -> Ho -> [HsModule] -> IO Ho
+doModules :: (Ho -> Ho -> Tc.TiData -> IO Ho) -> Ho -> [HsModule] -> IO Ho
hunk ./FrontEnd/MultiModuleBasics.hs 1
-{-------------------------------------------------------------------------------
-
-    this is not what this module does at all.
-
-        Copyright:              The Hatchet Team (see file Contributors)
-
-        Module:                 MultiModuleBasics
-
-        Description:            More Support code for type checking multi-module
-                                programs.
-
-        Primary Authors:        Bryn Humberstone
-
-        Notes:                  See the file License for license information
-
--------------------------------------------------------------------------------}
-
--- TODO - get rid of
-
-module MultiModuleBasics where
-
-import HsSyn
-import FrontEnd.SrcLoc
-import qualified Data.Map as M
-import Options
-import Name.Name
-import FrontEnd.Infix
-
---------------------------------------------------------------------------------
-
-
-data ModInfo = ModInfo {
-    modInfoName :: Module,
-    modInfoDefs :: [(Name,SrcLoc,[Name])],
-    modInfoConsArity :: [(Name,Int)],
-    modInfoExport :: [Name],
-    modInfoImport :: [(Name,[Name])],
-    modInfoHsModule :: HsModule,
-    modInfoOptions :: Opt
-    }
-   {-! derive: update !-}
-
-instance Eq ModInfo where
-    a == b = modInfoName a == modInfoName b
-
-instance Ord ModInfo where
-    compare a b = compare (modInfoName a) (modInfoName b)
-
-
-{-
-
-data ModEnv = ModEnv {
-    modEnvModules :: M.Map Module ModInfo,
-    modEnvVarAssumptions :: Env Scheme,          -- used for typechecking
-    modEnvDConsAssumptions :: Env Scheme,        -- used for typechecking
-    modEnvAllAssumptions :: M.Map Name Scheme,          -- used for code generation
-    modEnvFixities :: FixityMap,
-    modEnvKinds :: KindEnv,                      -- used for typechecking
-    modEnvClassHierarchy :: ClassHierarchy,
-    modEnvTypeSynonyms :: TypeSynonyms,
-    modEnvLiftedInstances :: M.Map HsName HsDecl
-    }
-   {-! derive: update, Monoid !-}
-
-emptyModEnv :: ModEnv
-emptyModEnv = mempty
-
--}
rmfile ./FrontEnd/MultiModuleBasics.hs
hunk ./FrontEnd/Tc/Module.hs 28
-import FrontEnd.TiData
hunk ./FrontEnd/Tc/Module.hs 29
+import FrontEnd.Exports
hunk ./FrontEnd/Tc/Module.hs 33
-import MultiModuleBasics
hunk ./FrontEnd/Tc/Module.hs 53
+-- Extra data produced by the front end, used to fill in the Ho file.
+data TiData = TiData {
+    tiDataLiftedInstances :: Map.Map Name HsDecl,
+    tiDataDecls      :: [HsDecl],
+    tiDataModules    :: [(Module,HsModule)],
+    tiModuleOptions  :: [(Module,Opt)],
+    tiCheckedRules   :: [Rule],
+    tiCoerce         :: Map.Map Name CoerceTerm,
+    tiAllAssumptions :: Map.Map Name Type
+}
hunk ./FrontEnd/TiData.hs 1
-module FrontEnd.TiData where
-
-import Data.Map as Map
-
-import FrontEnd.Tc.Type
-import HsSyn
-import Name.Name
-import Options
-import Representation
-
--- Extra data produced by the front end, used to fill in the Ho file.
-data TiData = TiData {
-    tiDataLiftedInstances :: Map.Map Name HsDecl,
-    tiDataDecls      :: [HsDecl],
-    tiDataModules    :: [(Module,HsModule)],
-    tiModuleOptions  :: [(Module,Opt)],
-    tiCheckedRules   :: [Rule],
-    tiCoerce         :: Map.Map Name CoerceTerm,
-    tiAllAssumptions :: Map.Map Name Type
-}
rmfile ./FrontEnd/TiData.hs
hunk ./FrontEnd/TypeUtils.hs 1
-{-------------------------------------------------------------------------------
-
-        Copyright:              The Hatchet Team (see file Contributors)
-
-        Module:                 TypeUtils
-
-        Description:            Utility functions for manipulating types,
-                                and converting between the syntactic
-                                representation of types and the internal
-                                representation of types.
-
-        Primary Authors:        Bernie Pope
-
-        Notes:                  See the file License for license information
-
--------------------------------------------------------------------------------}
-
-module TypeUtils (flattenLeftTypeApplication) where
-
-import HsSyn
-import Representation
-import Type           (tv,tTTuple)
-import FrontEnd.KindInfer
-import Atom
-import Name.Name
-import Control.Monad.Identity
-
--- one sig can be given to multiple names, hence
--- the multiple assumptions in the output
-
-{-
-aHsTypeSigToAssumps :: KindEnv -> HsDecl -> [Assump]
-aHsTypeSigToAssumps kt sig@(HsTypeSig _ names qualType)
-   = [n :>: scheme | n <- names]
-   where
-   scheme = aHsQualTypeToScheme newEnv qualType
-   --newEnv = kiHsQualType kt qualType
-   newEnv = kt
--}
-
-
---aHsAsstToPred :: KindEnv -> HsAsst -> Pred
---aHsAsstToPred kt (className, varName)
-   -- = IsIn className (TVar $ Tyvar varName (kindOf varName kt))
---   = IsIn className (TVar $ tyvar varName (kindOf className kt) Nothing)
-
--- one sig can be given to multiple names, hence
--- the multiple assumptions in the output
-
-{-
-aHsTypeSigToAssumps :: KindEnv -> HsDecl -> [Assump]
-aHsTypeSigToAssumps kt sig@(HsTypeSig _ names qualType) = [ toName Val n :>: scheme | n <- names] where
-    Identity scheme = hsQualTypeToScheme kt qualType
-   --scheme = aHsQualTypeToScheme newEnv qualType
-   --newEnv = kiHsQualType kt qualType
-
-   converts leftmost type applications into lists
-
-   (((TC v1) v2) v3) => [TC, v1, v2, v3]
-
--}
-flattenLeftTypeApplication :: HsType -> [HsType]
-flattenLeftTypeApplication t
-   = flatTypeAcc t []
-   where
-   flatTypeAcc (HsTyApp t1 t2) acc
-      = flatTypeAcc t1 (t2:acc)
-   flatTypeAcc nonTypApp acc
-      = nonTypApp:acc
-
--- qualifies a type assumption to a given module, unless
--- it is already qualified
-
---qualifyAssump :: Module -> Assump -> Assump
---qualifyAssump mod assump
---   | isQual ident = assump  -- do nothing
---   | otherwise = makeAssump newQualIdent scheme
---   where
---   scheme :: Scheme
---   scheme = assumpScheme assump
---   ident :: Name
---   ident = assumpId assump
---   newQualIdent :: Name
---   newQualIdent = Qual mod $ HsIdent $ show ident
-
rmfile ./FrontEnd/TypeUtils.hs