X-Git-Url: http://git.joshuawise.com/snipe.git/blobdiff_plain/5c90fbb8681e975ccd0a1bc407b31daa1daef38a..469e60eb4974bf3fc47cfa5b9a33b14983bec135:/trans/stringref.sml diff --git a/trans/stringref.sml b/trans/stringref.sml index f78bd95..978d4a3 100644 --- a/trans/stringref.sml +++ b/trans/stringref.sml @@ -12,6 +12,7 @@ sig val new : string -> stringref (* returns a unique new stringref *) val name : stringref -> string (* returns the name of a stringref *) val compare : stringref * stringref -> order (* comparison function *) + val all : unit -> (stringref * string) list end structure Stringref :> STRINGREF = @@ -25,6 +26,7 @@ struct (* warning: calling reset() may jeopardize uniqueness of stringrefs! *) fun reset () = ( counter := 1 ; strings := [] ) fun new (s : string) = !counter before ( strings := (!counter, s) :: !strings ; counter := !counter + 1 ) + fun all () = !strings end fun name t = "S" ^ Int.toString t