title: What determines the number and types of values a continuation can be applied to?
body: <p><em>The Scheme Programming Language</em> says</p>
  
  <blockquote>
    <p>Scheme allows the continuation of any expression to be captured with
    the procedure <code>call/cc</code>. <code>call/cc</code> must be passed a procedure <code>p</code> of
    one argument. <code>call/cc</code> constructs a concrete representation of the
    current continuation and passes it to <code>p</code>. The continuation itself is
    represented by a procedure <code>k</code>. Each time <code>k</code> is applied to a value,
    it returns the value to the continuation of the <code>call/cc</code> application.
    This value becomes, in essence, the value of the application of
    <code>call/cc</code>. <strong>If <code>p</code> returns without invoking <code>k</code>, the value returned by
    the procedure becomes the value of the application of <code>call/cc</code>.</strong></p>
    
    <p>The continuation itself is represented by a procedure. Each time this procedure is applied to <strong>zero or more values</strong>, it
    returns the values to the continuation of the <code>call/cc</code> application. That is, when the continuation procedure
    is called, it returns its arguments as the values of the application of <code>call/cc</code>.</p>
  </blockquote>
  
  <p>Consider <code>call/cc(p)</code> with <code>p(k)</code>.</p>
  
  <p>Since "<code>k</code> as a procedure can be applied to zero or more values", what determines the number and types of values continuation <code>k</code> can be applied to?</p>
  
  <p>Since the values of an application of <code>call/cc</code> depends on whether <code>p</code>  returns with or without invoking <code>k</code>, must the following   agree with each other:</p>
  
  <ul>
  <li>the number and types of values which  <code>k</code> can be applied to, and </li>
  <li>the number and types of values which <code>p</code> returns?</li>
  </ul>