caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] using arguments insides functors
@ 2004-08-03 11:50 nakata keiko
  2004-08-03 12:42 ` Andreas Rossberg
  0 siblings, 1 reply; 3+ messages in thread
From: nakata keiko @ 2004-08-03 11:50 UTC (permalink / raw)
  To: caml-list

Hello,
why the following code does not get type checked ?

module type I = 
  sig 
    module type T
  end


module F = functor (Elt : I) ->
  struct
    module type T = Elt.T
    module F = functor (Elt : T) -> 
      struct 
	include Elt
      end
  end

Thanks,
Keiko

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] using arguments insides functors
  2004-08-03 11:50 [Caml-list] using arguments insides functors nakata keiko
@ 2004-08-03 12:42 ` Andreas Rossberg
  2004-08-03 13:01   ` nakata keiko
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Rossberg @ 2004-08-03 12:42 UTC (permalink / raw)
  To: caml-list

nakata keiko wrote:
> why the following code does not get type checked ?
> 
> module type I = 
>   sig 
>     module type T
>   end
> 
> module F = functor (Elt : I) ->
>   struct
>     module type T = Elt.T
>     module F = functor (Elt : T) -> 
>       struct 
> 	include Elt
>       end
>   end

Because "include" only applies to modules that are structures, since it 
is meant to copy its fields to the current scope. In your example 
however, Elt has some abstract module type T, so it does not meet that 
requirement. What should the include mean if you applied the outer F like

   F (struct module type T = functor (X : sig end) -> sig end end)

? And how could you express the result type of F without knowing the 
structure of Elt?

Cheers,

	- Andreas

-- 
Andreas Rossberg, rossberg@ps.uni-sb.de

Let's get rid of those possible thingies!  -- TB

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] using arguments insides functors
  2004-08-03 12:42 ` Andreas Rossberg
@ 2004-08-03 13:01   ` nakata keiko
  0 siblings, 0 replies; 3+ messages in thread
From: nakata keiko @ 2004-08-03 13:01 UTC (permalink / raw)
  To: rossberg; +Cc: caml-list, keiko

> Because "include" only applies to modules that are structures, since it 
> is meant to copy its fields to the current scope. In your example 
> however, Elt has some abstract module type T, so it does not meet that 
> requirement. What should the include mean if you applied the outer F like
> 
>    F (struct module type T = functor (X : sig end) -> sig end end)
> 
> ? And how could you express the result type of F without knowing the 
> structure of Elt?
> 
> Cheers,
> 
> 	- Andreas
> 
Mm-hm, I see.
Thank you.

Keiko

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-08-03 13:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-03 11:50 [Caml-list] using arguments insides functors nakata keiko
2004-08-03 12:42 ` Andreas Rossberg
2004-08-03 13:01   ` nakata keiko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).