<p dir="ltr">That makes sense.  Thanks.</p>
<p dir="ltr">Justin</p>
<div class="gmail_quote">On Feb 5, 2015 2:35 AM, "Matthew Flatt" <<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The `struct` form in a signature describes a structure type that will<br>
be implemented by some unit. It can't work to have a similar<br>
`serializable-struct` form in a signature, because different units can<br>
implement a signature with different structure types, and a<br>
deserializer can't know which one to create.<br>
<br>
Using `define-serializable-struct` in a `unit` form won't work, either.<br>
That's because each instantiation of the unit create a different<br>
structure type (assuming that the structure type is not prefab), which<br>
leads to the same problem for the deserializer.<br>
<br>
So, `define-serializable-struct` needs to be used outside of a<br>
signature and outside of any unit. It could be in its own module, for<br>
example.<br>
<br>
At Wed, 4 Feb 2015 16:19:23 -0500, Justin Zamora wrote:<br>
> I am writing a program using units and got this message:<br>
> define-signature: unknown signature form in: serializable-struct<br>
><br>
> Sure enough, the docs show that serializable-struct is not allowed in a<br>
> signature. Is this something that can be fixed or do I have to work around<br>
> it (maybe by using regular structs and writing my own read-struct and<br>
> write-struct routines)? What is the best course of action?<br>
><br>
> Justin<br>
> ____________________<br>
>   Racket Users list:<br>
>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div>