package accessor_core

  1. Overview
  2. Docs

Source file accessor_fqueue.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
open! Core
open! Import

let empty =
  [%accessor
    Accessor.variant
      ~match_:(fun dq -> if Fqueue.is_empty dq then First () else Second dq)
      ~construct:(fun () -> Fqueue.empty)]
;;

let list = [%accessor Accessor.isomorphism ~get:Fqueue.to_list ~construct:Fqueue.of_list]
let each = [%accessor list @> Accessor.List.each]
let eachi = [%accessor list @> Accessor.List.eachi]

include Accessor.Of_monad (struct
  include Fqueue

  let apply = `Define_using_bind
end)