Implement check of bidirectionalizability.
[darcs-mirror-sem_syn.git] / Type.hs
diff --git a/Type.hs b/Type.hs
index 9516006..af2e298 100644 (file)
--- a/Type.hs
+++ b/Type.hs
@@ -224,7 +224,9 @@ assignTypeVars tmpMap typeMap (Decl fname ftype ps e) =
                      do { es' <- mapM assignTypeVarsE es 
                         ; unifyFT t' (TFun [] (map typeofE es') (TVar i))
                         ; unifyT  t  (TVar i)
-                        ; return $ ECon id (TVar i) c es' }}
+                        ; return $ ECon id (TVar i) c es' }
+                 Nothing -> fail $ "No type " ++ show c ++ " in type map"
+             }
       assignTypeVarsE (EFun id t f es) =
           do { i <- newTypeVar
              ; case lookup f (typeMap ++ tmpMap)  of
@@ -263,4 +265,4 @@ assignTypeVars tmpMap typeMap (Decl fname ftype ps e) =
           TCon t (map (replaceTVar table) ts)
 
                      
-                          
\ No newline at end of file
+