diff -r 55b3d21ab5e5 -r ab52f183f020 src/Pure/ML-Systems/single_assignment.ML --- a/src/Pure/ML-Systems/single_assignment.ML Wed Dec 23 21:15:26 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -(* Title: Pure/ML-Systems/single_assignment.ML - Author: Makarius - -References with single assignment. Unsynchronized! -*) - -signature SINGLE_ASSIGNMENT = -sig - type 'a saref - exception Locked - val saref: unit -> 'a saref - val savalue: 'a saref -> 'a option - val saset: 'a saref * 'a -> unit -end; - -structure SingleAssignment: SINGLE_ASSIGNMENT = -struct - -exception Locked; - -abstype 'a saref = SARef of 'a option ref -with - -fun saref () = SARef (ref NONE); - -fun savalue (SARef r) = ! r; - -fun saset (SARef (r as ref NONE), x) = r := SOME x - | saset _ = raise Locked; - -end; - -end;