title: Missing function body
body: <p>When I saw <code>math.Sin</code> in Golang , I wondered because it was two functions with same names but first function have not function body.
  See below :</p>
  
  <p>For example <code>math.Acos</code> :</p>
  
  <pre><code>// Acos returns the arccosine, in radians, of x.
  //
  // Special case is:
  //  Acos(x) = NaN if x &lt; -1 or x &gt; 1
  func Acos(x float64) float64
  
  func acos(x float64) float64 {
      return Pi/2 - Asin(x)
  }
  </code></pre>
  
  <p>But when I want to create a very very simple <code>uuid</code> package with below statements :</p>
  
  <pre><code>package uuid
  
  import (
      "crypto/rand"
      "fmt"
      "io"
  )
  
  // Generate generates a random UUID according to RFC 4122
  func Generate() (string, error)
  
  func generate() (string, error) {
      uuid := make([]byte, 16)
      n, err := io.ReadFull(rand.Reader, uuid)
      if n != len(uuid) || err != nil {
          return "", err
      }
      uuid[8] = uuid[8]&amp;^0xc0 | 0x80
      uuid[6] = uuid[6]&amp;^0xf0 | 0x40
      return fmt.Sprintf("%x-%x-%x-%x-%x", uuid[0:4], uuid[4:6], uuid[6:8], uuid[8:10], uuid[10:]), nil
  }
  </code></pre>
  
  <p>I've got an error that said <code>missing function body for "Generate"</code></p>
  
  <p>So how can I write functions like <code>math.Acos</code> ?</p>