title: Why do packages export a non-exported function by returning the non-exported function through an exported function
body: <p>Why do some packages declare two equal functions the only difference is one is exported and the other is not but the one that is exported just returns the non-exported function like this:</p>
  
  <pre><code>func Foo() {
      return foo()
  }
  
  func foo() {
     log.Println("Hello")
  }
  </code></pre>
  
  <p>Why not just move the log into the exported function and get rid of the extra line? Obviously there is a reason but I don't really see one if you can just use the exported one everywhere. Thanks!</p>
  
  <p>Example <a href="https://github.com/yohcop/openid-go/blob/master/verify.go" rel="nofollow noreferrer">here</a> of it being used in Production</p>