<div dir="ltr">On Thu, Mar 28, 2013 at 6:34 PM, Jamie F Olson <span dir="ltr">&lt;<a href="mailto:jamie.f.olson@gmail.com" target="_blank">jamie.f.olson@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">Would it have been legal to define data JSValue as something like this instead?</div>
<br>
data JSValue<br>
    = JSValue<br>
    | JSValue     !Bool<br>
    | JSValue !Rational<br>
    | JSValue   JSString<br>
    | JSValue    [JSValue]<br>
    | JSValue   (JSObject JSValue)</blockquote><div><br></div><div>No; the data constructor used tells it what to expect afterward. </div></div><div><br></div>-- <br><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div>
<div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>                                  <a href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div><div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div>
</div>
</div>