comparison src/elab_util.sig @ 34:44b5405e74c7

Elaborating module projection
author Adam Chlipala <adamc@hcoop.net>
date Tue, 17 Jun 2008 16:38:54 -0400
parents 6049e2193bf2
children abb2b32c19fb
comparison
equal deleted inserted replaced
33:535c324f0b35 34:44b5405e74c7
48 48
49 val mapB : {kind : Elab.kind' -> Elab.kind', 49 val mapB : {kind : Elab.kind' -> Elab.kind',
50 con : 'context -> Elab.con' -> Elab.con', 50 con : 'context -> Elab.con' -> Elab.con',
51 bind : 'context * binder -> 'context} 51 bind : 'context * binder -> 'context}
52 -> 'context -> (Elab.con -> Elab.con) 52 -> 'context -> (Elab.con -> Elab.con)
53 val map : {kind : Elab.kind' -> Elab.kind',
54 con : Elab.con' -> Elab.con'}
55 -> Elab.con -> Elab.con
53 val exists : {kind : Elab.kind' -> bool, 56 val exists : {kind : Elab.kind' -> bool,
54 con : Elab.con' -> bool} -> Elab.con -> bool 57 con : Elab.con' -> bool} -> Elab.con -> bool
55 end 58 end
56 59
57 structure Exp : sig 60 structure Exp : sig
73 val exists : {kind : Elab.kind' -> bool, 76 val exists : {kind : Elab.kind' -> bool,
74 con : Elab.con' -> bool, 77 con : Elab.con' -> bool,
75 exp : Elab.exp' -> bool} -> Elab.exp -> bool 78 exp : Elab.exp' -> bool} -> Elab.exp -> bool
76 end 79 end
77 80
81 structure Sgn : sig
82 datatype binder =
83 RelC of string * Elab.kind
84 | NamedC of string * Elab.kind
85 | Str of string * Elab.sgn
86
87 val mapfoldB : {kind : (Elab.kind', 'state, 'abort) Search.mapfolder,
88 con : ('context, Elab.con', 'state, 'abort) Search.mapfolderB,
89 sgn_item : ('context, Elab.sgn_item', 'state, 'abort) Search.mapfolderB,
90 sgn : ('context, Elab.sgn', 'state, 'abort) Search.mapfolderB,
91 bind : 'context * binder -> 'context}
92 -> ('context, Elab.sgn, 'state, 'abort) Search.mapfolderB
93
94
95 val mapfold : {kind : (Elab.kind', 'state, 'abort) Search.mapfolder,
96 con : (Elab.con', 'state, 'abort) Search.mapfolder,
97 sgn_item : (Elab.sgn_item', 'state, 'abort) Search.mapfolder,
98 sgn : (Elab.sgn', 'state, 'abort) Search.mapfolder}
99 -> (Elab.sgn, 'state, 'abort) Search.mapfolder
100
101 val map : {kind : Elab.kind' -> Elab.kind',
102 con : Elab.con' -> Elab.con',
103 sgn_item : Elab.sgn_item' -> Elab.sgn_item',
104 sgn : Elab.sgn' -> Elab.sgn'}
105 -> Elab.sgn -> Elab.sgn
106
78 end 107 end
108
109 end