Library zoo_std.deque__code
Require Import zoo.prelude.
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo_std.xdeque.
Require Import zoo.options.
Definition deque٠create : val :=
xdeque٠create.
Definition deque٠is_empty : val :=
xdeque٠is_empty.
Definition deque٠push_front : val :=
𝗳𝘂𝗻 "t" "v" →
xdeque٠push_front "t" { "t", "t", "v" }.
Definition deque٠push_back : val :=
𝗳𝘂𝗻 "t" "v" →
xdeque٠push_back "t" { "t", "t", "v" }.
Definition deque٠pop_front : val :=
𝗳𝘂𝗻 "t" →
𝗺𝗮𝘁𝗰𝗵 xdeque٠pop_front "t" 𝘄𝗶𝘁𝗵
| None →
§None
| Some "node" →
‘Some( "node".{xdeque٠data} )
𝗲𝗻𝗱.
Definition deque٠pop_back : val :=
𝗳𝘂𝗻 "t" →
𝗺𝗮𝘁𝗰𝗵 xdeque٠pop_back "t" 𝘄𝗶𝘁𝗵
| None →
§None
| Some "node" →
‘Some( "node".{xdeque٠data} )
𝗲𝗻𝗱.
Definition deque٠iter : val :=
𝗳𝘂𝗻 "fn" →
xdeque٠iter (𝗳𝘂𝗻 "node" → "fn" "node".{xdeque٠data}).
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo_std.xdeque.
Require Import zoo.options.
Definition deque٠create : val :=
xdeque٠create.
Definition deque٠is_empty : val :=
xdeque٠is_empty.
Definition deque٠push_front : val :=
𝗳𝘂𝗻 "t" "v" →
xdeque٠push_front "t" { "t", "t", "v" }.
Definition deque٠push_back : val :=
𝗳𝘂𝗻 "t" "v" →
xdeque٠push_back "t" { "t", "t", "v" }.
Definition deque٠pop_front : val :=
𝗳𝘂𝗻 "t" →
𝗺𝗮𝘁𝗰𝗵 xdeque٠pop_front "t" 𝘄𝗶𝘁𝗵
| None →
§None
| Some "node" →
‘Some( "node".{xdeque٠data} )
𝗲𝗻𝗱.
Definition deque٠pop_back : val :=
𝗳𝘂𝗻 "t" →
𝗺𝗮𝘁𝗰𝗵 xdeque٠pop_back "t" 𝘄𝗶𝘁𝗵
| None →
§None
| Some "node" →
‘Some( "node".{xdeque٠data} )
𝗲𝗻𝗱.
Definition deque٠iter : val :=
𝗳𝘂𝗻 "fn" →
xdeque٠iter (𝗳𝘂𝗻 "node" → "fn" "node".{xdeque٠data}).