blob: b477802b5b19b3ec4560f8f6207a165171266378 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
(** THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS *)
(** [polonius_list] *)
module PoloniusList
open Primitives
#set-options "--z3rlimit 50 --fuel 1 --ifuel 1"
(** [polonius_list::List]
Source: 'src/polonius_list.rs', lines 3:0-3:16 *)
type list_t (t : Type0) =
| List_Cons : t -> list_t t -> list_t t
| List_Nil : list_t t
(** [polonius_list::get_list_at_x]:
Source: 'src/polonius_list.rs', lines 13:0-13:76 *)
let rec get_list_at_x
(ls : list_t u32) (x : u32) :
result ((list_t u32) & (list_t u32 -> result (list_t u32)))
=
begin match ls with
| List_Cons hd tl ->
if hd = x
then Return (List_Cons hd tl, Return)
else
let* (l, get_list_at_x_back) = get_list_at_x tl x in
let back_'a =
fun ret ->
let* tl1 = get_list_at_x_back ret in Return (List_Cons hd tl1) in
Return (l, back_'a)
| List_Nil -> Return (List_Nil, Return)
end
|