@@ -157,7 +157,8 @@ implementation DecEq a => DecEq (List a) where
157
157
158
158
159
159
-- For the primitives, we have to cheat because we don't have access to their
160
- -- internal implementations.
160
+ -- internal implementations. We postulate the inequality proofs because we're
161
+ -- never going to have to compute anything from them.
161
162
162
163
-- ------------------------------------------------------------------------------
163
164
-- Int
@@ -169,8 +170,7 @@ implementation DecEq Int where
169
170
False => No primitiveNotEq
170
171
where primitiveEq : x = y
171
172
primitiveEq = really_believe_me (Refl {x})
172
- primitiveNotEq : x = y -> Void
173
- primitiveNotEq = really_believe_me (id {a = x = y})
173
+ postulate primitiveNotEq : x = y -> Void
174
174
175
175
-- ------------------------------------------------------------------------------
176
176
-- Char
@@ -182,8 +182,7 @@ implementation DecEq Char where
182
182
False => No primitiveNotEq
183
183
where primitiveEq : x = y
184
184
primitiveEq = really_believe_me (Refl {x})
185
- primitiveNotEq : x = y -> Void
186
- primitiveNotEq = really_believe_me (id {a = x = y})
185
+ postulate primitiveNotEq : x = y -> Void
187
186
188
187
-- ------------------------------------------------------------------------------
189
188
-- Integer
@@ -195,8 +194,7 @@ implementation DecEq Integer where
195
194
False => No primitiveNotEq
196
195
where primitiveEq : x = y
197
196
primitiveEq = really_believe_me (Refl {x})
198
- primitiveNotEq : x = y -> Void
199
- primitiveNotEq = really_believe_me (id {a = x = y})
197
+ postulate primitiveNotEq : x = y -> Void
200
198
201
199
-- ------------------------------------------------------------------------------
202
200
-- String
@@ -208,8 +206,7 @@ implementation DecEq String where
208
206
False => No primitiveNotEq
209
207
where primitiveEq : x = y
210
208
primitiveEq = really_believe_me (Refl {x})
211
- primitiveNotEq : x = y -> Void
212
- primitiveNotEq = really_believe_me (id {a = x = y})
209
+ postulate primitiveNotEq : x = y -> Void
213
210
214
211
-- ------------------------------------------------------------------------------
215
212
-- Ptr
@@ -221,8 +218,7 @@ implementation DecEq Ptr where
221
218
False => No primitiveNotEq
222
219
where primitiveEq : x = y
223
220
primitiveEq = really_believe_me (Refl {x})
224
- primitiveNotEq : x = y -> Void
225
- primitiveNotEq = really_believe_me (id {a = x = y})
221
+ postulate primitiveNotEq : x = y -> Void
226
222
227
223
-- ------------------------------------------------------------------------------
228
224
-- ManagedPtr
@@ -234,5 +230,4 @@ implementation DecEq ManagedPtr where
234
230
False => No primitiveNotEq
235
231
where primitiveEq : x = y
236
232
primitiveEq = really_believe_me (Refl {x})
237
- primitiveNotEq : x = y -> Void
238
- primitiveNotEq = really_believe_me (id {a = x = y})
233
+ postulate primitiveNotEq : x = y -> Void
0 commit comments