// Capture get the current stack traces from the runtime. func Capture() Dump { … } // Summarize a dump for easier consumption. // This collates goroutines with equivalent stacks. func Summarize(dump Dump) Summary { … } // Process and input stream to an output stream, summarizing any stacks that // are detected in place. func Process(out io.Writer, in io.Reader) error { … } // Diff calculates the delta between two dumps. func Diff(before, after Dump) Delta { … } // TODO: do we want to allow contraction of stacks before comparison? func (s *Summary) addGoroutine(gr Goroutine) { … } // TODO: do we want other grouping strategies? func (c *Call) merge(gr Goroutine) { … }