#use "topfind" #require "unix,bigarray,dynlink,type_conv" #require "bin_prot" #require "variantslib,sexplib" #require "fieldslib,pa_bench,oUnit,pa_ounit" #require "typerep_lib" #require "core_kernel" #directory "/home/andyman/dev/github/forks/typerep/_build/lib" #load "named_intf.cmo" #load "type_equal.cmo" Type_equal.conv #load "typename.cmo" #load "variant_and_record_intf.cmo" #load "std_internal.cmo" #load "make_typename.cmo" #load "typerepable.cmo" #load "type_abstract.cmo" #load "type_generic_intf.cmo" #load "type_generic.cmo" #load "typerep_obj.cmo" #load "std.cmo" module Typename = struct type 'a t end module Type_equal = struct type ('a,'b) t end module rec Typerep : sig type _ t = | Int : int t | Int32 : int32 t | Int64 : int64 t | Nativeint : nativeint t | Char : char t | Float : float t | String : string t | Bool : bool t | Unit : unit t | Option : 'a t -> 'a option t | List : 'a t -> 'a list t | Array : 'a t -> 'a array t | Lazy : 'a t -> 'a Lazy.t t | Ref : 'a t -> 'a ref t (*| Function : ('dom t * 'rng t) -> ('dom -> 'rng) t | Tuple : 'a Typerep.Tuple.t -> 'a t | Record : 'a Typerep.Record.t -> 'a t | Variant : 'a Typerep.Variant.t -> 'a t | Named : ('a Typerep.Named.t * 'a t Lazy.t option) -> 'a t*) module Named : sig module type T0 = sig type named type t val typename_of_named : named Typename.t val typename_of_t : t Typename.t val witness : (t, named) Type_equal.t end type 'a t = T0 of (module T0 with type t = 'a) val arity : _ t -> int end end = struct type _ t = | Int : int t | Int32 : int32 t | Int64 : int64 t | Nativeint : nativeint t | Char : char t | Float : float t | String : string t | Bool : bool t | Unit : unit t | Option : 'a t -> 'a option t | List : 'a t -> 'a list t | Array : 'a t -> 'a array t | Lazy : 'a t -> 'a Lazy.t t | Ref : 'a t -> 'a ref t (*| Function : ('dom t * 'rng t) -> ('dom -> 'rng) t | Tuple : 'a Typerep.Tuple.t -> 'a t | Record : 'a Typerep.Record.t -> 'a t | Variant : 'a Typerep.Variant.t -> 'a t | Named : ('a Typerep.Named.t * 'a t Lazy.t option) -> 'a t*) module Named = struct module type T0 = sig type named type t val typename_of_named : named Typename.t val typename_of_t : t Typename.t val witness : (t, named) Type_equal.t end type 'a t = T0 of (module T0 with type t = 'a) let arity = function T0 _ -> 0 end end module rec Typerep : sig module Named : sig module type T0 = sig type named type t end type 'a t = T0 of (module T0 with type t = 'a) val arity : _ t -> int end end = struct module Named = struct module type T0 = sig type named type t end type 'a t = T0 of (module T0 with type t = 'a) let arity = function T0 _ -> 0 end end module Typerep : sig module Named : sig module type T0 = sig type named type t end type 'a t = T0 of (module T0 with type t = 'a) val arity : _ t -> int end end = struct module Named = struct module type T0 = sig type named type t end type 'a t = T0 of (module T0 with type t = 'a) let arity = function T0 _ -> 0 end end