An example of a more complex script is Tamarind: a CGI application in TXR which lets users log in with their IMAP&#x2F;SASL credentials and edit their personal list of randomly generated throwaway e-mail aliases.<p><a href="http:&#x2F;&#x2F;www.kylheku.com&#x2F;cgit&#x2F;tamarind&#x2F;tree" rel="nofollow">http:&#x2F;&#x2F;www.kylheku.com&#x2F;cgit&#x2F;tamarind&#x2F;tree</a><p>This is a CGI script that runs under Apache. It doesn&#x27;t use any web framework; everything is there in the code: parsing URL parameters and form data, handling sessions and authentication, etc.<p>In early versions, I scanned the &#x2F;etc&#x2F;passwd file and authenticated users by doing raw crypt calls on the passwords. Then I upgraded to SASL authentication: sending tokens to &quot;saslauthd&quot; over Unix sockets. This is in<p><a href="http:&#x2F;&#x2F;www.kylheku.com&#x2F;cgit&#x2F;tamarind&#x2F;tree&#x2F;auth.txr" rel="nofollow">http:&#x2F;&#x2F;www.kylheku.com&#x2F;cgit&#x2F;tamarind&#x2F;tree&#x2F;auth.txr</a><p>Then I added IMAP. That was an example of incremental development. I tested the IMAP code in isolation and then just planted it into auth.txr.<p>I was surprised because I was sure that would be done in Lisp; but the pattern language easily implements the IMAP conversation needed to authenticate.<p>I expected most of Tamarind to be Lisp; I&#x27;m surprised how much of it in general ended up TXR via a path of least resistance.