* Predicate whether the outer type is a builtin type
*/
class isBuiltin a :: a -> Bool
-instance isBuiltin Type
-instance isBuiltin GType
+instance isBuiltin Type, GType
+
+/**
+ * Predicate whether the outer type is a basic type
+ * Int, Bool, Char, Real, World, File, Dynamic
+ */
+class isBasic a :: a -> Bool
+instance isBasic Type, GType
/**
* Replace builtin constructors with their pretty names
*/
class replaceBuiltins a :: a -> a
-instance replaceBuiltins Type
-instance replaceBuiltins GType
-instance replaceBuiltins GenType
+instance replaceBuiltins Type, GType, GenType
/**
* Creates a deep representation of the type