<p dir="ltr">Maybe a ctype which is a delay node, along the lines of 'recursive-contract', is the right thing here.</p>
<p dir="ltr">Sam</p>
<br><div class="gmail_quote">On Mon, Feb 2, 2015, 8:05 AM Anthony Carrico <<a href="mailto:acarrico@memebeam.org">acarrico@memebeam.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 02/02/2015 01:17 AM, Matthew Flatt wrote:<br>
> It's also valid to reference `wl_interface-pointer` directly:<br>
...<br>
><br>
> I don't have a nicer solution if you want to refer to<br>
> `_wl_message-pointer`, though.<br>
><br>
<br>
The forward reference is actually in wl_message, like this:<br>
<br>
(define-cstruct _wl_message<br>
  ((name _string/utf-8)<br>
   (signature _string/utf-8)<br>
   (types (_cpointer 'wl_interface))))<br>
<br>
(define-cstruct _wl_interface<br>
  ((name _string/utf-8)<br>
   (version _int)<br>
   (method_count _int)<br>
   (methods _wl_message-pointer)<br>
   (event_count _int)<br>
   (events _wl_message-pointer)))<br>
<br>
I ended up just inlining (_cpointer 'wl_interface) for the forward<br>
reference. This ends up creating two (_cpointer 'wl_interface) ctypes,<br>
but it's no problem, correct?<br>
<br>
I don't think it is possible to "reference 'wl_interface-pointer'<br>
directly" as you suggest in this case because of the "cannot reference<br>
an identifier before its definition" error.<br>
<br>
--<br>
Anthony Carrico<br>
<br>
<br>
____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/<u></u>users</a><br>
</blockquote></div>