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

Rather than re-using the package type we should use a module type directly (but disallow signatures/functors to make avoid making the whole type checker mutually recursive).

This patch is incomplete, I just open the pull request to start discussions. It introduces a new item, in signature and structures: ``` ocaml implicit Some.Module implicit Some.Functor(_) ``` such...

I'm not sure if this is supposed to be supported at the moment, but the current behaviour is rather surprising: ``` ocaml module type S = sig type t end...

I'd like to write something analogous to the following Haskell code ``` haskell {-# LANGUAGE RankNTypes #-} class C a where f :: (forall b.C b => b -> b)...

``` $ ocaml -dsource OCaml version 4.02.1+dev0-2014-08-29 # let f (implicit M : Map.S) () = ();; let f (implicit M : (M : (module Map.S))) () = ();; val...

Here's an example showing how varying the order of instance bindings affects whether the search succeeds: m.ml: ``` ocaml module type T = sig type 'a t type s end...

``` ocaml # module type S = sig end;; module type S = sig end # let rec f (implicit X : S) () = f (implicit X) ();; Characters...

enhancement

Implicit module arguments are an alternative to implicit functors. Instead of ``` ocaml implicit functor M (A:X) (B:Y) = ... ``` we might write: ``` ocaml implicit module M (implicit...

enhancement

In the following, `grow1` (the most natural) and `grow2` don't work, with the error messages in comments, while `grow3` works. This is using the HEAD from 2014-09-12T09:30:00+0200 or thereabouts, probably...

The [test for PR 4933](https://github.com/ocamllabs/ocaml-modular-implicits/blob/modular-implicits/testsuite/tests/typing-polyvariants-bugs/pr4933_ok.ml) is failing with `Fatal error: exception File "typing/path.ml", line 49, characters 22-28: Assertion failed`