Focus_ringA simple data structure for keeping track of a focused element within a list. The focus wraps around so that calling prev when the focus is the head of the list will cause the focus to move to the end. There is always a focused element -- i.e. there is no blur operation.
include Ppx_compare_lib.Comparable.S1 with type 'a t := 'a tval compare :
'a Base__Ppx_compare_lib.compare ->
'a t Base__Ppx_compare_lib.compareinclude Ppx_compare_lib.Equal.S1 with type 'a t := 'a tval equal : 'a Base__Ppx_compare_lib.equal -> 'a t Base__Ppx_compare_lib.equalinclude Sexplib0.Sexpable.S1 with type 'a t := 'a tval t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a tval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.tval of_nonempty_list_exn : 'a list -> 'a tval current_focus : 'a t -> 'a