local refs

Stephen Weeks MLton@sourcelight.com
Fri, 7 Dec 2001 15:46:19 -0800


> val once: Program.t -> {funcIsUsedOnce: Func.t -> bool,
>                         labelIsUsedOnce: Label.t -> bool}

Fine.

> I see two options for making Thread_copyCurrent a transfer:
...
> 2. Introduce a new Transfer.t variant
> 	     | Runtime of {prim: Prim.t,
> 		   	   args: Var.t vector,
>                            return: Label.t (* Must be nullary *)
>                           }
> 
> The second is probably more accurate, though if we go with option 2, we
> should probably introduce a more descriptive name for what is currently
> Transfer.Prim.

I like (2) better as well.  How about changing Prim to 

 	     | IntPrim of {prim: Prim.t,
 			   args: Var.t vector,
 			   overflow: Label.t, (* Must be nullary. *)
                           success: Label.t (* Must be nullary or unary. *)
 			  }