<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - LtU Forum</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/1/0</link>
 <description>Main Discussion Forum</description>
 <language>en</language>
<item>
 <title>Wadler, Findler: Well-typed programs can&#039;t be blamed</title>
 <link>http://lambda-the-ultimate.org/node/3154</link>
 <description>&lt;p &gt;The paper of the subject title might be of  &lt;a href=&#039;http://homepages.inf.ed.ac.uk/wadler/topics/links.html#blame-icfp&#039;&gt;interest&lt;/a&gt;.&lt;br &gt;
A cursory search on &quot;blame&quot; didn&#039;t reveal any prior posting.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Wed, 07 Jan 2009 07:39:56 -0500</pubDate>
</item>
<item>
 <title>[ANN] Final Call for Speakers for Code Generation 2009</title>
 <link>http://lambda-the-ultimate.org/node/3152</link>
 <description>&lt;p &gt;The Code Generation 2009 &lt;a href=&quot;http://www.codegeneration.net/cg2009/speak.php&quot;&gt;Call for Speakers&lt;/a&gt; closes on Friday January 16th 2009. Accepted speakers have their conference fees waived.&lt;/p&gt;
&lt;p &gt;Session proposals are sought covering topics such as:&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;Tool and technology adoption&lt;/li&gt;
&lt;li &gt;Code Generation and Model Transformation tools and approaches&lt;/li&gt;
&lt;li &gt;Defining and implementing modelling languages&lt;/li&gt;
&lt;li &gt;Domain Analysis and Domain Engineering&lt;/li&gt;
&lt;li &gt;Language evolution and modularization&lt;/li&gt;
&lt;li &gt;Meta Modelling&lt;/li&gt;
&lt;li &gt;Runtime virtual machines versus direct code generation&lt;/li&gt;
&lt;li &gt;Software Product Lines and Software Factories&lt;/li&gt;
&lt;/ul&gt;
&lt;p &gt;Visit the &lt;a href=&quot;http://www.codegeneration.net/cg2009/&quot;&gt;Code Generation 2009&lt;/a&gt; web site for more information and to make a speaking submission.&lt;/p&gt;
&lt;p &gt;Code Generation 2009 is sponsored by SoftFluent, itemis &amp;amp; NT/e and supported by OMG, IASA &amp;amp; ACCU.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Tue, 06 Jan 2009 14:28:15 -0500</pubDate>
</item>
<item>
 <title>Automatically Generating the Back End of a Compiler Using Declarative Machine Descriptions</title>
 <link>http://lambda-the-ultimate.org/node/3151</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.eecs.harvard.edu/dias/dissertation/dissertation.pdf&quot;&gt;Automatically Generating the Back End of a Compiler Using Declarative Machine Descriptions[PDF]&lt;/a&gt;&lt;br &gt;
By Joao Dias&lt;/p&gt;
&lt;p &gt;Although I have proven that the general problem is undecidable, I show how, for machines of practical interest, to generate the back end of a compiler.&lt;br &gt;
...&lt;br &gt;
The largest machine-dependent component in a back end is the instruction&lt;br &gt;
selector. Previous work has shown that it is difficult to generate a highquality&lt;br &gt;
instruction selector. But by adopting the compiler architecture developed&lt;br &gt;
by Davidson and Fraser (1984), I can generate a na¨ıve instruction&lt;br &gt;
selector and rely upon a machine-independent optimizer to improve the machine&lt;br &gt;
instructions. Unlike previous work, my generated back ends produce&lt;br &gt;
code that is as good as the code produced by hand-written back ends.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Tue, 06 Jan 2009 03:48:36 -0500</pubDate>
</item>
<item>
 <title>Reasonig about combinators (a lambda-calculus puzzle on composing compositions)</title>
 <link>http://lambda-the-ultimate.org/node/3150</link>
 <description>&lt;p &gt;In Haskell, \f -&amp;gt; \g -&amp;gt; (((f.).).) g is equivalent to \x y z -&amp;gt; f (g x y z), and more generally, \f -&amp;gt; \g -&amp;gt; (((f.)... .) g with n compositions is equivalent to x1 ... xn -&amp;gt; f (g x1 ... xn) with n arguments.&lt;/p&gt;
&lt;p &gt;But what is \f -&amp;gt; \g -&amp;gt; (.(.(.f))) g? Can you generalize?&lt;/p&gt;
&lt;p &gt;What about arbitrary left and right compositions, like (.(.((.f).)))? Can a general description be given?&lt;/p&gt;
&lt;p &gt;I am interested in your strategies in tackling such questions. I find reasoning about combinators quickly overwhelming. Sure, I can mechanically reduce a lambda term to normal form, but it&#039;s usually not that insightful. Is the key once more abstraction, through understanding of combinators at a high operational level?&lt;/p&gt;
&lt;p &gt;Any pointers to resources for reasoning about combinators would be appreciated.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Mon, 05 Jan 2009 23:43:39 -0500</pubDate>
</item>
<item>
 <title>Saturday January 10th 2009, 2PM: FringeDC Programming Group Formal Meeting</title>
 <link>http://lambda-the-ultimate.org/node/3149</link>
 <description>&lt;p &gt;Erlang Exposed! Chris Williams from NOVAlanguages (http://tinyurl.com/9o859p) will be giving an intro to Erlang and will describe what makes it so cool. You&#039;ll learn how the Erlang Concurrency Model allows for robust multiprocessor and distributed computing. As an opening presentation, Conrad Barski will present some new software written in Arc Lisp for automated cartoon cell colorization. Afterwards, we&#039;ll head over to a Mongolian Grill for some beer and conversation. &lt;/p&gt;
&lt;p &gt;The meeting is generously hosted by Clark &amp;amp; Parsia (http://tinyurl.com/6wmmbj) located at 926 N St NW REAR Studio #1 Washington DC and is near the Convention Center Metro Stop. (Map http://tinyurl.com/7mbc4o) Anyone is welcome to join our meetings!&lt;/p&gt;
&lt;p &gt;FringeDC is a programming group in Washington DC interested in Functional and Fringe programming languages (Lisp, Haskell, Erlang, etc) http://lisperati.com/fringedc.html&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Mon, 05 Jan 2009 08:02:45 -0500</pubDate>
</item>
<item>
 <title>JMatch (abstract iterable pattern matching for Java) and the Polyglot Compiler Framework</title>
 <link>http://lambda-the-ultimate.org/node/3148</link>
 <description>&lt;p &gt;I just read &lt;a href=&quot;http://www.cs.cornell.edu/andru/papers/padl03.pdf&quot;&gt;the PADL&#039;03 JMatch paper (PDF)&lt;/a&gt;, and was so impressed that I immediately downloaded &lt;a href=&quot;http://www.cs.cornell.edu/Projects/jmatch/&quot;&gt;JMatch&lt;/a&gt; and am starting to play with it.&lt;/p&gt;
&lt;p &gt;Ehud Lamm provides &lt;a href=&quot;http://lambda-the-ultimate.org/classic/message5496.html&quot;&gt;a nice summary of JMatch in the LTU Classic Archives&lt;/a&gt;. Like him, I am surprised that JMatch didn&#039;t generate more discussion. So what do people think of JMatch today? Is there anything else like it? How does it compare to other pattern matching abstractions, e.g. F# Active Patterns?&lt;/p&gt;
&lt;p &gt;Incidentally, any thoughts on &lt;a href=&quot;http://www.cs.cornell.edu/Projects/polyglot/&quot;&gt;the Polyglot Compiler Framework&lt;/a&gt; (used by JMatch)? Is it the framework of choice for implementing Java language extensions?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Mon, 05 Jan 2009 02:09:52 -0500</pubDate>
</item>
<item>
 <title>Coconut : Haskell code assembly on the cell processor</title>
 <link>http://lambda-the-ultimate.org/node/3147</link>
 <description>&lt;p &gt;This doesnt seem to have ever made it to ltu.&lt;/p&gt;
&lt;p &gt;http://uk.youtube.com/watch?v=yHd0u6zuWdw&lt;/p&gt;
&lt;p &gt;The abstract:&lt;/p&gt;
&lt;p &gt;Coconut is a developing system for high-assurance, high-performance&lt;br &gt;
software. It was used to develop a library of special functions for&lt;br &gt;
the Cell BE processor, which is distributed in the Cell BE SDK 3.0 as&lt;br &gt;
MASS. Average performance is 4X better than the alternative&lt;br &gt;
hand-tuned C library, SimdMath.&lt;/p&gt;
&lt;p &gt;Coconut has been successful where patterns of efficient&lt;br &gt;
hardware-specific computation can be captured as higher-order&lt;br &gt;
functions and encoded in a Domain Specific Language embedded in&lt;br &gt;
Haskell. Patterns include efficient control structures not&lt;br &gt;
expressible in C, e.g., the MultiLoop, and efficient uses of SIMD&lt;br &gt;
instructions which require significant compile-time computation for&lt;br &gt;
pattern specialization. Some patterns interact with a novel&lt;br &gt;
instruction scheduler called Explicitly Staged Software Pipelining,&lt;br &gt;
based on a min-cut approach, which outperforms SWING modulo scheduling&lt;br &gt;
in our tests.&lt;/p&gt;
&lt;p &gt;A less developed aspect of Coconut is the parallel production of&lt;br &gt;
proofs of correctness along with executables. Current work aims to&lt;br &gt;
prove only limited properties about programs---the ones most likely to&lt;br &gt;
be broken---creative use of SIMD instructions, and parallelization.&lt;br &gt;
Coconut intermediate code is represented as nested code (hyper)graphs.&lt;br &gt;
At the lowest level, we transform acyclic loop bodies to remove the&lt;br &gt;
effect of SIMDization, and produce machine and/or human readable&lt;br &gt;
specifications. This has been used to verify opaque patterns of&lt;br &gt;
optimizing linear algebra for SIMD processors.&lt;/p&gt;
&lt;p &gt;Such code graphs are embedded in higher levels containing control&lt;br &gt;
flow, first single-threaded control flow optimized for ILP, and then&lt;br &gt;
parallel control-flow, optimized to hide communication latency. At&lt;br &gt;
this level control flow is restricted to allow peak utilization of&lt;br &gt;
multi-core hardware, but enable efficient compile-time verification of&lt;br &gt;
soundness. Soundness, in this context, means that the parallelized&lt;br &gt;
program can be transformed into a code graph without synchronizing&lt;br &gt;
control flow, because every execution can be shown to produce the same&lt;br &gt;
result. Think of it as reducing the parallel debugging effort to the&lt;br &gt;
single-threaded debugging problem by eliminating the non-determinism&lt;br &gt;
inherent in parallel code. I will give a formal language description&lt;br &gt;
of the language, and the O(n) algorithm which proves soundness and&lt;br &gt;
produces the equivalent ``single threaded&#039;&#039; code graph.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Fri, 02 Jan 2009 21:41:45 -0500</pubDate>
</item>
<item>
 <title>&quot;Determinism&quot; of types?</title>
 <link>http://lambda-the-ultimate.org/node/3146</link>
 <description>&lt;p &gt;Hi everyone,&lt;br &gt;
I&#039;ve been learning a small amount of type theory lately. I&#039;ve noticed, as I&#039;m sure most people have, that types in the typed lambda calculus always seem to be &quot;determinable&quot;, I&#039;m not sure what the correct term for it is. What I mean is this: a type is a ground type, or an arrow type, such that when applied to a term of the correct type, the type on the right of the arrow is also &quot;determinable&quot;. For example, the following types are determinable:&lt;/p&gt;
&lt;p &gt;Boolean (because it is a ground type)&lt;br &gt;
a -&amp;gt; a&lt;br &gt;
a -&amp;gt; b -&amp;gt; a&lt;/p&gt;
&lt;p &gt;But these are not:&lt;br &gt;
a&lt;br &gt;
a -&amp;gt; b&lt;/p&gt;
&lt;p &gt;Could someone point me in the right direction as to what to call this property, or if it even necessarily holds, and better yet, how to *prove* that it holds? Thanks!&lt;br &gt;
-Kevin&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Wed, 31 Dec 2008 01:13:59 -0500</pubDate>
</item>
<item>
 <title>Learning Pragmatics of Implementing a &quot;Modern&quot; Type Systems</title>
 <link>http://lambda-the-ultimate.org/node/3145</link>
 <description>&lt;p &gt;Subject line pretty much says it all - type systems as in ML, Haskell, Scala, etc. &lt;/p&gt;
&lt;p &gt;I&#039;ve tried comp.lang.compilers and comp.lang.functional to no avail. Help me Obi Wan, you&#039;re my only hope :-)&lt;/p&gt;
&lt;p &gt;If this is not PLT enough a topic, I&#039;ll fully understand if the moderator deletes it.&lt;/p&gt;
&lt;p &gt;Otherwise, many, many thanks in advance.&lt;/p&gt;
&lt;p &gt;Scott&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Sun, 28 Dec 2008 14:45:28 -0500</pubDate>
</item>
<item>
 <title>Cilk++ for Linux now available for download</title>
 <link>http://lambda-the-ultimate.org/node/3143</link>
 <description>&lt;p &gt;Language extension for C/C++ for multicore-enabling performance-sensitive apps.&lt;/p&gt;
&lt;p &gt;3 Editions (Open Source, Academic, Professional) now available.&lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://www.cilk.com/&quot;&gt;Cilk Arts home page&lt;/a&gt;&lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://www.cilk.com/multicore-blog/bid/7775/Cilk-for-Linux-a-great-stocking-stuffer&quot;&gt;Blog post re: Cilk++ for Linux&lt;/a&gt;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Sat, 27 Dec 2008 10:07:17 -0500</pubDate>
</item>
<item>
 <title>The Lambda Cube &amp; Some Programming Languages</title>
 <link>http://lambda-the-ultimate.org/node/3142</link>
 <description>&lt;p &gt;In the lambda cube, the three axes are terms-depending-on-types, types-depending-on-types and types-depending-on-types. To check my intuition:&lt;/p&gt;
&lt;p &gt;Isn&#039;t sub-typing, in the manner of Java, C++ and C#, an example of plain terms-depending-on-types?&lt;/p&gt;
&lt;p &gt;Are prototype-based languages, such as Javascript, plain terms-depending-on-terms?&lt;/p&gt;
&lt;p &gt;Are multi-parameter typeclasses, C++ templates and &quot;generics&quot; examples of types-depending-on-types? Are associated types (for example, the iterator for a certain collection) &quot;higher-order&quot; or are they essentially the same thing?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Fri, 26 Dec 2008 06:46:51 -0500</pubDate>
</item>
<item>
 <title>A Variation of the Expression Problem and two Solutions in Scala</title>
 <link>http://lambda-the-ultimate.org/node/3141</link>
 <description>&lt;p &gt;&lt;em &gt; Abstract: The expression families problem can be defined as the problem of achieving reusability and composability across the components involved in a family of related datatypes and corresponding operations over those datatypes. Like with the traditional expression problem, adding new components (either variants or operations) should be possible while preserving modular and static type-safety. Moreover, different combinations of components should have different type identities and the subtyping relationships between the different combinations should be preserved. By generalizing previous work that explored the connection between type-theoretic encodings of datatypes and visitors, we propose two solutions for this problem in Scala using modular visitor components. These components can be grouped into features that can be easily composed in a feature-oriented programming style to obtain customized datatypes and operations. &lt;/em&gt; &lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://www.comlab.ox.ac.uk/files/1887/ModularVisitor.pdf&quot;&gt;This&lt;/a&gt; is a draft paper on a topic that I think is of the interest of the readers of this forum. It motivates a variation of the expression problem and proposes two solutions in Scala inspired by type-theoretic encodings of datatypes.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Fri, 26 Dec 2008 00:39:47 -0500</pubDate>
</item>
<item>
 <title>which program should I use? Visual Basic, C++ or Delphi</title>
 <link>http://lambda-the-ultimate.org/node/3140</link>
 <description>&lt;p &gt;I have the choice between these 3 programs to write a program which calculates the average out of 5 numbers.&lt;br &gt;
Please help me to evaluate these programs to find out which the best is.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Thu, 25 Dec 2008 12:58:07 -0500</pubDate>
</item>
<item>
 <title>Principles or patterns in FP</title>
 <link>http://lambda-the-ultimate.org/node/3139</link>
 <description>&lt;p &gt;I&#039;ve been reading articles on this site on and off for some time now. I thought I might ask my question here (I wasn’t sure where else to post, please bear with me). I have been programming in Java for a long time and recently I started programming in Erlang. I started developing a product (service) in Erlang.&lt;/p&gt;
&lt;p &gt;When I write code in Java, I try to adhere to principles of OOP to a great extent and I find that they actually help me. Like for instance, the Open/Closed principle makes code maintenance easy (among other things). With Open/Closed principle I write classes in such a way that there won&#039;t be a need to edit them after a few months. I think we can agree that it is risky editing a file when you re-visit after a few months. So for example, if my customer wants to calculate area of a new Shape, say, a Triangle, I can easily create a new type without modifying the existing code:&lt;/p&gt;
&lt;pre &gt;
abstract class Shape {
    public abstract float area();
}

class Circle extends Shape {
    private float radius;
    public Circle(float r) {
        this.radius = r;
    }
    public float area() {
        return 3.14 * radius * radius;
    }
}

class Square extends Shape {
    // override area 
}
&lt;/pre&gt;&lt;p &gt;The same in Erlang would be like so, say in shapes.erl:&lt;/p&gt;
&lt;pre &gt;
-module(shapes).
-export([area/1]).
area({circle, Radius}) -&amp;gt; 3.14 * Radius * Radius;
area({square, Side}) -&amp;gt; Side * Side.
&lt;/pre&gt;&lt;p &gt;To calculate the area of a Triangle, I would have to edit shapes.erl - which is risky because there is a chance I might mess up other functions. To be sure everything runs as expected, I&#039;d have to execute unit tests on *all* functions in this module, increasing my testing time.&lt;/p&gt;
&lt;p &gt;Like I mentioned, I am creating a product which will be used as a service. Anything that will help me roll out features or fixes sooner will greatly improve my productivity and keep in mind the costs too. My question - are there any such principles or patterns in FP that I can follow? I searched online but I wasn&#039;t satisfied with the results. With time, I will eventually learn some principles but I wanted to get some tips from the experts here. I apologize if this was discussed before, I will be happy with a link to a good article.&lt;/p&gt;
&lt;p &gt;Thank you.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Tue, 23 Dec 2008 21:39:16 -0500</pubDate>
</item>
<item>
 <title>Announcing Shapes, a functional drawing language</title>
 <link>http://lambda-the-ultimate.org/node/3138</link>
 <description>&lt;p &gt;&lt;i &gt;Merry Christmas!&lt;/i&gt;&lt;/p&gt;

&lt;blockquote &gt;
&lt;code &gt;
@nonstroking:[rgb 0.9 0.1 0.1] &amp;amp; @TeX_bleed:2bp | [rotate 20°]*[scale y:2] [] (TeX `Merry Christmas, $\lambda$!´)&lt;br &gt;
&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt; \ obj → @width:3bp | [stroke [bbox obj &#039;bleed]] &amp;amp; obj
&lt;/code&gt;
&lt;/blockquote&gt;
&lt;p &gt;Or,&lt;/p&gt;
&lt;blockquote &gt;
&lt;code &gt;
message: @nonstroking:[rgb 0.9 0.1 0.1] &amp;amp; @TeX_bleed:2bp&lt;br &gt;
&amp;nbsp;&amp;nbsp; | (TeX (&quot;Merry Christmas, $\lambda$!&quot;))&lt;br &gt;
tf: [rotate 20^^]*[scale y:2]&lt;br &gt;
obj: [tf message]&lt;br &gt;
#page &amp;lt;&amp;lt; @width:3bp | [stroke [bbox obj &#039;bleed]]&lt;br &gt;
#page &amp;lt;&amp;lt; obj&lt;br &gt;
&lt;/code&gt;
&lt;/blockquote&gt;

&lt;p &gt;This post is an announcement of the functional drawing language &lt;a href=&quot;http://lang-shapes.sourceforge.net&quot;&gt;&lt;em &gt;Shapes&lt;/em&gt;&lt;/a&gt;.  (Both block quotes above are complete Shapes programs, although the first is admittedly not the easiest program to read, and the second is slightly obscured by ASCII fallbacks.)  There are several reasons for the announcement:&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;Comments and feedback on the design would be most welcome.&lt;/li&gt;
&lt;li &gt;It would be fun if more people would like to join on the implementation-side of the project.&lt;/li&gt;
&lt;li &gt;The project is in great need of testers.&lt;/li&gt;
&lt;li &gt;Someone might actually find Shapes a useful tool!&lt;/li&gt;
&lt;/ul&gt;

&lt;p &gt;While Shapes is a domain specific language, there exist other drawing languages for the same type of applications, so the raison d&#039;être lies in &lt;em &gt;how&lt;/em&gt; the end result is obtained — that is, what programming in the language is like.  The primary audience for Shapes is the community of people with a taste for functional languages.&lt;/p&gt;

&lt;p &gt;Then, given that a DSL is being developed, there is an opportunity to dwell upon the general purpose aspects of the language.  This is an important motivation behind the development.&lt;/p&gt;

&lt;p &gt;So, if you didn&#039;t follow the link at the top of the post, you might be wondering what Shapes is really like.  Here is a short list of key properties:&lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;Syntax is tailored for the application at hand (path construction and LaTeX strings are prioritized use cases).&lt;/li&gt;
&lt;li &gt;Pure functions have no side effects.&lt;/li&gt;
&lt;li &gt;Pure functions may be implemented using states.&lt;/li&gt;
&lt;li &gt;Both lexical and dynamic binding.&lt;/li&gt;
&lt;li &gt;Named arguments.&lt;/li&gt;
&lt;li &gt;Dynamically typed.&lt;/li&gt;
&lt;li &gt;Lazy evaluation.&lt;/li&gt;
&lt;li &gt;CPS (currently only used for escape continuations).&lt;/li&gt;
&lt;/ul&gt;

&lt;p &gt;Error messages are often helpful, there is a fair amount of documentation at the project web site, there is a friendly shapes-mode for Emacs, and I will personally be more than happy to help out in all ways.  Please have a look at the online documentation and consider trying it out hands on!&lt;/p&gt;

&lt;p &gt;Shapes is developed under the GPL, and implemented in C++.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Mon, 22 Dec 2008 21:04:17 -0500</pubDate>
</item>
</channel>
</rss>
