code: func Caller(skip int) Call {
  	// As of Go 1.9 we need room for up to three PC entries.
  	//
  	// 0. An entry for the stack frame prior to the target to check for
  	//    special handling needed if that prior entry is runtime.sigpanic.
  	// 1. A possible second entry to hold metadata about skipped inlined
  	//    functions. If inline functions were not skipped the target frame
  	//    PC will be here.
  	// 2. A third entry for the target frame PC when the second entry
  	//    is used for skipped inline functions.
  	var pcs [3]uintptr
  	n := runtime.Callers(skip+1, pcs[:])
  	frames := runtime.CallersFrames(pcs[:n])
  	frame, _ := frames.Next()
  	frame, _ = frames.Next()
  
  	return Call{
  		frame: frame,
  	}
  }
docs: // Caller returns a Call from the stack of the current goroutine. The argument
  // skip is the number of stack frames to ascend, with 0 identifying the
  // calling function.