Docs GODI Archive
Projects Blog Link DB

Search GODI:


More options
File lib/ocaml/pkg-lib/lua-ml/lualib.mli GODI Package godi-lua-ml
Library lua-ml
 
   lualib.cmi_pretty    lualib.mli    Sources  

# 147 "lualib.nw"

# 41 "lualib.nw"
module type USERTYPE = sig
  type 'a t                             (* type parameter will be Lua value *)
  val tname : string  (* name of this type, for projection errors *)
  val eq : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
  val to_string : ('a -> string) -> 'a t -> string
end

# 62 "lualib.nw"
module type TYPEVIEW = sig
  type 'a combined
  type 'a t  (* the individual type of which this is a view *)
  val makemap : ('a combined, 'b, 'b) Luavalue.ep -> ('b -> string -> 'a t)
                -> ('a t, 'b, 'b) Luavalue.ep
end

# 72 "lualib.nw"
module type COMBINED_CORE = sig
  type 'a also_t
  module type VIEW = TYPEVIEW with type 'a combined = 'a also_t
  module TV1  : VIEW
  module TV2  : VIEW
  module TV3  : VIEW
  module TV4  : VIEW
  module TV5  : VIEW
  module TV6  : VIEW
  module TV7  : VIEW
  module TV8  : VIEW
  module TV9  : VIEW
  module TV10 : VIEW
end
module type COMBINED_VIEWS = sig
  type 'a t
  include COMBINED_CORE with type 'a also_t = 'a t
end
module type COMBINED_TYPE = sig
  include USERTYPE
  include COMBINED_CORE with type 'a also_t = 'a t
end

# 99 "lualib.nw"
module type CORE = sig
  module V : Luavalue.S
  val error : string -> 'a  (* error fallback *)
  val getglobal : V.state -> V.value -> V.value
  val fallback : string -> V.state -> V.value list -> V.value list
  val setfallback : V.state -> string -> V.value -> V.value
    (* sets fallback, returns previous one *)
  val apply : V.value -> V.state -> V.value list -> V.value list
  val register_globals :           (string * V.value) list -> V.state -> unit
  val register_module  : string -> (string * V.value) list -> V.state -> unit
end

# 125 "lualib.nw"
module type BARECODE = 
  functor (C : CORE) -> sig
    val init : C.V.state -> unit
  end

# 135 "lualib.nw"
module type USERCODE = sig
  type 'a userdata'  (* the userdata' tycon of the core on which lib depends *)
  module M : functor (C : CORE with type 'a V.userdata' = 'a userdata') -> sig
    val init : C.V.state -> unit
  end
end
module WithType (T : USERTYPE) (L : BARECODE) : USERCODE with type 'a userdata' = 'a T.t

# 153 "lualib.nw"
module Combine : sig
  module T10 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE) (T4 : USERTYPE)
             (T5 : USERTYPE) (T6 : USERTYPE) (T7 : USERTYPE) (T8 : USERTYPE)
             (T9 : USERTYPE) (T10 : USERTYPE)
   : COMBINED_TYPE with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t
                   with type 'a TV3.t = 'a T3.t with type 'a TV4.t = 'a T4.t
                   with type 'a TV5.t = 'a T5.t with type 'a TV6.t = 'a T6.t
                   with type 'a TV7.t = 'a T7.t with type 'a TV8.t = 'a T8.t
                   with type 'a TV9.t = 'a T9.t with type 'a TV10.t = 'a T10.t
  
  # 704 "lualib.nw"
  module T1 (T1 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t
  module T2 (T1 : USERTYPE) (T2 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t
  module T3 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t with type 'a TV3.t = 'a T3.t
  module T4 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE) (T4 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t with type 'a TV3.t = 'a T3.t with type 'a TV4.t = 'a T4.t
  module T5 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE) (T4 : USERTYPE) (T5 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t with type 'a TV3.t = 'a T3.t with type 'a TV4.t = 'a T4.t with type 'a TV5.t = 'a T5.t
  module T6 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE) (T4 : USERTYPE) (T5 : USERTYPE) (T6 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t with type 'a TV3.t = 'a T3.t with type 'a TV4.t = 'a T4.t with type 'a TV5.t = 'a T5.t with type 'a TV6.t = 'a T6.t
  module T7 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE) (T4 : USERTYPE) (T5 : USERTYPE) (T6 : USERTYPE) (T7 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t with type 'a TV3.t = 'a T3.t with type 'a TV4.t = 'a T4.t with type 'a TV5.t = 'a T5.t with type 'a TV6.t = 'a T6.t with type 'a TV7.t = 'a T7.t
  module T8 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE) (T4 : USERTYPE) (T5 : USERTYPE) (T6 : USERTYPE) (T7 : USERTYPE) (T8 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t with type 'a TV3.t = 'a T3.t with type 'a TV4.t = 'a T4.t with type 'a TV5.t = 'a T5.t with type 'a TV6.t = 'a T6.t with type 'a TV7.t = 'a T7.t with type 'a TV8.t = 'a T8.t
  module T9 (T1 : USERTYPE) (T2 : USERTYPE) (T3 : USERTYPE) (T4 : USERTYPE) (T5 : USERTYPE) (T6 : USERTYPE) (T7 : USERTYPE) (T8 : USERTYPE) (T9 : USERTYPE)  : COMBINED_TYPE
   with type 'a TV1.t = 'a T1.t with type 'a TV2.t = 'a T2.t with type 'a TV3.t = 'a T3.t with type 'a TV4.t = 'a T4.t with type 'a TV5.t = 'a T5.t with type 'a TV6.t = 'a T6.t with type 'a TV7.t = 'a T7.t with type 'a TV8.t = 'a T8.t with type 'a TV9.t = 'a T9.t
  module C10 (C1 : USERCODE)
    (C2 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C3 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C4 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C5 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C6 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C7 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C8 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C9 : USERCODE with type 'a userdata' = 'a C1.userdata')
    (C10: USERCODE with type 'a userdata' = 'a C1.userdata') :
    USERCODE with type 'a userdata' = 'a C1.userdata'
  
  # 584 "lualib.nw"
    module C1 (C1 : USERCODE)
    : USERCODE with type 'a userdata' = 'a C1.userdata'
    module C2 (C1 : USERCODE)
      (C2 : USERCODE with type 'a userdata' = 'a C1.userdata')
    : USERCODE with type 'a userdata' = 'a C1.userdata'
    module C3 (C1 : USERCODE)
      (C2 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C3 : USERCODE with type 'a userdata' = 'a C1.userdata')
    : USERCODE with type 'a userdata' = 'a C1.userdata'
    module C4 (C1 : USERCODE)
      (C2 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C3 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C4 : USERCODE with type 'a userdata' = 'a C1.userdata')
    : USERCODE with type 'a userdata' = 'a C1.userdata'
    module C5 (C1 : USERCODE)
      (C2 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C3 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C4 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C5 : USERCODE with type 'a userdata' = 'a C1.userdata')
    : USERCODE with type 'a userdata' = 'a C1.userdata'
    module C6 (C1 : USERCODE)
      (C2 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C3 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C4 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C5 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C6 : USERCODE with type 'a userdata' = 'a C1.userdata')
    : USERCODE with type 'a userdata' = 'a C1.userdata'
    module C7 (C1 : USERCODE)
      (C2 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C3 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C4 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C5 : USERCODE with type 'a userdata' = 'a C1.userdata')
      (C6 : USERCODE with type 'a userdata' = 'a C1.