title: What input will cause golang's json.Marshal to return an error?
body: <p>From the <a href="https://golang.org/pkg/encoding/json/#Marshal" rel="noreferrer">docs</a>:</p>
  
  <blockquote>
    <p>JSON cannot represent cyclic data structures and Marshal does not handle them. Passing cyclic structures to Marshal will result in an infinite recursion.</p>
  </blockquote>
  
  <p>I've experienced this situation, which results in a runtime panic.</p>
  
  <p>What I'm wondering is if anyone can provide a working program that demonstrates a non-panic situation where json.Marshal returns a non-nil error. The best answers would <strong>clearly include the inputs used</strong>.</p>