comparison src/core_util.sig @ 23:bfa2e9ae4df8

Tree-shaking
author Adam Chlipala <adamc@hcoop.net>
date Sun, 08 Jun 2008 17:15:09 -0400
parents 067029c748e9
children 813e5a52063d
comparison
equal deleted inserted replaced
22:d8850cc06d24 23:bfa2e9ae4df8
53 53
54 val mapB : {kind : Core.kind' -> Core.kind', 54 val mapB : {kind : Core.kind' -> Core.kind',
55 con : 'context -> Core.con' -> Core.con', 55 con : 'context -> Core.con' -> Core.con',
56 bind : 'context * binder -> 'context} 56 bind : 'context * binder -> 'context}
57 -> 'context -> (Core.con -> Core.con) 57 -> 'context -> (Core.con -> Core.con)
58
59 val fold : {kind : Core.kind' * 'state -> 'state,
60 con : Core.con' * 'state -> 'state}
61 -> 'state -> Core.con -> 'state
62
58 val exists : {kind : Core.kind' -> bool, 63 val exists : {kind : Core.kind' -> bool,
59 con : Core.con' -> bool} -> Core.con -> bool 64 con : Core.con' -> bool} -> Core.con -> bool
60 end 65 end
61 66
62 structure Exp : sig 67 structure Exp : sig
83 val mapB : {kind : Core.kind' -> Core.kind', 88 val mapB : {kind : Core.kind' -> Core.kind',
84 con : 'context -> Core.con' -> Core.con', 89 con : 'context -> Core.con' -> Core.con',
85 exp : 'context -> Core.exp' -> Core.exp', 90 exp : 'context -> Core.exp' -> Core.exp',
86 bind : 'context * binder -> 'context} 91 bind : 'context * binder -> 'context}
87 -> 'context -> (Core.exp -> Core.exp) 92 -> 'context -> (Core.exp -> Core.exp)
93
94 val fold : {kind : Core.kind' * 'state -> 'state,
95 con : Core.con' * 'state -> 'state,
96 exp : Core.exp' * 'state -> 'state}
97 -> 'state -> Core.exp -> 'state
98
88 val exists : {kind : Core.kind' -> bool, 99 val exists : {kind : Core.kind' -> bool,
89 con : Core.con' -> bool, 100 con : Core.con' -> bool,
90 exp : Core.exp' -> bool} -> Core.exp -> bool 101 exp : Core.exp' -> bool} -> Core.exp -> bool
91 end 102 end
92 103
97 con : ('context, Core.con', 'state, 'abort) Search.mapfolderB, 108 con : ('context, Core.con', 'state, 'abort) Search.mapfolderB,
98 exp : ('context, Core.exp', 'state, 'abort) Search.mapfolderB, 109 exp : ('context, Core.exp', 'state, 'abort) Search.mapfolderB,
99 decl : ('context, Core.decl', 'state, 'abort) Search.mapfolderB, 110 decl : ('context, Core.decl', 'state, 'abort) Search.mapfolderB,
100 bind : 'context * binder -> 'context} 111 bind : 'context * binder -> 'context}
101 -> ('context, Core.decl, 'state, 'abort) Search.mapfolderB 112 -> ('context, Core.decl, 'state, 'abort) Search.mapfolderB
113 val mapfold : {kind : (Core.kind', 'state, 'abort) Search.mapfolder,
114 con : (Core.con', 'state, 'abort) Search.mapfolder,
115 exp : (Core.exp', 'state, 'abort) Search.mapfolder,
116 decl : (Core.decl', 'state, 'abort) Search.mapfolder}
117 -> (Core.decl, 'state, 'abort) Search.mapfolder
118
119 val fold : {kind : Core.kind' * 'state -> 'state,
120 con : Core.con' * 'state -> 'state,
121 exp : Core.exp' * 'state -> 'state,
122 decl : Core.decl' * 'state -> 'state}
123 -> 'state -> Core.decl -> 'state
102 end 124 end
103 125
104 structure File : sig 126 structure File : sig
105 datatype binder = datatype Exp.binder 127 datatype binder = datatype Exp.binder
106 128
109 exp : ('context, Core.exp', 'state, 'abort) Search.mapfolderB, 131 exp : ('context, Core.exp', 'state, 'abort) Search.mapfolderB,
110 decl : ('context, Core.decl', 'state, 'abort) Search.mapfolderB, 132 decl : ('context, Core.decl', 'state, 'abort) Search.mapfolderB,
111 bind : 'context * binder -> 'context} 133 bind : 'context * binder -> 'context}
112 -> ('context, Core.file, 'state, 'abort) Search.mapfolderB 134 -> ('context, Core.file, 'state, 'abort) Search.mapfolderB
113 135
136 val mapfold : {kind : (Core.kind', 'state, 'abort) Search.mapfolder,
137 con : (Core.con', 'state, 'abort) Search.mapfolder,
138 exp : (Core.exp', 'state, 'abort) Search.mapfolder,
139 decl : (Core.decl', 'state, 'abort) Search.mapfolder}
140 -> (Core.file, 'state, 'abort) Search.mapfolder
141
114 val mapB : {kind : Core.kind' -> Core.kind', 142 val mapB : {kind : Core.kind' -> Core.kind',
115 con : 'context -> Core.con' -> Core.con', 143 con : 'context -> Core.con' -> Core.con',
116 exp : 'context -> Core.exp' -> Core.exp', 144 exp : 'context -> Core.exp' -> Core.exp',
117 decl : 'context -> Core.decl' -> Core.decl', 145 decl : 'context -> Core.decl' -> Core.decl',
118 bind : 'context * binder -> 'context} 146 bind : 'context * binder -> 'context}
119 -> 'context -> Core.file -> Core.file 147 -> 'context -> Core.file -> Core.file
148
149 val fold : {kind : Core.kind' * 'state -> 'state,
150 con : Core.con' * 'state -> 'state,
151 exp : Core.exp' * 'state -> 'state,
152 decl : Core.decl' * 'state -> 'state}
153 -> 'state -> Core.file -> 'state
120 end 154 end
121 155
122 end 156 end