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.6.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 548 - (download) (annotate)
Tue Feb 29 16:38:11 2000 UTC (19 years, 4 months ago) by dbm
Original Path: sml/trunk/tests/bugs/tests/bug905.6.sml
File size: 527 byte(s)
Initial revision
(* bug905.6.sml *)

functor H(X: sig
	       functor F1(type t): sig val put: t -> unit
				       val get: unit -> t
				   end
	     end)
  = X.F1;

functor F =
  let val lr = ref []
   in H(struct
	  functor F1 (type t) =
	    struct
	      (* t -> unit *)
	      fun put (x : t) = lr := [x]

	      (* unit -> t *)
	      fun get () = hd(!lr)

	    end (* functor F *)
       end)
  end; (* let fctexp *)

structure A = F(type t = unit -> unit);
structure B = F(type t = bool);

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


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