title: invalid target type casting: red-context
body: <p>I am using the <code>--red-only</code> switch with the verbosity set to 2 to compile a very simple Red program to its Red/System equivalent.  The program is:</p>
  
  <pre><code>Red []
  
  red-load: func [source  [file! url! string! binary!]] [
      load source
  ]
  </code></pre>
  
  <p>It produces a certain amount of output, which I redirected to a file.  My goal was to add a Red/System header to this and build it.</p>
  
  <p>After getting rid of some commentary lines, the next barrier is that this code had not expanded at least some macros, so I had to add a <code>#include</code> for <a href="https://github.com/red/red/blob/1fc8c7875c5d777c5097ce1322ff21f60136a505/runtime/macros.reds" rel="nofollow">runtime/macros.reds</a>.  But then I got this error in the expansion of one of those (macros TO_CTX):</p>
  
  <pre><code>*** Compilation Error: invalid target type casting: red-context! 
  *** in file: %/home/hostilefork/Projects/red/embedme.reds 
  *** in function: f_modulo
  *** at line: 11 
  *** near: (as red-context! ((as series! ctx15/value) + 1))
  </code></pre>
  
  <p>I've seen <code>red-context!</code> and some other <code>red-*!</code> datatypes used in the Red runtime code...when Red/System needs to talk about values it gets from Red.  But they are not mentioned <a href="http://static.red-lang.org/red-system-specs-light.html" rel="nofollow">in the Red/System spec</a>.  Can they be used in ordinary Red/System code, or is there something "special" allowing them only internally?</p>