Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /tests/trunk/bugs/tests.obsolete/bug905.3.sml
ViewVC logotype

View of /tests/trunk/bugs/tests.obsolete/bug905.3.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2460 - (download) (annotate)
Sat Apr 28 20:18:10 2007 UTC (12 years, 2 months ago) by gkuan
File size: 429 byte(s)
(* bug905.3.sml *)

structure S =
  let val lr = ref []
      functor F (type t) =
      struct
	exception Empty

	(* t -> unit *)
	fun put (x : t) = lr := [x]

	(* unit -> t *)
	fun get () = 
	  case !lr of [x] => x | _ => raise Empty

      end (* functor F *)
  in
     struct
	 structure A = F(type t = unit -> unit)
	 structure B = F(type t = bool)
     end
  end; (* let *)

val x = S.B.put true;
val y = (S.A.get ()) ();


root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0