diff src/core_util.sig @ 193:8a70e2919e86

Specialization of single-parameter datatypes
author Adam Chlipala <adamc@hcoop.net>
date Fri, 08 Aug 2008 17:55:51 -0400
parents 8e9f97508f0d
children ab86aa858e6c
line wrap: on
line diff
--- a/src/core_util.sig	Fri Aug 08 10:59:06 2008 -0400
+++ b/src/core_util.sig	Fri Aug 08 17:55:51 2008 -0400
@@ -30,6 +30,8 @@
 val classifyDatatype : (string * int * Core.con option) list -> Core.datatype_kind
 
 structure Kind : sig
+    val compare : Core.kind * Core.kind -> order
+
     val mapfold : (Core.kind', 'state, 'abort) Search.mapfolder
                   -> (Core.kind, 'state, 'abort) Search.mapfolder
     val map : (Core.kind' -> Core.kind') -> Core.kind -> Core.kind
@@ -37,6 +39,8 @@
 end
 
 structure Con : sig
+    val compare : Core.con * Core.con -> order
+
     datatype binder =
              Rel of string * Core.kind
            | Named of string * int * Core.kind * Core.con option
@@ -64,6 +68,10 @@
 
     val exists : {kind : Core.kind' -> bool,
                   con : Core.con' -> bool} -> Core.con -> bool
+
+    val foldMap : {kind : Core.kind' * 'state -> Core.kind' * 'state,
+                   con : Core.con' * 'state -> Core.con' * 'state}
+                  -> 'state -> Core.con -> Core.con * 'state
 end
 
 structure Exp : sig