unison

Fork of Unison, a bi-directional file synchronization tool
git clone git://git.laack.co/unison.git
Log | Files | Refs | README | LICENSE

safelist.mli (2135B)


      1 (* Unison file synchronizer: src/ubase/safelist.mli *)
      2 (* Copyright 1999-2020, Benjamin C. Pierce (see COPYING for details) *)
      3 
      4 (* All functions here are tail recursive and will work for arbitrary
      5    sized lists (unlike some of the standard ones).  The intention is that
      6    the built-in List module should not be referred to outside this module. *)
      7 
      8 (* Functions from built-in List module *)
      9 val map : ('a -> 'b) -> 'a list -> 'b list
     10 val rev_map : ('a -> 'b) -> 'a list -> 'b list
     11 val append : 'a list -> 'a list -> 'a list
     12 val rev_append : 'a list -> 'a list -> 'a list
     13 val concat : 'a list list -> 'a list
     14 val combine : 'a list -> 'b list -> ('a * 'b) list
     15 val iter : ('a -> unit) -> 'a list -> unit
     16 val iteri : (int -> 'a -> unit) -> 'a list -> unit   (* zero-based *)
     17 val rev : 'a list -> 'a list
     18 val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
     19 val hd : 'a list -> 'a
     20 val tl : 'a list -> 'a list
     21 val nth : 'a list -> int -> 'a
     22 val length : 'a list -> int
     23 val mem : 'a -> 'a list -> bool
     24 val flatten : 'a list list -> 'a list
     25 val assoc : 'a -> ('a * 'b) list -> 'b
     26 val for_all : ('a -> bool) -> 'a list -> bool
     27 val exists : ('a -> bool) -> 'a list -> bool
     28 val split : ('a * 'b) list -> 'a list * 'b list
     29 val find : ('a -> bool) -> 'a list -> 'a
     30 val filter : ('a -> bool) -> 'a list -> 'a list
     31 val partition : ('a -> bool) -> 'a list -> 'a list * 'a list
     32 val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
     33 val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
     34 val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
     35 val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
     36 val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
     37 val sort : ('a -> 'a -> int) -> 'a list -> 'a list
     38 
     39 (* Other useful list-processing functions *)
     40 val filterMap : ('a -> 'b option) -> 'a list -> 'b list
     41 val filterMap2 : ('a -> 'b option * 'c option) -> 'a list -> 'b list * 'c list
     42 val transpose : 'a list list -> 'a list list
     43 val filterBoth : ('a -> bool) -> 'a list -> ('a list * 'a list)
     44 val allElementsEqual : 'a list -> bool
     45 val flatten_map : ('a -> 'b list) -> 'a list -> 'b list
     46 val remove : 'a -> 'a list -> 'a list