Module Tjr_lib

Core

include Tjr_lib_core

Prelude

include Tjr_lib_core__.Util
val dest_Some : 'a option -> 'a
val dest_Ok : ('a'b) Stdlib.result -> 'a

Misc

module Map_string = Tjr_lib_core__.Util.Map_string
module Set_string = Tjr_lib_core__.Util.Set_string
module Int_ = Tjr_lib_core.Int_
module List_ = Tjr_lib_core.List_
module Iter = Tjr_lib_core.Iter
include Iter
val iter_opt : ('a -> 'a option) -> 'a -> 'a
type ('a, 'b) break_or_cont =
| Break of 'a
| Cont of 'b
val iter_break : ('a -> ('b'a) break_or_cont) -> 'a -> 'b

Iterate until reach break

val iter_k : (k:('a -> 'b) -> 'a -> 'b) -> 'a -> 'b

Essentially the Y combinator; useful for anonymous recursive functions. The k argument is the recursive callExample:

iter_k (fun ~k n -> 
    if n = 0 then 1 else n * k (n-1))
module String_ = Tjr_lib_core.String_

Extras

module Tjr_map = Tjr_lib_core.Tjr_map
module Exhaustive_testing = Tjr_lib_core.Exhaustive_testing
module Gensym = Tjr_lib_core.Gensym
module Global = Tjr_lib_core.Global
module Tjr_store = Tjr_lib_core.Tjr_store
type fstore = Tjr_store.fstore
module Args_ = Tjr_lib_core.Args_
module Singleton_type = Tjr_lib_core.Singleton_type
type ('a, 'b) sng = ('a'b) Singleton_type.sng
val dest_sng : ('a'b) Singleton_type.sng -> 'b
module Tjr_lru = Tjr_lib_core.Tjr_lru
type ('k, 'v, 't) lru_ops = ('k'v't) Tjr_lru.lru_ops
module Lru_two_gen = Tjr_lib_core.Lru_two_gen_v3
module Lru_two_gen_v3 = Tjr_lib_core.Lru_two_gen_v3
module Lru_two_gen_v3pure = Tjr_lib_core.Lru_two_gen_v3pure

Internal module

module Lru_with_slow_operations = Tjr_lib_core.Lru_with_slow_operations
module Intexable = Tjr_lib_core.Intexable
module Linear = Tjr_lib_core.Linear
module Seq_obj = Tjr_lib_core.Seq_obj
val seq_f : < drop : int -> 'a Seq_obj.seq2 -> 'a Seq_obj.seq2; make : ('a -> 'a) -> 'a -> < get : 'a; next : 'b; > as 'b; map : ('a -> 'c) -> 'a Seq_obj.seq2 -> 'c Seq_obj.seq2; peek : int -> 'a Seq_obj.seq2 -> 'a list; peek_filter : int -> 'a option Seq_obj.seq2 -> 'a list; read : int -> 'a Seq_obj.seq2 -> 'a list * 'a Seq_obj.seq2; read_filter : int -> 'a option Seq_obj.seq2 -> 'a list * 'a option Seq_obj.seq2; >

Logging and test control

module Logger = Tjr_lib_core.Logger
module Log = Tjr_lib_core.Log
module Test = Tjr_lib_core.Test
module Tjr_show = Tjr_lib_core.Tjr_show

Non-core

module Tjr_buffer : sig ... end
module Tjr_config : sig ... end

A simple config file functor.

module Tjr_file : sig ... end

Very tiny file utilities

module Internal_cmd : sig ... end
val shell_command_to_unit : string -> unit
module Adoc : sig ... end
include Adoc
val adoc_to_html : string -> string

FIXME not concurrent safe; also awful

module Md : sig ... end
include Md
val md_to_html : string -> string