The PolyML.Profiling structure ...
structure Profiling: sig val profile: profileMode -> ('a -> 'b) -> 'a -> 'b val profileData: profileDataMode -> unit datatype profileDataMode = ProfileLiveData | ProfileLiveMutableData val profileDataStream: ((int * string) list -> unit) -> profileDataMode -> unit datatype profileMode = ProfileAllocations | ProfileLongIntEmulation | ProfileTime | ProfileTimeThisThread val profileStream: ((int * string) list -> unit) -> profileMode -> ('a -> 'b) -> 'a -> 'b end