Hi guys,
Thank you all for the quick reply.
I overlooked the paragraph "Re-exported variant type or record type: an
equation, a representation." Adding the "type representation" did the trick.
I needed a concrete type, so the solution to make it abstract is not
appropriate in my case.
Thanks agin.
Merijn de Jonge
> > module type IHelloWorld =
> > sig
> > type helloWorldType = Hello | World
> > val hello : unit -> helloWorldType
> > end
> >
> > module Wrapper (X: IHelloWorld) : IHelloWorld =
> > struct
> > type helloWorldType = X.helloWorldType
> > let hello = X.hello
> > end
>
> You have to explicitely define Hello and World in the wrapper. Try this :
>
> module Wrapper(X:IHelloWorld): IHelloWorld =
> struct
> type helloWorldType = X.helloWorldType = Hello | Word
> let hello = X.hello
> end
Alternatively, you have defined too much In IHelloWorld
(depends on what you wanted to do in the first place).
Then try this:
module type IHelloWorld =
sig
type helloWorldType (* now abstract *)
val hello : unit -> helloWorldType
end
module Wrapper (X: IHelloWorld) :
(IHelloWorld with type helloWorldType = X.helloWorldType) =
struct
type helloWorldType = X.helloWorldType
let hello = X.hello
end
...
Sebastian Egner.