title: How to implement call-with-values to match the values example in R5RS
body: <p>R5RS says...</p>
  
  <blockquote>
    <p>Values might be defined as follows:</p>
  
  <pre><code>(define (values . things)
    (call-with-current-continuation
      (lambda (cont) (apply cont things))))
  </code></pre>
  </blockquote>
  
  <p>It doesn’t, however, say how call-with-values might be implemented if values were implemented this way. So, if values is implemented this way, how would call-with-values be implemented?</p>
  
  <p>(This came up because I was trying to get some code that used call-with-values to work with TinyScheme, which doesn’t support it. I managed by faking values and call-with-values with lists, but—when I saw this in R5RS—I wanted to know if this might be a better workaround.)</p>