Library zoo_persistent.pstack__code

Require Import zoo.prelude.
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo_std.list.
Require Import zoo.options.

Definition pstackู empty : val :=
  [].

Definition pstackู is_empty : val :=
  listู is_empty.

Definition pstackู push : val :=
  ๐—ณ๐˜‚๐—ป "t" "v" โ†’
    "v" :: "t".

Definition pstackู pop : val :=
  ๐—ณ๐˜‚๐—ป "param" โ†’
    ๐—บ๐—ฎ๐˜๐—ฐ๐—ต "param" ๐˜„๐—ถ๐˜๐—ต
    | [] โ†’
        ยงNone
    | "v" :: "t" โ†’
        โ€˜Some( ("v", "t") )
    ๐—ฒ๐—ป๐—ฑ.