|
|
module Modifier = (val ((Db.Hashtbl.create ()): (module Db.Sig with type t = Mods.t)));
|
||
|
|
module Modifier = (val (Db.Hashtbl.create ()): (Db.Sig with type t = Mods.t));
|
||
|
|
module Modifier = (val (Db.Hashtbl.create (): module Db.Sig with type t = Mods.t));
|
||
|
|
module Modifier = (val Db.Hashtbl.create (): Db.Sig with type t = Mods.t);
|
||
|
|
module Modifier = (val Db.Hashtbl.create ());
|
||
|
|
module Modifier = (val Db.Hashtbl.create ():
|
||
|
|
Db.Sig with type t = Mods.t and type s = Mods.s and
|
||
|
|
type z = Mods.z);
|
||
|
|
|
||
|
|
module Lowercase = (val stuff: lowercase);
|
||
|
|
module Lowercase = (val stuff: Foo.Bar.lowercase);
|
||
|
|
module Lowercase = (val stuff: Foo.Bar.lowercase with type t = Mods.t);
|
||
|
|
|
||
|
|
module T = (val (module FirstClass): myLowercaseModule);
|
||
|
|
|
||
|
|
module Three = (val three: X_int);
|
||
|
|
|
||
|
|
let thing: module Thing = (module MyModule);
|
||
|
|
let thing: module Foo.Bar.Thing = (module MyModule);
|
||
|
|
|
||
|
|
let smallThing: (module lowercase) = (module Mod);
|
||
|
|
let smallThing: module lowercase = (module Mod);
|
||
|
|
let smallThing: (module Foo.Bar.lowercase) = (module Mod);
|
||
|
|
let smallThing: module Foo.Bar.lowercase = (module Mod);
|
||
|
|
|
||
|
|
let f = ((module Add : S.Z), x) => Add.add(x);
|
||
|
|
|
||
|
|
let join_iter =
|
||
|
|
(type ta, type tb,
|
||
|
|
((module A): (module Sig with type t=ta)),
|
||
|
|
(module B): (module Sig with type t=tb),
|
||
|
|
module C: module Sig with type t=tb,
|
||
|
|
module D: Sig with type t=tb and type s =tc and type x = td and type z = te,
|
||
|
|
fn) => fn(A.value + B.value);
|
||
|
|
|
||
|
|
type t = ref((module Console));
|
||
|
|
type firstClassConsole = (module Console);
|
||
|
|
|
||
|
|
type crossPlatform = Platform.t((module Windows), (module Mac), (module Linux));
|
||
|
|
|
||
|
|
type t = (module FirstClass, module SecondClass);
|
||
|
|
|
||
|
|
type withAttr = ref([@bar] (module Console));
|
||
|
|
type withAttrPlatform = Platform.t([@bar] (module Iphone), [@foo] (module Ipad));
|
||
|
|
type tWithAttr = ([@foo] (module FirstClass), [@bar] (module SecondClass));
|
||
|
|
|
||
|
|
type t = {m: (module M)};
|
||
|
|
|
||
|
|
/* https://github.com/facebook/reason/issues/2150 */
|
||
|
|
type t('a) = (module Test with type a = 'a);
|