code: func Trace() CallStack {
  	var pcs [512]uintptr
  	n := runtime.Callers(1, pcs[:])
  
  	frames := runtime.CallersFrames(pcs[:n])
  	cs := make(CallStack, 0, n)
  
  	// Skip extra frame retrieved just to make sure the runtime.sigpanic
  	// special case is handled.
  	frame, more := frames.Next()
  
  	for more {
  		frame, more = frames.Next()
  		cs = append(cs, Call{frame: frame})
  	}
  
  	return cs
  }
docs: // Trace returns a CallStack for the current goroutine with element 0
  // identifying the calling function.