<div dir="ltr">An application of that would be if you wanted a canvas with a black background or something:<div><br></div><div>w.add(object {</div><div>    inherits g.createCanvas</div><div>    </div><div>    // Default color is black, fill is true by default</div>
<div>    drawRectangleAt(0, 0) sized(width, height)</div><div>}</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 29, 2014 at 10:52 AM, Alex Sandilands <span dir="ltr"><<a href="mailto:sandilands.alex@gmail.com" target="_blank">sandilands.alex@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="im"><br><div class="gmail_quote">On Wed, Jan 29, 2014 at 10:47 AM, Timothy Jones <span dir="ltr"><<a href="mailto:tim@ecs.vuw.ac.nz" target="_blank">tim@ecs.vuw.ac.nz</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>That's procedural, not functional, but it's a really interesting design to let it work both ways. Can you inherit from createCanvas? That'd let you use it like Processing, with an implicit canvas.</div>

<div><br></div><div>w.add(object {</div><div>    inherits g.createCanvas</div><div>    fill := true</div><div>    color := col.blue</div><div>    drawRectangleAt(50, 100) sized(20, 30)</div><div>})</div></blockquote></div>

<br></div>Yup that should work fine</div></div>
</blockquote></div><br></div>