Library zoo_std.ivar_3__code
Require Import zoo.prelude.
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo.options.
Notation "'ivar_3ู Unset'" := (
in_type "zoo_std.ivar_3.state" 0
)(in custom zoo_tag
).
Notation "'ivar_3ู Set'" := (
in_type "zoo_std.ivar_3.state" 1
)(in custom zoo_tag
).
Definition ivar_3ู create : val :=
๐ณ๐๐ป โฝ โ
๐ฟ๐ฒ๐ณ โivar_3ู Unset[ [] ].
Definition ivar_3ู make : val :=
๐ณ๐๐ป "v" โ
๐ฟ๐ฒ๐ณ โivar_3ู Set( "v" ).
Definition ivar_3ู is_unset : val :=
๐ณ๐๐ป "t" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset โฝ โ
true
| ivar_3ู Set โฝ โ
false
๐ฒ๐ป๐ฑ.
Definition ivar_3ู is_set : val :=
๐ณ๐๐ป "t" โ
ยฌ ivar_3ู is_unset "t".
Definition ivar_3ู try_get : val :=
๐ณ๐๐ป "t" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset โฝ โ
ยงNone
| ivar_3ู Set "v" โ
โSome( "v" )
๐ฒ๐ป๐ฑ.
Definition ivar_3ู get : val :=
๐ณ๐๐ป "t" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset โฝ โ
๐ณ๐ฎ๐ถ๐น
| ivar_3ู Set "v" โ
"v"
๐ฒ๐ป๐ฑ.
Definition ivar_3ู wait : val :=
๐ฟ๐ฒ๐ฐ "wait" "t" "waiter" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset "waiters" ๐ฎ๐ "state" โ
๐ถ๐ณ
๐ฐ๐ฎ๐
"t".[contents]
"state"
โivar_3ู Unset[ "waiter" :: "waiters" ]
๐๐ต๐ฒ๐ป (
ยงNone
) ๐ฒ๐น๐๐ฒ (
"wait" "t" "waiter"
)
| ivar_3ู Set "v" โ
โSome( "v" )
๐ฒ๐ป๐ฑ.
Definition ivar_3ู set : val :=
๐ณ๐๐ป "t" "v" โ
๐บ๐ฎ๐๐ฐ๐ต
๐ ๐ฐ๐ต๐ด "t".[contents] โivar_3ู Set( "v" )
๐๐ถ๐๐ต
| ivar_3ู Set โฝ โ
๐ณ๐ฎ๐ถ๐น
| ivar_3ู Unset "waiters" โ
"waiters"
๐ฒ๐ป๐ฑ.
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo.options.
Notation "'ivar_3ู Unset'" := (
in_type "zoo_std.ivar_3.state" 0
)(in custom zoo_tag
).
Notation "'ivar_3ู Set'" := (
in_type "zoo_std.ivar_3.state" 1
)(in custom zoo_tag
).
Definition ivar_3ู create : val :=
๐ณ๐๐ป โฝ โ
๐ฟ๐ฒ๐ณ โivar_3ู Unset[ [] ].
Definition ivar_3ู make : val :=
๐ณ๐๐ป "v" โ
๐ฟ๐ฒ๐ณ โivar_3ู Set( "v" ).
Definition ivar_3ู is_unset : val :=
๐ณ๐๐ป "t" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset โฝ โ
true
| ivar_3ู Set โฝ โ
false
๐ฒ๐ป๐ฑ.
Definition ivar_3ู is_set : val :=
๐ณ๐๐ป "t" โ
ยฌ ivar_3ู is_unset "t".
Definition ivar_3ู try_get : val :=
๐ณ๐๐ป "t" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset โฝ โ
ยงNone
| ivar_3ู Set "v" โ
โSome( "v" )
๐ฒ๐ป๐ฑ.
Definition ivar_3ู get : val :=
๐ณ๐๐ป "t" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset โฝ โ
๐ณ๐ฎ๐ถ๐น
| ivar_3ู Set "v" โ
"v"
๐ฒ๐ป๐ฑ.
Definition ivar_3ู wait : val :=
๐ฟ๐ฒ๐ฐ "wait" "t" "waiter" โ
๐บ๐ฎ๐๐ฐ๐ต !"t" ๐๐ถ๐๐ต
| ivar_3ู Unset "waiters" ๐ฎ๐ "state" โ
๐ถ๐ณ
๐ฐ๐ฎ๐
"t".[contents]
"state"
โivar_3ู Unset[ "waiter" :: "waiters" ]
๐๐ต๐ฒ๐ป (
ยงNone
) ๐ฒ๐น๐๐ฒ (
"wait" "t" "waiter"
)
| ivar_3ู Set "v" โ
โSome( "v" )
๐ฒ๐ป๐ฑ.
Definition ivar_3ู set : val :=
๐ณ๐๐ป "t" "v" โ
๐บ๐ฎ๐๐ฐ๐ต
๐ ๐ฐ๐ต๐ด "t".[contents] โivar_3ู Set( "v" )
๐๐ถ๐๐ต
| ivar_3ู Set โฝ โ
๐ณ๐ฎ๐ถ๐น
| ivar_3ู Unset "waiters" โ
"waiters"
๐ฒ๐ป๐ฑ.