ocaml-modular-implicits icon indicating copy to clipboard operation
ocaml-modular-implicits copied to clipboard

OCaml extended with modular implicits

Results 33 ocaml-modular-implicits issues
Sort by recently updated
recently updated
newest added

``` module type MONAD = sig type 'a t val return : 'a -> 'a t val bind : ('a -> 'b t) -> 'a t -> 'b t end...

It'd be convenient to have implicits as constructor arguments so that we could write ``` ocaml type showable = Show : {S: SHOW} * S.t -> showable;; let f (Show...

It'd be useful to allow rebinding/shadowing of implicit modules in the top level: ``` # implicit module M = struct end;; implicit module M : sig end # implicit module...

enhancement

This patch is an extension of #28. It essentially adds a separate notion of _implicit scope_ for looking up implicit modules and functors, rather than piggybacking on the ordinary scope....

A bug report from @jordwalke: ``` ocaml module type OneSig = sig type t val oneValue: t -> string end module type TwoSig = sig type t val twoValue: t...

A bug report from @jordwalke: ``` ocaml module type OneSig = sig type t val oneValue: t -> string end module type TwoSig = sig type t val twoValue: t...

The following program is rejected with `Fatal error: exception Ctype.Unify(_)`: ``` ocaml module type T = sig type t val x : t end let get {I:T} () = I.x...

The following code doesn't compile ``` ocaml module type Foo = sig type 'a t val f : 'a t -> int end implicit module Foo1 = struct type 'a...

I expect this can be simplified further: ``` ocaml module type S = sig type _ t end implicit module Id = struct type 'a t = 'a end module...

Currently we keep the level of an in-scope implicit parameter in the environment, similar to how locally abstract types are handled. Really we only need to keep the fact that...