File: .lake/packages/lean4/src/lean/Lean/Util/Profiler.lean

full_name: Lean.Firefox.Milliseconds
code: abbrev Milliseconds 
goal: Type

full_name: Lean.Firefox.Category.subcategories
code: structure Category where
  name : String
  color : String
  subcategories : Array String := #[]
deriving FromJson, ToJson
goal: Array String

full_name: Lean.Firefox.Category.color
code: structure Category where
  name : String
  color : String
  subcategories : Array String := #[]
deriving FromJson, ToJson
goal: String

full_name: Lean.Firefox.Category
code: structure Category where
  name : String
  color : String
  subcategories : Array String := #[]
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.Category.name
code: structure Category where
  name : String
  color : String
  subcategories : Array String := #[]
deriving FromJson, ToJson
goal: String

full_name: Lean.Firefox.instFromJsonCategory
code: FromJson
goal: Lean.FromJson Lean.Firefox.Category

full_name: Lean.Firefox.instToJsonCategory
code: ToJson
goal: Lean.ToJson Lean.Firefox.Category

full_name: Lean.Firefox.ProfileMeta
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.ProfileMeta.categories
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: Array Lean.Firefox.Category

full_name: Lean.Firefox.ProfileMeta.product
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: String

full_name: Lean.Firefox.ProfileMeta.interval
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: Lean.Firefox.Milliseconds

full_name: Lean.Firefox.ProfileMeta.startTime
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: Lean.Firefox.Milliseconds

full_name: Lean.Firefox.ProfileMeta.preprocessedProfileVersion
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.ProfileMeta.processType
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.ProfileMeta.markerSchema
code: structure ProfileMeta where
  interval : Milliseconds := 0  -- should be irrelevant with `tracing-ms`
  startTime : Milliseconds
  categories : Array Category := #[]
  processType : Nat := 0
  product : String := "lean"
  preprocessedProfileVersion : Nat := 48
  markerSchema : Array Json := #[]
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.instFromJsonProfileMeta
code: FromJson
goal: Lean.FromJson Lean.Firefox.ProfileMeta

full_name: Lean.Firefox.instToJsonProfileMeta
code: ToJson
goal: Lean.ToJson Lean.Firefox.ProfileMeta

full_name: Lean.Firefox.StackTable
code: structure StackTable where
  frame : Array Nat
  «prefix» : Array (Option Nat)
  category : Array Nat
  subcategory : Array Nat
  length : Nat
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.StackTable.subcategory
code: structure StackTable where
  frame : Array Nat
  «prefix» : Array (Option Nat)
  category : Array Nat
  subcategory : Array Nat
  length : Nat
deriving FromJson, ToJson
goal: Array Nat

full_name: Lean.Firefox.StackTable.frame
code: structure StackTable where
  frame : Array Nat
  «prefix» : Array (Option Nat)
  category : Array Nat
  subcategory : Array Nat
  length : Nat
deriving FromJson, ToJson
goal: Array Nat

full_name: Lean.Firefox.StackTable.prefix
code: structure StackTable where
  frame : Array Nat
  «prefix» : Array (Option Nat)
  category : Array Nat
  subcategory : Array Nat
  length : Nat
deriving FromJson, ToJson
goal: Array (Option Nat)

full_name: Lean.Firefox.StackTable.length
code: structure StackTable where
  frame : Array Nat
  «prefix» : Array (Option Nat)
  category : Array Nat
  subcategory : Array Nat
  length : Nat
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.StackTable.category
code: structure StackTable where
  frame : Array Nat
  «prefix» : Array (Option Nat)
  category : Array Nat
  subcategory : Array Nat
  length : Nat
deriving FromJson, ToJson
goal: Array Nat

full_name: Lean.Firefox.instFromJsonStackTable
code: FromJson
goal: Lean.FromJson Lean.Firefox.StackTable

full_name: Lean.Firefox.instToJsonStackTable
code: ToJson
goal: Lean.ToJson Lean.Firefox.StackTable

full_name: Lean.Firefox.SamplesTable.stack
code: structure SamplesTable where
  stack : Array Nat
  time : Array Milliseconds
  weight : Array Milliseconds
  weightType : String := "tracing-ms"
  length : Nat
deriving FromJson, ToJson
goal: Array Nat

full_name: Lean.Firefox.SamplesTable.weightType
code: structure SamplesTable where
  stack : Array Nat
  time : Array Milliseconds
  weight : Array Milliseconds
  weightType : String := "tracing-ms"
  length : Nat
deriving FromJson, ToJson
goal: String

full_name: Lean.Firefox.SamplesTable.weight
code: structure SamplesTable where
  stack : Array Nat
  time : Array Milliseconds
  weight : Array Milliseconds
  weightType : String := "tracing-ms"
  length : Nat
deriving FromJson, ToJson
goal: Array Lean.Firefox.Milliseconds

full_name: Lean.Firefox.SamplesTable.length
code: structure SamplesTable where
  stack : Array Nat
  time : Array Milliseconds
  weight : Array Milliseconds
  weightType : String := "tracing-ms"
  length : Nat
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.SamplesTable
code: structure SamplesTable where
  stack : Array Nat
  time : Array Milliseconds
  weight : Array Milliseconds
  weightType : String := "tracing-ms"
  length : Nat
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.SamplesTable.time
code: structure SamplesTable where
  stack : Array Nat
  time : Array Milliseconds
  weight : Array Milliseconds
  weightType : String := "tracing-ms"
  length : Nat
deriving FromJson, ToJson
goal: Array Lean.Firefox.Milliseconds

full_name: Lean.Firefox.instFromJsonSamplesTable
code: FromJson
goal: Lean.FromJson Lean.Firefox.SamplesTable

full_name: Lean.Firefox.instToJsonSamplesTable
code: ToJson
goal: Lean.ToJson Lean.Firefox.SamplesTable

full_name: Lean.Firefox.FuncTable
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.FuncTable.isJS
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.FuncTable.length
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.FuncTable.name
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Array Nat

full_name: Lean.Firefox.FuncTable.relevantForJS
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.FuncTable.fileName
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Array (Option Nat)

full_name: Lean.Firefox.FuncTable.columnNumber
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Array (Option Nat)

full_name: Lean.Firefox.FuncTable.lineNumber
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Array (Option Nat)

full_name: Lean.Firefox.FuncTable.resource
code: structure FuncTable where
  name : Array Nat
  isJS : Array Json := #[]
  relevantForJS : Array Json := #[]
  resource : Array Int
  fileName : Array (Option Nat)
  lineNumber : Array (Option Nat)
  columnNumber : Array (Option Nat)
  length : Nat
deriving FromJson, ToJson
goal: Array Int

full_name: Lean.Firefox.instFromJsonFuncTable
code: FromJson
goal: Lean.FromJson Lean.Firefox.FuncTable

full_name: Lean.Firefox.instToJsonFuncTable
code: ToJson
goal: Lean.ToJson Lean.Firefox.FuncTable

full_name: Lean.Firefox.FrameTable.length
code: structure FrameTable where
  func : Array Nat
  inlineDepth : Array Json := #[]
  innerWindowID : Array Json := #[]
  length : Nat
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.FrameTable.inlineDepth
code: structure FrameTable where
  func : Array Nat
  inlineDepth : Array Json := #[]
  innerWindowID : Array Json := #[]
  length : Nat
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.FrameTable
code: structure FrameTable where
  func : Array Nat
  inlineDepth : Array Json := #[]
  innerWindowID : Array Json := #[]
  length : Nat
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.FrameTable.func
code: structure FrameTable where
  func : Array Nat
  inlineDepth : Array Json := #[]
  innerWindowID : Array Json := #[]
  length : Nat
deriving FromJson, ToJson
goal: Array Nat

full_name: Lean.Firefox.FrameTable.innerWindowID
code: structure FrameTable where
  func : Array Nat
  inlineDepth : Array Json := #[]
  innerWindowID : Array Json := #[]
  length : Nat
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.instFromJsonFrameTable
code: FromJson
goal: Lean.FromJson Lean.Firefox.FrameTable

full_name: Lean.Firefox.instToJsonFrameTable
code: ToJson
goal: Lean.ToJson Lean.Firefox.FrameTable

full_name: Lean.Firefox.RawMarkerTable.name
code: structure RawMarkerTable where
  data : Array Json := #[]
  name : Array Json := #[]
  length : Nat := 0
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.RawMarkerTable.length
code: structure RawMarkerTable where
  data : Array Json := #[]
  name : Array Json := #[]
  length : Nat := 0
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.RawMarkerTable
code: structure RawMarkerTable where
  data : Array Json := #[]
  name : Array Json := #[]
  length : Nat := 0
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.RawMarkerTable.data
code: structure RawMarkerTable where
  data : Array Json := #[]
  name : Array Json := #[]
  length : Nat := 0
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.instFromJsonRawMarkerTable
code: FromJson
goal: Lean.FromJson Lean.Firefox.RawMarkerTable

full_name: Lean.Firefox.instToJsonRawMarkerTable
code: ToJson
goal: Lean.ToJson Lean.Firefox.RawMarkerTable

full_name: Lean.Firefox.ResourceTable
code: structure ResourceTable where
  type : Array Json := #[]
  length : Nat := 0
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.ResourceTable.length
code: structure ResourceTable where
  type : Array Json := #[]
  length : Nat := 0
deriving FromJson, ToJson
goal: Nat

full_name: Lean.Firefox.ResourceTable.type
code: structure ResourceTable where
  type : Array Json := #[]
  length : Nat := 0
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.instFromJsonResourceTable
code: FromJson
goal: Lean.FromJson Lean.Firefox.ResourceTable

full_name: Lean.Firefox.instToJsonResourceTable
code: ToJson
goal: Lean.ToJson Lean.Firefox.ResourceTable

full_name: Lean.Firefox.Thread.resourceTable
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Lean.Firefox.ResourceTable

full_name: Lean.Firefox.Thread.samples
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Lean.Firefox.SamplesTable

full_name: Lean.Firefox.Thread.stringArray
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Array String

full_name: Lean.Firefox.Thread.name
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: String

full_name: Lean.Firefox.Thread.processType
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: String

full_name: Lean.Firefox.Thread.funcTable
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Lean.Firefox.FuncTable

full_name: Lean.Firefox.Thread
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.Thread.isMainThread
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Bool

full_name: Lean.Firefox.Thread.frameTable
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Lean.Firefox.FrameTable

full_name: Lean.Firefox.Thread.stackTable
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Lean.Firefox.StackTable

full_name: Lean.Firefox.Thread.markers
code: structure Thread where
  name : String
  processType : String := "default"
  isMainThread : Bool := true
  samples : SamplesTable
  markers: RawMarkerTable := {}
  stackTable : StackTable
  frameTable : FrameTable
  resourceTable : ResourceTable := {}
  stringArray : Array String
  funcTable : FuncTable
deriving FromJson, ToJson
goal: Lean.Firefox.RawMarkerTable

full_name: Lean.Firefox.instFromJsonThread
code: FromJson
goal: Lean.FromJson Lean.Firefox.Thread

full_name: Lean.Firefox.instToJsonThread
code: ToJson
goal: Lean.ToJson Lean.Firefox.Thread

full_name: Lean.Firefox.Profile
code: structure Profile where
  meta : ProfileMeta
  libs : Array Json := #[]
  threads : Array Thread
deriving FromJson, ToJson
goal: Type

full_name: Lean.Firefox.Profile.meta
code: structure Profile where
  meta : ProfileMeta
  libs : Array Json := #[]
  threads : Array Thread
deriving FromJson, ToJson
goal: Lean.Firefox.ProfileMeta

full_name: Lean.Firefox.Profile.libs
code: structure Profile where
  meta : ProfileMeta
  libs : Array Json := #[]
  threads : Array Thread
deriving FromJson, ToJson
goal: Array Lean.Json

full_name: Lean.Firefox.Profile.threads
code: structure Profile where
  meta : ProfileMeta
  libs : Array Json := #[]
  threads : Array Thread
deriving FromJson, ToJson
goal: Array Lean.Firefox.Thread

full_name: Lean.Firefox.instFromJsonProfile
code: FromJson
goal: Lean.FromJson Lean.Firefox.Profile

full_name: Lean.Firefox.instToJsonProfile
code: ToJson
goal: Lean.ToJson Lean.Firefox.Profile

full_name: Lean.Firefox.ThreadWithMaps.stringMap
code: /-- Thread with maps necessary for computing max sharing indices -/
structure ThreadWithMaps extends Thread where
  stringMap : HashMap String Nat := {}
  funcMap : HashMap Nat Nat := {}
  stackMap : HashMap (Nat × Option Nat) Nat := {}
  /-- Last timestamp encountered: stop time of preceding sibling, or else start time of parent.  -/
  lastTime : Float := 0
goal: Lean.HashMap String Nat

full_name: Lean.Firefox.ThreadWithMaps.funcMap
code: /-- Thread with maps necessary for computing max sharing indices -/
structure ThreadWithMaps extends Thread where
  stringMap : HashMap String Nat := {}
  funcMap : HashMap Nat Nat := {}
  stackMap : HashMap (Nat × Option Nat) Nat := {}
  /-- Last timestamp encountered: stop time of preceding sibling, or else start time of parent.  -/
  lastTime : Float := 0
goal: Lean.HashMap Nat Nat

full_name: Lean.Firefox.ThreadWithMaps.stackMap
code: /-- Thread with maps necessary for computing max sharing indices -/
structure ThreadWithMaps extends Thread where
  stringMap : HashMap String Nat := {}
  funcMap : HashMap Nat Nat := {}
  stackMap : HashMap (Nat × Option Nat) Nat := {}
  /-- Last timestamp encountered: stop time of preceding sibling, or else start time of parent.  -/
  lastTime : Float := 0
goal: Lean.HashMap (Nat × Option Nat) Nat

full_name: Lean.Firefox.ThreadWithMaps.lastTime
code: /-- Thread with maps necessary for computing max sharing indices -/
structure ThreadWithMaps extends Thread where
  stringMap : HashMap String Nat := {}
  funcMap : HashMap Nat Nat := {}
  stackMap : HashMap (Nat × Option Nat) Nat := {}
  /-- Last timestamp encountered: stop time of preceding sibling, or else start time of parent.  -/
  lastTime : Float := 0
goal: Float

full_name: Lean.Firefox.ThreadWithMaps
code: /-- Thread with maps necessary for computing max sharing indices -/
structure ThreadWithMaps extends Thread where
  stringMap : HashMap String Nat := {}
  funcMap : HashMap Nat Nat := {}
  stackMap : HashMap (Nat × Option Nat) Nat := {}
  /-- Last timestamp encountered: stop time of preceding sibling, or else start time of parent.  -/
  lastTime : Float := 0
goal: Type

full_name: Lean.Firefox.categories
code: def categories : Array Category 
goal: Array Lean.Firefox.Category

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Util.Profiler.0.Lean.Firefox.addTrace
code: private partial def addTrace (pp : Bool) (thread : ThreadWithMaps) (trace : MessageData) :
    IO ThreadWithMaps 
goal: IO Lean.Firefox.ThreadWithMaps

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Util.Profiler.0.Lean.Firefox.addTrace.getNextStart?
code: private partial def addTrace (pp : Bool) (thread : ThreadWithMaps) (trace : MessageData) :
    IO ThreadWithMaps 
goal: Lean.MessageData → Option Float

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Util.Profiler.0.Lean.Firefox.addTrace.go
code: private partial def addTrace (pp : Bool) (thread : ThreadWithMaps) (trace : MessageData) :
    IO ThreadWithMaps 
goal: Lean.MessageData → StateT Lean.Firefox.ThreadWithMaps IO Unit

full_name: Lean.Firefox.Thread.new
code: def Thread.new (name : String) : Thread 
goal: Lean.Firefox.Thread

full_name: Lean.Firefox.Profile.export
code: def Profile.export (name : String) (startTime : Milliseconds) (traceState : TraceState)
    (opts : Options) : IO Profile 
goal: IO Lean.Firefox.Profile

full_name: Lean.Firefox.ThreadWithCollideMaps
code: structure ThreadWithCollideMaps extends ThreadWithMaps where
  /-- Max sharing map for samples -/
  sampleMap : HashMap Nat Nat := {}
goal: Type

full_name: Lean.Firefox.ThreadWithCollideMaps.sampleMap
code: structure ThreadWithCollideMaps extends ThreadWithMaps where
  /-- Max sharing map for samples -/
  sampleMap : HashMap Nat Nat := {}
goal: Lean.HashMap Nat Nat

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Util.Profiler.0.Lean.Firefox.collideThreads.collideStacks
code: /--
Adds samples from `add` to `thread`, increasing the weight of existing samples with identical stacks
instead of pushing new samples.
-/
private partial def collideThreads (thread : ThreadWithCollideMaps) (add : Thread) :
    ThreadWithCollideMaps 
goal: StateM Lean.Firefox.ThreadWithCollideMaps Nat

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Util.Profiler.0.Lean.Firefox.collideThreads.getStrIdx
code: /--
Adds samples from `add` to `thread`, increasing the weight of existing samples with identical stacks
instead of pushing new samples.
-/
private partial def collideThreads (thread : ThreadWithCollideMaps) (add : Thread) :
    ThreadWithCollideMaps 
goal: StateM Lean.Firefox.ThreadWithCollideMaps Nat

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Util.Profiler.0.Lean.Firefox.collideThreads
code: /--
Adds samples from `add` to `thread`, increasing the weight of existing samples with identical stacks
instead of pushing new samples.
-/
private partial def collideThreads (thread : ThreadWithCollideMaps) (add : Thread) :
    ThreadWithCollideMaps 
goal: Lean.Firefox.ThreadWithCollideMaps

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Util.Profiler.0.Lean.Firefox.collideThreads.collideSamples
code: /--
Adds samples from `add` to `thread`, increasing the weight of existing samples with identical stacks
instead of pushing new samples.
-/
private partial def collideThreads (thread : ThreadWithCollideMaps) (add : Thread) :
    ThreadWithCollideMaps 
goal: StateM Lean.Firefox.ThreadWithCollideMaps Unit

full_name: Lean.Firefox.Profile.collide
code: /--
Merges given profiles such that samples with identical stacks are deduplicated by adding up their
weights. Minimizes profile size while preserving per-stack timing information.
-/
def Profile.collide (ps : Array Profile) : Option Profile 
goal: Option Lean.Firefox.Profile