[BUGFIX: applying substitution destroyed types
martin.hofmann@uni-bamberg.de**20091009110713] hunk ./src/Context/ContextBuilder.hs 15
--- for translation 
+-- for translation
hunk ./src/Context/ContextBuilder.hs 27
-import Syntax.Types
+import Syntax.Types hiding (mkAppT)
hunk ./src/Syntax/Expressions.hs 389
-    apply u (TListE ts _)        = do 
+    apply u (TListE ts ty)        = do 
hunk ./src/Syntax/Expressions.hs 391
-        return $ TListE ts' $ mkListT . typeOf . head $ ts'
+        return $ TListE ts' $ mkListT . typeOf . head $ ts'  -- DANGER!!! Correctness of Types is not checked
hunk ./src/Syntax/Expressions.hs 395
-    apply u (TAppE a1 a2 _)      = do
+    apply u (TAppE a1 a2 ty)      = do
hunk ./src/Syntax/Expressions.hs 398
-        return $ TAppE a1' a2' $ AppT (typeOf a1') (typeOf a2')
-    apply u (TInfixE e1 op e2 _) = 
+        return $ TAppE a1' a2' $ mkAppT (typeOf a1')(typeOf a2')  -- DANGER!!! Correctness of Types is not checked
+    apply u (TInfixE e1 op e2 ty) = 
hunk ./src/Syntax/Expressions.hs 402
-           return $ TInfixE e1' op e2' (foldAppT (typeOf op) [typeOf e1', typeOf e2'])
+           return $ TInfixE e1' op e2' $ mkInfixT (typeOf op)(typeOf e1')(typeOf e2')
hunk ./src/Syntax/Types.hs 13
-    sectionType, argumentType, unArrowT, mkArrowT, mkListT, mkTupT, foldAppT,
+    sectionType, argumentType, unArrowT, 
+    mkArrowT, mkListT, mkTupT, mkAppT, mkInfixT, 
+    foldAppT,
hunk ./src/Syntax/Types.hs 175
---tyvars :: Type -> [Name]
---tyvars t@(VarT n) = [n]
---tyvars (AppT t1 t2) = (tyvars t1) `union` (tyvars t2)
---tyvars _   = [] -- VarT, ConT, TupltT, ArrowT,ListT
-
+-- TODO: DANGER !!! correctness of types is not checked !!!
hunk ./src/Syntax/Types.hs 178
-
+-- TODO: DANGER !!! correctness of types is not checked !!!
hunk ./src/Syntax/Types.hs 181
+-- TODO: DANGER !!! correctness of types is not checked !!!
+mkAppT :: Type -> Type -> Type
+mkAppT t1 t2 = sectionType t1
+-- TODO: DANGER !!! correctness of types is not checked !!!
+mkInfixT :: Type -> Type -> Type -> Type
+mkInfixT ct at1 at2 = sectionType . sectionType $ ct
hunk ./src/Syntax/Types.hs 188
+ 