19 open Hints_declaration
45 type ('output, 'input, 't) iO =
46 | Interact of 'output * ('input -> ('output, 'input, 't) iO)
48 | Wrong of Errors.errmsg
50 (** val iO_rect_Type4 :
51 ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> 'a4) -> 'a4) -> ('a3 ->
52 'a4) -> (Errors.errmsg -> 'a4) -> ('a1, 'a2, 'a3) iO -> 'a4 **)
53 let rec iO_rect_Type4 h_Interact h_Value h_Wrong = function
54 | Interact (o, x_4685) ->
55 h_Interact o x_4685 (fun x_4684 ->
56 iO_rect_Type4 h_Interact h_Value h_Wrong (x_4685 x_4684))
57 | Value x_4686 -> h_Value x_4686
58 | Wrong x_4687 -> h_Wrong x_4687
60 (** val iO_rect_Type3 :
61 ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> 'a4) -> 'a4) -> ('a3 ->
62 'a4) -> (Errors.errmsg -> 'a4) -> ('a1, 'a2, 'a3) iO -> 'a4 **)
63 let rec iO_rect_Type3 h_Interact h_Value h_Wrong = function
64 | Interact (o, x_4701) ->
65 h_Interact o x_4701 (fun x_4700 ->
66 iO_rect_Type3 h_Interact h_Value h_Wrong (x_4701 x_4700))
67 | Value x_4702 -> h_Value x_4702
68 | Wrong x_4703 -> h_Wrong x_4703
70 (** val iO_rect_Type2 :
71 ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> 'a4) -> 'a4) -> ('a3 ->
72 'a4) -> (Errors.errmsg -> 'a4) -> ('a1, 'a2, 'a3) iO -> 'a4 **)
73 let rec iO_rect_Type2 h_Interact h_Value h_Wrong = function
74 | Interact (o, x_4709) ->
75 h_Interact o x_4709 (fun x_4708 ->
76 iO_rect_Type2 h_Interact h_Value h_Wrong (x_4709 x_4708))
77 | Value x_4710 -> h_Value x_4710
78 | Wrong x_4711 -> h_Wrong x_4711
80 (** val iO_rect_Type1 :
81 ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> 'a4) -> 'a4) -> ('a3 ->
82 'a4) -> (Errors.errmsg -> 'a4) -> ('a1, 'a2, 'a3) iO -> 'a4 **)
83 let rec iO_rect_Type1 h_Interact h_Value h_Wrong = function
84 | Interact (o, x_4717) ->
85 h_Interact o x_4717 (fun x_4716 ->
86 iO_rect_Type1 h_Interact h_Value h_Wrong (x_4717 x_4716))
87 | Value x_4718 -> h_Value x_4718
88 | Wrong x_4719 -> h_Wrong x_4719
90 (** val iO_rect_Type0 :
91 ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> 'a4) -> 'a4) -> ('a3 ->
92 'a4) -> (Errors.errmsg -> 'a4) -> ('a1, 'a2, 'a3) iO -> 'a4 **)
93 let rec iO_rect_Type0 h_Interact h_Value h_Wrong = function
94 | Interact (o, x_4725) ->
95 h_Interact o x_4725 (fun x_4724 ->
96 iO_rect_Type0 h_Interact h_Value h_Wrong (x_4725 x_4724))
97 | Value x_4726 -> h_Value x_4726
98 | Wrong x_4727 -> h_Wrong x_4727
100 (** val iO_inv_rect_Type4 :
101 ('a1, 'a2, 'a3) iO -> ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> __
102 -> 'a4) -> __ -> 'a4) -> ('a3 -> __ -> 'a4) -> (Errors.errmsg -> __ ->
104 let iO_inv_rect_Type4 hterm h1 h2 h3 =
105 let hcut = iO_rect_Type4 h1 h2 h3 hterm in hcut __
107 (** val iO_inv_rect_Type3 :
108 ('a1, 'a2, 'a3) iO -> ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> __
109 -> 'a4) -> __ -> 'a4) -> ('a3 -> __ -> 'a4) -> (Errors.errmsg -> __ ->
111 let iO_inv_rect_Type3 hterm h1 h2 h3 =
112 let hcut = iO_rect_Type3 h1 h2 h3 hterm in hcut __
114 (** val iO_inv_rect_Type2 :
115 ('a1, 'a2, 'a3) iO -> ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> __
116 -> 'a4) -> __ -> 'a4) -> ('a3 -> __ -> 'a4) -> (Errors.errmsg -> __ ->
118 let iO_inv_rect_Type2 hterm h1 h2 h3 =
119 let hcut = iO_rect_Type2 h1 h2 h3 hterm in hcut __
121 (** val iO_inv_rect_Type1 :
122 ('a1, 'a2, 'a3) iO -> ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> __
123 -> 'a4) -> __ -> 'a4) -> ('a3 -> __ -> 'a4) -> (Errors.errmsg -> __ ->
125 let iO_inv_rect_Type1 hterm h1 h2 h3 =
126 let hcut = iO_rect_Type1 h1 h2 h3 hterm in hcut __
128 (** val iO_inv_rect_Type0 :
129 ('a1, 'a2, 'a3) iO -> ('a1 -> ('a2 -> ('a1, 'a2, 'a3) iO) -> ('a2 -> __
130 -> 'a4) -> __ -> 'a4) -> ('a3 -> __ -> 'a4) -> (Errors.errmsg -> __ ->
132 let iO_inv_rect_Type0 hterm h1 h2 h3 =
133 let hcut = iO_rect_Type0 h1 h2 h3 hterm in hcut __
135 (** val iO_discr : ('a1, 'a2, 'a3) iO -> ('a1, 'a2, 'a3) iO -> __ **)
137 Logic.eq_rect_Type2 x
139 | Interact (a0, a10) -> Obj.magic (fun _ dH -> dH __ __)
140 | Value a0 -> Obj.magic (fun _ dH -> dH __)
141 | Wrong a0 -> Obj.magic (fun _ dH -> dH __)) y
143 (** val iO_jmdiscr : ('a1, 'a2, 'a3) iO -> ('a1, 'a2, 'a3) iO -> __ **)
145 Logic.eq_rect_Type2 x
147 | Interact (a0, a10) -> Obj.magic (fun _ dH -> dH __ __)
148 | Value a0 -> Obj.magic (fun _ dH -> dH __)
149 | Wrong a0 -> Obj.magic (fun _ dH -> dH __)) y
154 ('a1, 'a2, 'a3) iO -> ('a3 -> ('a1, 'a2, 'a4) iO) -> ('a1, 'a2, 'a4) iO **)
157 | Interact (out, k) -> Interact (out, (fun res -> bindIO (k res) f))
161 (** val iOMonad : Monad.monadProps **)
163 Monad.makeMonadProps (fun _ x -> Value x) (fun _ _ -> bindIO)
165 (** val bindIO2 : __ -> ('a3 -> 'a4 -> __) -> __ **)
167 Monad.m_bind2 (Monad.max_def iOMonad) m f
169 (** val iORel : Monad.monadRel **)
173 (** val pred_io_inject :
174 ('a1, 'a2, 'a3) iO -> ('a1, 'a2, 'a3 Types.sig0) iO **)
175 let rec pred_io_inject a =
178 (fun _ -> Interact (o, (fun x -> pred_io_inject (f x))))
180 (fun _ -> Obj.magic (Monad.m_return0 (Monad.max_def iOMonad) x))
181 | Wrong e -> (fun _ -> Wrong e)) __
183 (** val iOPred : Monad.injMonadPred **)
185 { Monad.im_pred = Monad.Mk_MonadPred; Monad.mp_inject = (fun _ _ a_sig ->
186 let a = a_sig in Obj.magic (pred_io_inject (Obj.magic a))) }
188 (** val err_to_io : 'a3 Errors.res -> ('a1, 'a2, 'a3) iO **)
189 let err_to_io = function
190 | Errors.OK v' -> Value v'
191 | Errors.Error m -> Wrong m
193 (** val dpi1__o__err_to_io__o__inject :
194 ('a2 Errors.res, 'a3) Types.dPair -> ('a1, 'a4, 'a2) iO Types.sig0 **)
195 let dpi1__o__err_to_io__o__inject x4 =
196 err_to_io x4.Types.dpi1
198 (** val eject__o__err_to_io__o__inject :
199 'a2 Errors.res Types.sig0 -> ('a1, 'a3, 'a2) iO Types.sig0 **)
200 let eject__o__err_to_io__o__inject x4 =
201 err_to_io (Types.pi1 x4)
203 (** val err_to_io__o__inject :
204 'a2 Errors.res -> ('a1, 'a3, 'a2) iO Types.sig0 **)
205 let err_to_io__o__inject x3 =
208 (** val dpi1__o__err_to_io :
209 ('a2 Errors.res, 'a3) Types.dPair -> ('a1, 'a4, 'a2) iO **)
210 let dpi1__o__err_to_io x4 =
211 err_to_io x4.Types.dpi1
213 (** val eject__o__err_to_io :
214 'a2 Errors.res Types.sig0 -> ('a1, 'a3, 'a2) iO **)
215 let eject__o__err_to_io x4 =
216 err_to_io (Types.pi1 x4)
218 (** val err_to_io_sig :
219 'a3 Types.sig0 Errors.res -> ('a1, 'a2, 'a3 Types.sig0) iO **)
220 let err_to_io_sig = function
221 | Errors.OK v' -> Value v'
222 | Errors.Error m -> Wrong m
224 (** val io_inject_0 : ('a1, 'a2, 'a3) iO -> ('a1, 'a2, 'a3 Types.sig0) iO **)
225 let rec io_inject_0 a =
227 | Interact (out, k) ->
228 (fun _ -> Interact (out, (fun v -> io_inject_0 (k v))))
229 | Value c -> (fun _ -> Value c)
230 | Wrong m -> (fun _ -> Wrong m)) __
233 ('a1, 'a2, 'a3) iO Types.option -> ('a1, 'a2, 'a3 Types.sig0) iO **)
236 | Types.None -> (fun _ -> Logic.false_rect_Type0 __)
237 | Types.Some b -> (fun _ -> io_inject_0 b)) __
239 (** val io_eject : ('a1, 'a2, 'a3 Types.sig0) iO -> ('a1, 'a2, 'a3) iO **)
240 let rec io_eject = function
241 | Interact (out, k) -> Interact (out, (fun v -> io_eject (k v)))
242 | Value b -> let w = b in Value w
245 (** val dpi1__o__io_inject__o__inject :
246 (('a1, 'a3, 'a2) iO Types.option, 'a4) Types.dPair -> ('a1, 'a3, 'a2
247 Types.sig0) iO Types.sig0 **)
248 let dpi1__o__io_inject__o__inject x6 =
249 io_inject x6.Types.dpi1
251 (** val eject__o__io_inject__o__inject :
252 ('a1, 'a3, 'a2) iO Types.option Types.sig0 -> ('a1, 'a3, 'a2 Types.sig0)
254 let eject__o__io_inject__o__inject x6 =
255 io_inject (Types.pi1 x6)
257 (** val io_inject__o__inject :
258 ('a1, 'a3, 'a2) iO Types.option -> ('a1, 'a3, 'a2 Types.sig0) iO
260 let io_inject__o__inject x5 =
263 (** val dpi1__o__io_inject :
264 (('a1, 'a3, 'a2) iO Types.option, 'a4) Types.dPair -> ('a1, 'a3, 'a2
266 let dpi1__o__io_inject x5 =
267 io_inject x5.Types.dpi1
269 (** val eject__o__io_inject :
270 ('a1, 'a3, 'a2) iO Types.option Types.sig0 -> ('a1, 'a3, 'a2 Types.sig0)
272 let eject__o__io_inject x5 =
273 io_inject (Types.pi1 x5)
275 (** val io_inject__o__io_eject__o__inject :
276 ('a1, 'a3, 'a2) iO Types.option -> ('a1, 'a3, 'a2) iO Types.sig0 **)
277 let io_inject__o__io_eject__o__inject x4 =
278 io_eject (io_inject x4)
280 (** val dpi1__o__err_to_io__o__io_eject__o__inject :
281 ('a2 Types.sig0 Errors.res, 'a4) Types.dPair -> ('a1, 'a3, 'a2) iO
283 let dpi1__o__err_to_io__o__io_eject__o__inject x6 =
284 io_eject (dpi1__o__err_to_io x6)
286 (** val dpi1__o__io_inject__o__io_eject__o__inject :
287 (('a1, 'a3, 'a2) iO Types.option, 'a4) Types.dPair -> ('a1, 'a3, 'a2) iO
289 let dpi1__o__io_inject__o__io_eject__o__inject x6 =
290 io_eject (dpi1__o__io_inject x6)
292 (** val eject__o__err_to_io__o__io_eject__o__inject :
293 'a2 Types.sig0 Errors.res Types.sig0 -> ('a1, 'a3, 'a2) iO Types.sig0 **)
294 let eject__o__err_to_io__o__io_eject__o__inject x6 =
295 io_eject (eject__o__err_to_io x6)
297 (** val eject__o__io_inject__o__io_eject__o__inject :
298 ('a1, 'a3, 'a2) iO Types.option Types.sig0 -> ('a1, 'a3, 'a2) iO
300 let eject__o__io_inject__o__io_eject__o__inject x6 =
301 io_eject (eject__o__io_inject x6)
303 (** val err_to_io__o__io_eject__o__inject :
304 'a2 Types.sig0 Errors.res -> ('a1, 'a3, 'a2) iO Types.sig0 **)
305 let err_to_io__o__io_eject__o__inject x4 =
306 io_eject (err_to_io x4)
308 (** val dpi1__o__io_eject__o__inject :
309 (('a1, 'a3, 'a2 Types.sig0) iO, 'a4) Types.dPair -> ('a1, 'a3, 'a2) iO
311 let dpi1__o__io_eject__o__inject x6 =
312 io_eject x6.Types.dpi1
314 (** val eject__o__io_eject__o__inject :
315 ('a1, 'a3, 'a2 Types.sig0) iO Types.sig0 -> ('a1, 'a3, 'a2) iO Types.sig0 **)
316 let eject__o__io_eject__o__inject x6 =
317 io_eject (Types.pi1 x6)
319 (** val io_eject__o__inject :
320 ('a1, 'a3, 'a2 Types.sig0) iO -> ('a1, 'a3, 'a2) iO Types.sig0 **)
321 let io_eject__o__inject x5 =
324 (** val io_inject__o__io_eject :
325 ('a1, 'a3, 'a2) iO Types.option -> ('a1, 'a3, 'a2) iO **)
326 let io_inject__o__io_eject x4 =
327 io_eject (io_inject x4)
329 (** val dpi1__o__err_to_io__o__io_eject :
330 ('a2 Types.sig0 Errors.res, 'a4) Types.dPair -> ('a1, 'a3, 'a2) iO **)
331 let dpi1__o__err_to_io__o__io_eject x5 =
332 io_eject (dpi1__o__err_to_io x5)
334 (** val dpi1__o__io_inject__o__io_eject :
335 (('a1, 'a3, 'a2) iO Types.option, 'a4) Types.dPair -> ('a1, 'a3, 'a2) iO **)
336 let dpi1__o__io_inject__o__io_eject x5 =
337 io_eject (dpi1__o__io_inject x5)
339 (** val eject__o__err_to_io__o__io_eject :
340 'a2 Types.sig0 Errors.res Types.sig0 -> ('a1, 'a3, 'a2) iO **)
341 let eject__o__err_to_io__o__io_eject x5 =
342 io_eject (eject__o__err_to_io x5)
344 (** val eject__o__io_inject__o__io_eject :
345 ('a1, 'a3, 'a2) iO Types.option Types.sig0 -> ('a1, 'a3, 'a2) iO **)
346 let eject__o__io_inject__o__io_eject x5 =
347 io_eject (eject__o__io_inject x5)
349 (** val err_to_io__o__io_eject :
350 'a2 Types.sig0 Errors.res -> ('a1, 'a3, 'a2) iO **)
351 let err_to_io__o__io_eject x4 =
352 io_eject (err_to_io x4)
354 (** val dpi1__o__io_eject :
355 (('a1, 'a3, 'a2 Types.sig0) iO, 'a4) Types.dPair -> ('a1, 'a3, 'a2) iO **)
356 let dpi1__o__io_eject x5 =
357 io_eject x5.Types.dpi1
359 (** val eject__o__io_eject :
360 ('a1, 'a3, 'a2 Types.sig0) iO Types.sig0 -> ('a1, 'a3, 'a2) iO **)
361 let eject__o__io_eject x5 =
362 io_eject (Types.pi1 x5)
365 Errors.errmsg -> 'a3 Types.option -> ('a1, 'a2, 'a3) iO **)
366 let opt_to_io m = function
367 | Types.None -> Wrong m
368 | Types.Some v' -> Value v'
370 (** val bind_res_value :
371 'a3 Errors.res -> ('a3 -> 'a4 Errors.res) -> 'a4 -> ('a3 -> __ -> __ ->
373 let bind_res_value clearme f v x =
375 | Errors.OK a -> (fun f0 v0 _ h _ -> h a __ __)
377 (fun f0 v0 _ h _ -> Obj.magic iO_discr (Wrong m) (Value v0) __)) f v __
380 (** val bindIO_value :
381 ('a1, 'a2, 'a3) iO -> ('a3 -> ('a1, 'a2, 'a4) iO) -> 'a4 -> ('a3 -> __ ->
382 __ -> 'a5) -> 'a5 **)
383 let bindIO_value clearme f v x =
387 Obj.magic iO_discr (Interact (o, (fun res -> bindIO (k res) f0)))
389 | Value a -> (fun f0 v0 _ h _ -> h a __ __)
391 (fun f0 v0 _ h _ -> Obj.magic iO_discr (Wrong m) (Value v0) __)) f v __
394 (** val bindIO_res_interact :
395 'a3 Errors.res -> ('a3 -> ('a1, 'a2, 'a4) iO) -> 'a1 -> ('a2 -> ('a1,
396 'a2, 'a4) iO) -> ('a3 -> __ -> __ -> 'a5) -> 'a5 **)
397 let bindIO_res_interact clearme f o k x =
399 | Errors.OK a -> (fun f0 o0 k0 _ h _ -> h a __ __)
401 (fun f0 o0 k0 _ x0 _ ->
402 Obj.magic iO_discr (Wrong m) (Interact (o0, k0)) __)) f o k __ x __
404 (** val bindIO_opt_interact :
405 Errors.errmsg -> 'a3 Types.option -> ('a3 -> ('a1, 'a2, 'a4) iO) -> 'a1
406 -> ('a2 -> ('a1, 'a2, 'a4) iO) -> ('a3 -> __ -> __ -> 'a5) -> 'a5 **)
407 let bindIO_opt_interact m clearme f o k x =
410 (fun f0 o0 k0 _ x0 _ ->
411 Obj.magic iO_discr (Wrong m) (Interact (o0, k0)) __)
412 | Types.Some a -> (fun f0 o0 k0 _ h _ -> h a __ __)) f o k __ x __
414 (** val eq_to_rel_io__o__io_eq_from_res__o__inject :
415 'a2 Errors.res -> 'a2 -> __ Types.sig0 **)
416 let eq_to_rel_io__o__io_eq_from_res__o__inject x3 x4 =
419 (** val eq_to_rel_io__o__io_eq_from_res__o__opt_eq_from_res__o__inject :
420 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 **)
421 let eq_to_rel_io__o__io_eq_from_res__o__opt_eq_from_res__o__inject x2 x4 x5 =
422 Errors.opt_eq_from_res__o__inject x2 x4 x5
424 (** val jmeq_to_eq__o__io_eq_from_res__o__inject :
425 'a2 Errors.res -> 'a2 -> __ Types.sig0 **)
426 let jmeq_to_eq__o__io_eq_from_res__o__inject x3 x4 =
429 (** val jmeq_to_eq__o__io_eq_from_res__o__opt_eq_from_res__o__inject :
430 Errors.errmsg -> 'a1 Types.option -> 'a1 -> __ Types.sig0 **)
431 let jmeq_to_eq__o__io_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 =
432 Errors.opt_eq_from_res__o__inject x1 x3 x4
434 (** val dpi1__o__io_eq_from_res__o__inject :
435 'a2 Errors.res -> 'a2 -> (__, 'a4) Types.dPair -> __ Types.sig0 **)
436 let dpi1__o__io_eq_from_res__o__inject x3 x4 x7 =
439 (** val dpi1__o__io_eq_from_res__o__opt_eq_from_res__o__inject :
440 Errors.errmsg -> 'a1 Types.option -> 'a1 -> (__, 'a4) Types.dPair -> __
442 let dpi1__o__io_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 x8 =
443 Errors.opt_eq_from_res__o__inject x1 x3 x4
445 (** val eject__o__io_eq_from_res__o__inject :
446 'a2 Errors.res -> 'a2 -> __ Types.sig0 -> __ Types.sig0 **)
447 let eject__o__io_eq_from_res__o__inject x3 x4 x7 =
450 (** val eject__o__io_eq_from_res__o__opt_eq_from_res__o__inject :
451 Errors.errmsg -> 'a1 Types.option -> 'a1 -> __ Types.sig0 -> __
453 let eject__o__io_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 x8 =
454 Errors.opt_eq_from_res__o__inject x1 x3 x4
456 (** val io_eq_from_res__o__opt_eq_from_res__o__inject :
457 Errors.errmsg -> 'a1 Types.option -> 'a1 -> __ Types.sig0 **)
458 let io_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 =
459 Errors.opt_eq_from_res__o__inject x1 x3 x4
461 (** val io_eq_from_res__o__inject :
462 'a2 Errors.res -> 'a2 -> __ Types.sig0 **)
463 let io_eq_from_res__o__inject x3 x4 =
466 (** val jmeq_to_eq__o__io_monad_eq_from_res__o__inject :
467 'a2 Errors.res -> 'a2 -> __ Types.sig0 **)
468 let jmeq_to_eq__o__io_monad_eq_from_res__o__inject x3 x4 =
471 (** val jmeq_to_eq__o__io_monad_eq_from_res__o__opt_eq_from_res__o__inject :
472 Errors.errmsg -> 'a1 Types.option -> 'a1 -> __ Types.sig0 **)
473 let jmeq_to_eq__o__io_monad_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 =
474 Errors.opt_eq_from_res__o__inject x1 x3 x4
476 (** val dpi1__o__io_monad_eq_from_res__o__inject :
477 'a2 Errors.res -> 'a2 -> (__, 'a4) Types.dPair -> __ Types.sig0 **)
478 let dpi1__o__io_monad_eq_from_res__o__inject x3 x4 x7 =
481 (** val dpi1__o__io_monad_eq_from_res__o__opt_eq_from_res__o__inject :
482 Errors.errmsg -> 'a1 Types.option -> 'a1 -> (__, 'a4) Types.dPair -> __
484 let dpi1__o__io_monad_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 x8 =
485 Errors.opt_eq_from_res__o__inject x1 x3 x4
487 (** val eject__o__io_monad_eq_from_res__o__inject :
488 'a2 Errors.res -> 'a2 -> __ Types.sig0 -> __ Types.sig0 **)
489 let eject__o__io_monad_eq_from_res__o__inject x3 x4 x7 =
492 (** val eject__o__io_monad_eq_from_res__o__opt_eq_from_res__o__inject :
493 Errors.errmsg -> 'a1 Types.option -> 'a1 -> __ Types.sig0 -> __
495 let eject__o__io_monad_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 x8 =
496 Errors.opt_eq_from_res__o__inject x1 x3 x4
498 (** val io_monad_eq_from_res__o__opt_eq_from_res__o__inject :
499 Errors.errmsg -> 'a1 Types.option -> 'a1 -> __ Types.sig0 **)
500 let io_monad_eq_from_res__o__opt_eq_from_res__o__inject x1 x3 x4 =
501 Errors.opt_eq_from_res__o__inject x1 x3 x4
503 (** val io_monad_eq_from_res__o__inject :
504 'a2 Errors.res -> 'a2 -> __ Types.sig0 **)
505 let io_monad_eq_from_res__o__inject x3 x4 =
508 (** val eq_to_rel_io__o__io_eq_from_opt__o__inject :
509 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 **)
510 let eq_to_rel_io__o__io_eq_from_opt__o__inject x2 x4 x5 =
513 (** val jmeq_to_eq__o__io_eq_from_opt__o__inject :
514 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 **)
515 let jmeq_to_eq__o__io_eq_from_opt__o__inject x2 x4 x5 =
518 (** val dpi1__o__io_eq_from_opt__o__inject :
519 Errors.errmsg -> 'a2 Types.option -> 'a2 -> (__, 'a4) Types.dPair -> __
521 let dpi1__o__io_eq_from_opt__o__inject x2 x4 x5 x8 =
524 (** val eject__o__io_eq_from_opt__o__inject :
525 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 -> __
527 let eject__o__io_eq_from_opt__o__inject x2 x4 x5 x8 =
530 (** val io_eq_from_opt__o__inject :
531 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 **)
532 let io_eq_from_opt__o__inject x2 x4 x5 =
535 (** val jmeq_to_eq__o__io_monad_eq_from_opt__o__inject :
536 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 **)
537 let jmeq_to_eq__o__io_monad_eq_from_opt__o__inject x2 x4 x5 =
540 (** val dpi1__o__io_monad_eq_from_opt__o__inject :
541 Errors.errmsg -> 'a2 Types.option -> 'a2 -> (__, 'a4) Types.dPair -> __
543 let dpi1__o__io_monad_eq_from_opt__o__inject x2 x4 x5 x8 =
546 (** val eject__o__io_monad_eq_from_opt__o__inject :
547 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 -> __
549 let eject__o__io_monad_eq_from_opt__o__inject x2 x4 x5 x8 =
552 (** val io_monad_eq_from_opt__o__inject :
553 Errors.errmsg -> 'a2 Types.option -> 'a2 -> __ Types.sig0 **)
554 let io_monad_eq_from_opt__o__inject x2 x4 x5 =