Hello Allain,

2011/4/8 Alain Frisch <alain.frisch@lexifi.com>
On 04/08/2011 01:25 PM, Julien Signoles wrote:
2) module F(X:...) = G(H(X))

Without applicative functors, we again get the error about parameter
elimination. But I see no workaround to eliminate it without changing
the signature of F. So IMHO that is a use case where applicative
functors are useful.

I'd be interested to see a full example for this case.

Download sources of Frama-C here : http://frama-c.com/download/frama-c-Carbon-20110201.tar.gz
The use case is in module State_builder :

src/project/state_builder.ml:
(* ... *)
module Caml_weak_hashtbl(Data: Datatype.S) = Weak_hashtbl(Weak.Make(Data))(Data)
(* ... *)

Do you see any workaround to compile this code with -no-app-funct (and as most as possible without changing API)?

--
Julien