diff --git a/curry-frontend.cabal b/curry-frontend.cabal
--- a/curry-frontend.cabal
+++ b/curry-frontend.cabal
@@ -1,5 +1,5 @@
 Name:          curry-frontend
-Version:       0.2.9
+Version:       0.2.10
 Cabal-Version: >= 1.6
 Synopsis:      Compile the functional logic language Curry to several intermediate formats
 Description:   The Curry Frontend consists of the executable program "cymake".
@@ -20,13 +20,13 @@
 
 Extra-Source-Files: LIESMICH
 Data-Files:    src/currydoc.css
-		    
 
+
 Executable cymake
   hs-source-dirs:   src
   Main-is:          cymake.hs
   Build-Depends:    base >= 3 && < 4, 
-                    curry-base >= 0.2.6, 
+                    curry-base >= 0.2.7, 
                     mtl, old-time, containers, pretty
   ghc-options:      -fwarn-unused-binds -fwarn-unused-imports  -auto-all 
   Other-Modules:    Curry.Syntax.Lexer, Curry.Syntax.LexComb
diff --git a/src/CurryCompilerOpts.hs b/src/CurryCompilerOpts.hs
--- a/src/CurryCompilerOpts.hs
+++ b/src/CurryCompilerOpts.hs
@@ -91,7 +91,7 @@
 	          "do not print warnings for overlapping rules",
 	   Option "" ["flat"] (NoArg Flat)
                   "generate FlatCurry code",
-	   Option "" ["extended-flat"] (NoArg ExtFlat)
+	   Option "" ["extflat"] (NoArg ExtFlat)
                   "generate FlatCurry code with source references",
 	   Option "" ["xml"] (NoArg FlatXML)
                   "generate flat xml code",
diff --git a/src/GenFlatCurry.hs b/src/GenFlatCurry.hs
--- a/src/GenFlatCurry.hs
+++ b/src/GenFlatCurry.hs
@@ -26,12 +26,10 @@
 import Curry.ExtendedFlat.Type
 import Curry.ExtendedFlat.TypeInference
 
-import Base {-(ArityEnv, ArityInfo(..), ModuleEnv,  
-	     TCEnv, TypeInfo(..), ValueEnv, ValueInfo(..),
-	     lookupValue, qualLookupTC,
-	     qualLookupArity, lookupArity,  internalError,
-             qualLookupValue)-}
+import Curry.ExtendedFlat.EraseTypes
 
+import Base
+
 import qualified IL.Type as IL
 import qualified IL.CurryToIL as IL
 
@@ -57,7 +55,8 @@
    = (prog', messages)
  where (prog, messages) 
            = run opts cEnv mEnv tyEnv tcEnv aEnv False (visitModule mod)
-       prog' = adjustTypeInfo $ patchPreludeFCY prog
+       prog' = -- eraseTypes $ 
+               adjustTypeInfo $ adjustTypeInfo $ patchPreludeFCY prog
 
 
 -- transforms intermediate language code (IL) to FlatCurry interfaces
@@ -196,7 +195,7 @@
 visitDataDecl :: IL.Decl -> FlatState TypeDecl
 visitDataDecl (IL.DataDecl qident arity constrs)
    = do cdecls <- mapM visitConstrDecl constrs
-	qname  <- visitQualIdent qident
+	qname  <- visitQualTypeIdent qident
 	vis    <- getVisibility False qident
 	return (Type qname vis [0 .. (arity - 1)] (concat cdecls))
 visitDataDecl _ = internalError "GenFlatCurry: no data declaration"
@@ -365,12 +364,12 @@
 	    is  = [0 .. length params - 1]
 	cdecls <- mapM (visitConstrIDecl mid (zip params is)) 
 		       (catMaybes constrs_)
-	qname  <- visitQualIdent qident
+	qname  <- visitQualTypeIdent qident
 	return (Type qname Public is cdecls)
 visitTypeIDecl (CS.ITypeDecl _ qident params typeexpr)
    = do let is = [0 .. (length params) - 1]
 	texpr <- visitType (fst (cs2ilType (zip params is) typeexpr))
-	qname <- visitQualIdent qident
+	qname <- visitQualTypeIdent qident
 	return (TypeSyn qname Public is texpr)
 visitTypeIDecl _ = internalError "GenFlatCurry: no type interface"
 
@@ -649,7 +648,7 @@
         tcEnv <- gets tConsEnvE
 	let typeexpr' = elimRecordTypes tyEnv tcEnv typeexpr
 	texpr <- visitType (fst (cs2ilType (zip params is) typeexpr'))
-	qname <- visitQualIdent qident
+	qname <- visitQualTypeIdent qident
 	vis   <- getVisibility False qident
 	return (TypeSyn qname vis is texpr)
 genTypeSynonym _ = internalError "GenFlatCurry: no type synonym interface"
@@ -1001,9 +1000,21 @@
 -- whole implementation. We won't depart from that for mere
 -- aesthetic reasons. (hsi)
 lookupIdType :: QualIdent -> FlatState (Maybe TypeExpr)
+lookupIdType (QualIdent Nothing (Ident _ "[]" _))
+    = return (Just l0)
+      where l0 = TCons (mkQName ("Prelude", "[]")) [TVar 0]
 lookupIdType (QualIdent Nothing (Ident _ ":" _))
     = return (Just (FuncType (TVar 0) (FuncType (l0) (l0))))
       where l0 = TCons (mkQName ("Prelude", "[]")) [TVar 0]
+lookupIdType (QualIdent Nothing (Ident _ "()" _))
+    = return (Just l0)
+      where l0 = TCons (mkQName ("Prelude", "()")) []
+lookupIdType (QualIdent Nothing (Ident _ t@('(':',':r) _))
+    = return (Just funtype)
+      where tupleArity = length r + 1
+            argTypes   = map TVar [1..tupleArity]
+            contype    = TCons (mkQName ("Prelude", t)) argTypes
+            funtype    = foldr FuncType contype argTypes
 lookupIdType qid
    = do aEnv <- gets typeEnvE
         lt <- gets localTypes
diff --git a/src/Modules.lhs b/src/Modules.lhs
--- a/src/Modules.lhs
+++ b/src/Modules.lhs
@@ -194,8 +194,14 @@
 >		     else tyEnvI
 >         msgs = warnCheck m tyEnv impDs topDs
 >	  withExt = withExtensions opts
+>         -- fre: replaced the argument aEnv by aEnv'' in the
+>         --      expression below. This fixed a bug that occured
+>         --      when one imported a module qualified that
+>         --      exported a function from another module.
+>         --      However, there is now a cyclic dependecy 
+>         --      but tests didn't show any problems.
 >         (pEnv',topDs') = precCheck m pEnv 
->		           $ syntaxCheck withExt m iEnv aEnv tyEnv tcEnv
+>		           $ syntaxCheck withExt m iEnv aEnv'' tyEnv tcEnv
 >			   $ kindCheck m tcEnv topDs
 >         (tcEnv',tyEnv') = typeCheck m tcEnv tyEnv topDs'
 >         ds' = impDs ++ qual m tyEnv' topDs'
