geg
[clean-tests.git] / gengen / Data / GenType.icl
index a391391..553dac5 100644 (file)
@@ -263,6 +263,21 @@ typeName (TyNewType i _ _) = i.gtd_name
 typeName (TyObject i _) = i.gtd_name
 typeName (TyRecord i _) = i.grd_name
 
+typeGenType :: Type -> GenType
+typeGenType (TyBasic a) = GenTypeCons $ toString a
+typeGenType (TyRef a) = GenTypeCons $ toString a
+typeGenType (TyArrow l r) = GenTypeArrow (typeGenType l) (typeGenType r)
+typeGenType (TyArray s a) = GenTypeApp (GenTypeCons (toString s)) (typeGenType a)
+typeGenType (TyUList s a) = GenTypeApp (GenTypeCons (toString s)) (typeGenType a)
+typeGenType (TyUMaybe a) = GenTypeApp (GenTypeCons "_#Maybe") (typeGenType a)
+typeGenType (TyNewType _ _ a) = abort "typeGenType for newtypes not yet implemented\n"
+typeGenType (TyObject i _) = gent i.gtd_arity (GenTypeCons i.gtd_name)
+where
+       gent 0 t = t
+       gent n t = gent (dec n) (GenTypeApp t (GenTypeVar n))
+
+typeGenType (TyRecord i _) = i.grd_type
+
 instance isBuiltin String
 where
        isBuiltin s = [()\\(l, r)<-predef | l == s || r == s] =: [_:_]