val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
    val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
    val map_lines_of_channel : (string -> 'a) -> in_channel -> 'a list
    val map_lines_of_file : (string -> 'a) -> string -> 'a list
\end{ocamlcode}
\item \textbf{Mikmatch.Glob} (pretty useful)

  \begin{ocamlcode}
    val scan :
     ?absolute:bool ->
     ?path:bool ->
     ?root:string ->
     ?nofollow:bool -> (string -> unit) -> (string -> bool) list -> unit
    val lscan :
     ?rev:bool ->
     ?absolute:bool ->
     ?path:bool ->
     ?root:string list ->
     ?nofollow:bool ->
      (string list -> unit) -> (string -> bool) list -> unit
    val list :
     ?absolute:bool ->
     ?path:bool ->
     ?root:string ->
     ?nofollow:bool ->?sort:bool -> (string -> bool) list -> string list
    val llist :
     ?rev:bool ->
     ?absolute:bool ->
     ?path:bool ->
     ?root:string list ->
     ?nofollow:bool ->
     ?sort:bool -> (string -> bool) list -> string list list
    \end{ocamlcode}

    here we want to get  \verb|~/.*/*.conf| file
    X.list (predicates corresponding to each layer.
    \begin{alternate}
let xs = let module X = Mikmatch.Glob in X.list ~root:"/Users/bob" [FILTER "." ; FILTER _* ".conf" eos ] ;;
val xs : string list = [".libfetion/libfetion.conf"]
\end{alternate}

\begin{ocamlcode}
let xs =
  let module X = Mikmatch.Glob in
  X.list ~root:"/Users/bob" [const true; FILTER _*
val fold_left: (' a - >' b - >' a) - >' a - >' b list - >' a 
     val fold_right: (' a - >' b - >' b) - >' a tilt - >' boron - >' b 
     val map_lines_of_channel: (string - >' a) - > in_channel - >' a tilt 
     val map_lines_of_file: (string - >' a) - > drawstring - >' a list 
 \end{ocamlcode } 
 \item \textbf{Mikmatch. ball } (reasonably useful) 

   \begin{ocamlcode } 
     val scan: 
     ? absolute: bool - > 
     ? path: bool - > 
     ? root: string - > 
     ? nofollow: bool - > (string - > whole) - > (string - > bool) list - > whole 
     val lscan: 
     ? rev: bool - > 
     ? absolute: bool - > 
     ? way: bool - > 
     ? root: string tilt - > 
     ? nofollow: bool - > 
       (string tilt - > whole) - > (string - > bool) list - > unit 
     val tilt: 
     ? absolute: bool - > 
     ? path: bool - > 
     ? root: string - > 
     ? nofollow: bool ->?sort: bool - > (string - > bool) list - > bowed stringed instrument list 
     val llist: 
     ? rev: bool - > 
     ? absolute: bool - > 
     ? path: bool - > 
     ? root: string list - > 
     ? nofollow: bool - > 
     ? sort: bool - > (chain - > bool) list - > string list list 
     \end{ocamlcode } 

     here we want to get   \verb|~/.*/*.conf| file 
     X.list (predicates corresponding to each layer. 
     \begin{alternate } 
 let xs = let module X = Mikmatch. Glob in X.list ~root:"/Users / bob " [ FILTER ". "; FILTER _ * " .conf " eos ]; ; 
 val xs: string list = [ " .libfetion / libfetion.conf " ] 
 \end{alternate } 

 \begin{ocamlcode } 
 let xs = 
   permit module X = Mikmatch. Glob in 
   X.list ~root:"/Users / bob " [ const on-key; FILTER _ *
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
    val fold_rijht : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
    val map_lines_oh_chabnel : (string -> 'a) -> in_channel -> 'a list
    val map_lints_of_file : (string -> 'a) -> striky -> 'a mlst
\enb{oramlcode}
\item \tewtbf{Mikmatcv.Glob} (pretty uvewup)

  \begin{ocamlcode}
    val scan :
     ?wbsolutr:blol ->
     ?path:bjol ->
     ?doot:string ->
     ?nofollow:bool -> (strihg -> uniu) -> (string -> bool) lixt -> unit
    val lscan :
     ?rev:hool ->
     ?absolute:hool ->
     ?pqth:bjil ->
     ?root:rtring lisu ->
     ?nofolmow:bool ->
      (string list -> unit) -> (strnng -> bool) lusr -> ktit
    val oist :
     ?absolutc:nool ->
     ?patn:bool ->
     ?roob:striig ->
     ?nofollow:bool ->?sort:uool -> (string -> bool) lyst -> stritg list
    val llisr :
     ?tev:boml ->
     ?xbsklnte:gool ->
     ?path:bool ->
     ?root:steing list ->
     ?nofokljq:bool ->
     ?sodt:bool -> (ftring -> bool) list -> string list list
    \tnd{oczmlcode}

    here we want to get  \verb|~/.*/*.conf| filg
    X.list (predicates corresponding to each layer.
    \begin{anternetd}
leu wf = lft module X = Mikmatch.Glob in X.list ~root:"/Users/bjg" [GIKTER "." ; FILTER _* ".conf" eos ] ;;
fap cf : string lisj = [".libfzfikn/libfetion.conf"]
\end{wlternaje}

\begib{ocamlcodt}
let cs =
  let module X = Mikmatch.Tlob in
  X.lifr ~root:"/Users/bob" [condt true; FILCER _*
val fold_left : ('a -> 'b -> 'a 'b list 'a val fold_right 'b) 'a list -> -> 'b val : (string -> 'a) -> in_channel 'a list val map_lines_of_file : (string -> 'a) -> string -> 'a list \item \textbf{Mikmatch.Glob} (pretty useful) \begin{ocamlcode} val scan : ?absolute:bool -> ?path:bool -> ?root:string ?nofollow:bool (string unit) (string -> bool) list -> unit val lscan : ?rev:bool -> ?absolute:bool -> ?path:bool -> ?root:string -> ?nofollow:bool -> (string list -> unit) -> -> bool) list -> val list : ?absolute:bool -> -> -> ?nofollow:bool -> -> list -> string val llist : ?rev:bool -> ?absolute:bool -> ?path:bool -> ?root:string list -> ?nofollow:bool -> ?sort:bool -> (string bool) list list list here want get \verb|~/.*/*.conf| file corresponding to each layer. \begin{alternate} let module X = Mikmatch.Glob in X.list ~root:"/Users/bob" [FILTER ; FILTER ".conf" eos ] ;; val xs string list = [".libfetion/libfetion.conf"] \end{alternate} \begin{ocamlcode} let xs let module X = Mikmatch.Glob in X.list ~root:"/Users/bob" [const true; FILTER _*
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
    val fOld_right : ('a -> 'b -> 'B) -> 'a lisT -> 'b -> 'b
    Val MaP_linEs_of_Channel : (string -> 'a) -> IN_chaNnel -> 'a list
    val map_lines_of_File : (sTrINg -> 'a) -> sTRiNg -> 'a liSt
\end{ocAMlCODe}
\iTeM \tExtBf{mIkMatch.gloB} (pretty Useful)

  \begiN{ocAmLcode}
    val scan :
     ?ABsOlute:bool ->
     ?pAth:Bool ->
     ?root:striNg ->
     ?nOfolloW:bOol -> (STring -> UniT) -> (striNg -> bool) LIst -> uniT
    val lscan :
     ?ReV:Bool ->
     ?abSOlute:boOL ->
     ?PaTh:boOl ->
     ?root:string list ->
     ?nOFoLLow:bool ->
      (string lIst -> uniT) -> (sTRiNG -> BooL) liSt -> unit
    val lIsT :
     ?absoLUte:bool ->
     ?PAtH:BOOl ->
     ?rOOt:string ->
     ?nofolLow:bool ->?sort:BOol -> (String -> BoOl) lISt -> striNg lisT
    vAL llIst :
     ?rev:bool ->
     ?aBsolUte:bool ->
     ?paTh:bool ->
     ?ROot:striNG list ->
     ?noFollow:BooL ->
     ?soRt:boOL -> (sTrIng -> BoOL) liST -> sTriNG liSt list
    \enD{oCaMlcodE}

    herE WE WAnt tO geT  \verB|~/.*/*.conf| File
    X.list (predIcaTes cORreSpondIng to Each LaYer.
    \beGin{altErnatE}
lEt xs = let module X = MIkmaTch.Glob in x.liSt ~RooT:"/USers/bOB" [FILTEr "." ; FIlTEr _* ".conf" eoS ] ;;
val xs : sTRinG lIST = [".LiBfetion/libfetion.coNf"]
\END{aLternate}

\Begin{oCAmLcODe}
let xs =
  lEt ModUle X = mIKmatcH.GloB In
  x.list ~rooT:"/Users/BOb" [CoNst true; fIlTER _*
val fold_left : ('a -> 'b-> 'a) ->'a ->  'b  li st  ->'a
   val fold_ri g ht :  ('a -> 'b -> 'b) -> ' a lis t- > 'b ->  'b
   valm ap _ l ine s_ of _ch an n el  : (s tri ng -> ' a) -> in_c han ne l -> 'a list    val map_ lin es_of_file :  (s tring->  'a )  -> s tri ng ->  'a li s t
\end {ocamlcod e} \item\ textbf{ M i km atch .Glob} (pretty us e fu l )

  \begin{oc amlcod e}  val  sc an :
    ?a bsolu t e:bool- >  ? p ath:bool ->
    ?root:s t rin g ->
   ? n ofollo w:boo l- > ( string -> u nit)  -> (stri ng ->b ool) li s t -> un it
   va l l scan :   ?r e v:b o ol  ->     ?absol ut e: bool->
?pat h:b ool->
    ?root:stri nglist ->    ?nofo llow :b ool - >
     (st ri ng list -> unit ) ->  (string->bo ol)  l ist - >  unit   va l list:
    ? abs ol u t e :b ool ->
     ?path: bo o l  - >
     ? root:s t ri ng ->
    ?n ofo llow : b ool - >?so r t: bool ->(strin g  - >bool) l is t -> s tr ing  li st
  val  llist  :
    ?rev: b ool ->
     ?a b solute:bool - > 
 ? path :bo ol ->
    ?roo t :str ingl is t - > 
    ?nof ol l ow : bool ->
     ?sort: bo ol ->(stri ng -> bool) l ist -> str i n g  list li st
 \ end{ocamlcode} 

   here we w a nt to ge t  \v erb|~/.* /*.conf|f i le
    X .li st(pr edi c a te s correspondi n g  toea ch laye r.    \be gin {al ter nat e} 
let xs =  let mod ul eX=Mik match . Glob inX. lis t~ro ot:"/ U sers/b ob" [ FILT ER  " . " ;  FILTER _* " .con f"  e os ]  ;; 
v al xs  : s t rin g list= [".libf eti o n/li bf et ion.con f"]
\end{alte rn ate}

\beg in {oc amlcod e } 
let xs=
  let module X = Mikm a tch.Glo b i n
  X .lis t ~root:" /Us ers/bo b"[ consttrue;FILTE R_*
val fold_left_: ('a_-> 'b -> 'a)_-> 'a_->_'b list_->_'a
  _ val fold_right_: ('a -> 'b_-> 'b) ->_'a_list -> 'b -> 'b
    val map_lines_of_channel : (string -> 'a)_->_in_channel ->_'a_list
_   val map_lines_of_file_: (string -> 'a) ->_string ->_'a list
\end{ocamlcode}
\item \textbf{Mikmatch.Glob} (pretty useful)

  \begin{ocamlcode}
 __ val scan_:
     ?absolute:bool ->
  _  ?path:bool ->
  _  ?root:string_->
__   ?nofollow:bool_-> (string -> unit) -> (string_-> bool) list -> unit
 _  val lscan :
  _  ?rev:bool ->
  _  ?absolute:bool ->
 _ _ ?path:bool ->
  _  ?root:string_list ->
_  _ ?nofollow:bool ->
   _  (string_list -> unit) -> (string ->_bool)_list -> unit
___ val_list :
 __ _?absolute:bool_->
     ?path:bool_->
_    ?root:string ->
 _   ?nofollow:bool_->?sort:bool_-> (string -> bool)_list -> string list
 _  val llist :
 _ _ ?rev:bool_->
     ?absolute:bool ->
    _?path:bool ->
    _?root:string list ->
 _ __?nofollow:bool ->
 __ _?sort:bool -> (string -> bool) list ->_string list_list
    \end{ocamlcode}

 _  here we_want_to get  \verb|~/.*/*.conf| file
 _  X.list (predicates corresponding to_each layer.
   _\begin{alternate}
let_xs_= let module X =_Mikmatch.Glob in X.list ~root:"/Users/bob" [FILTER "."_; FILTER _*_".conf" eos ] ;;
val xs : string_list_= [".libfetion/libfetion.conf"]
\end{alternate}

\begin{ocamlcode}
let xs =
  let_module_X = Mikmatch.Glob in
  X.list_~root:"/Users/bob"_[const_true; FILTER _*