From b9b67597324deb6e6dfc8ef33c60c110abc2af7b Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Fri, 8 Aug 2008 17:55:51 -0400 Subject: Specialization of single-parameter datatypes --- src/core_util.sig | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/core_util.sig') diff --git a/src/core_util.sig b/src/core_util.sig index ebfcf54b..aa957794 100644 --- a/src/core_util.sig +++ b/src/core_util.sig @@ -30,6 +30,8 @@ signature CORE_UTIL = sig 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 @@ structure Kind : sig 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 @@ structure Con : sig 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 -- cgit v1.2.3