<DIV>When I compile curl-1.3.5 on Windows xp. I run the prompt "runghc Setup.hs configure " I got the following error</DIV>
<DIV>&nbsp;</DIV>
<DIV>Setup.hs: Missing dependency on a foreign library:<BR>* Missing C library: curl<BR>This problem can usually be solved by installing the system package that<BR>provides this library (you may need the "-dev" version). If the library is<BR>already installed but in a non-standard location then you can use the flags<BR>--extra-include-dirs= and --extra-lib-dirs= to specify where it is.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I don't know how to fix this problem. Who knows? Please&nbsp;come to help me .<BR><BR></DIV>
<DIV></DIV><BR><PRE>在2009-07-21&nbsp;09:43:45,haskell-cafe-request@haskell.org&nbsp;写道:
&gt;Send&nbsp;Haskell-Cafe&nbsp;mailing&nbsp;list&nbsp;submissions&nbsp;to
&gt;        haskell-cafe@haskell.org
&gt;
&gt;To&nbsp;subscribe&nbsp;or&nbsp;unsubscribe&nbsp;via&nbsp;the&nbsp;World&nbsp;Wide&nbsp;Web,&nbsp;visit
&gt;        http://www.haskell.org/mailman/listinfo/haskell-cafe
&gt;or,&nbsp;via&nbsp;email,&nbsp;send&nbsp;a&nbsp;message&nbsp;with&nbsp;subject&nbsp;or&nbsp;body&nbsp;'help'&nbsp;to
&gt;        haskell-cafe-request@haskell.org
&gt;
&gt;You&nbsp;can&nbsp;reach&nbsp;the&nbsp;person&nbsp;managing&nbsp;the&nbsp;list&nbsp;at
&gt;        haskell-cafe-owner@haskell.org
&gt;
&gt;When&nbsp;replying,&nbsp;please&nbsp;edit&nbsp;your&nbsp;Subject&nbsp;line&nbsp;so&nbsp;it&nbsp;is&nbsp;more&nbsp;specific
&gt;than&nbsp;"Re:&nbsp;Contents&nbsp;of&nbsp;Haskell-Cafe&nbsp;digest..."
&gt;
&gt;
&gt;Today's&nbsp;Topics:
&gt;
&gt;&nbsp;&nbsp;&nbsp;1.&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control&nbsp;(Vasili&nbsp;I.&nbsp;Galchin)
&gt;&nbsp;&nbsp;&nbsp;2.&nbsp;FFI&nbsp;problem&nbsp;-&nbsp;possibility&nbsp;of&nbsp;CStringLen&nbsp;overflow?&nbsp;(Robin&nbsp;Green)
&gt;&nbsp;&nbsp;&nbsp;3.&nbsp;Re:&nbsp;FFI&nbsp;problem&nbsp;-&nbsp;possibility&nbsp;of&nbsp;CStringLen&nbsp;overflow?
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Bulat&nbsp;Ziganshin)
&gt;&nbsp;&nbsp;&nbsp;4.&nbsp;Re:&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control&nbsp;(Magnus&nbsp;Therning)
&gt;&nbsp;&nbsp;&nbsp;5.&nbsp;Re:&nbsp;was:&nbsp;Debugging&nbsp;methods&nbsp;for&nbsp;haskell&nbsp;structured        data&nbsp;types
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;right&nbsp;way&nbsp;in&nbsp;haskell&nbsp;(Jon&nbsp;Fairbairn)
&gt;&nbsp;&nbsp;&nbsp;6.&nbsp;Re:&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control&nbsp;(Bulat&nbsp;Ziganshin)
&gt;&nbsp;&nbsp;&nbsp;7.&nbsp;Re:&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control&nbsp;(Robin&nbsp;Green)
&gt;&nbsp;&nbsp;&nbsp;8.&nbsp;Re:&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control&nbsp;(Miguel&nbsp;Mitrofanov)
&gt;&nbsp;&nbsp;&nbsp;9.&nbsp;Re:&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control&nbsp;(Joe&nbsp;Fredette)
&gt;&nbsp;&nbsp;10.&nbsp;Re:&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control&nbsp;(Wolfgang&nbsp;Jeltsch)
&gt;&nbsp;&nbsp;11.&nbsp;Re[2]:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Bulat&nbsp;Ziganshin)
&gt;&nbsp;&nbsp;12.&nbsp;Re:&nbsp;ANN:&nbsp;cautious-file&nbsp;0.1.1:&nbsp;Ways&nbsp;to&nbsp;write&nbsp;a&nbsp;file
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cautiously,&nbsp;to&nbsp;avoid&nbsp;data&nbsp;loss&nbsp;(Robin&nbsp;Green)
&gt;&nbsp;&nbsp;13.&nbsp;Re:&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list&nbsp;comprehensions&nbsp;(Roel&nbsp;van&nbsp;Dijk)
&gt;&nbsp;&nbsp;14.&nbsp;Re:&nbsp;ANN:&nbsp;cautious-file&nbsp;0.1.1:&nbsp;Ways&nbsp;to&nbsp;write&nbsp;a&nbsp;file
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cautiously,&nbsp;to&nbsp;avoid&nbsp;data&nbsp;loss&nbsp;(Felipe&nbsp;Lessa)
&gt;&nbsp;&nbsp;15.&nbsp;Typeclass&nbsp;default&nbsp;implementation&nbsp;in&nbsp;subclasses&nbsp;(Andy&nbsp;Gimblett)
&gt;&nbsp;&nbsp;16.&nbsp;ICFP&nbsp;contest&nbsp;write-up&nbsp;(Rafael&nbsp;Gustavo&nbsp;da&nbsp;Cunha&nbsp;Pereira&nbsp;Pinto)
&gt;&nbsp;&nbsp;17.&nbsp;SpecConstr&nbsp;difficulties&nbsp;(Reiner&nbsp;Pope)
&gt;&nbsp;&nbsp;18.&nbsp;Re:&nbsp;Typeclass&nbsp;default&nbsp;implementation&nbsp;in&nbsp;subclasses&nbsp;(Roel&nbsp;van&nbsp;Dijk)
&gt;&nbsp;&nbsp;19.&nbsp;ANNOUNCE:&nbsp;graphviz-2999.1.0.1&nbsp;(Ivan&nbsp;Lazar&nbsp;Miljenovic)
&gt;&nbsp;&nbsp;20.&nbsp;Re:&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list&nbsp;comprehensions&nbsp;(Roel&nbsp;van&nbsp;Dijk)
&gt;&nbsp;&nbsp;21.&nbsp;RE:&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list&nbsp;comprehensions
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Sittampalam,&nbsp;Ganesh)
&gt;&nbsp;&nbsp;22.&nbsp;Re:&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list&nbsp;comprehensions&nbsp;(Roel&nbsp;van&nbsp;Dijk)
&gt;&nbsp;&nbsp;23.&nbsp;Re:&nbsp;FFI&nbsp;problem&nbsp;-&nbsp;possibility&nbsp;of&nbsp;CStringLen&nbsp;overflow?
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Jason&nbsp;Dagit)
&gt;&nbsp;&nbsp;24.&nbsp;Anglohaskell&nbsp;-&nbsp;wifi&nbsp;signups&nbsp;(Philippa&nbsp;Cowderoy)
&gt;&nbsp;&nbsp;25.&nbsp;Pruning&nbsp;the&nbsp;Front&nbsp;Page&nbsp;(Thomas&nbsp;DuBuisson)
&gt;&nbsp;&nbsp;26.&nbsp;Re:&nbsp;Pruning&nbsp;the&nbsp;Front&nbsp;Page&nbsp;(Don&nbsp;Stewart)
&gt;&nbsp;&nbsp;27.&nbsp;Re:&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list&nbsp;comprehensions
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Max&nbsp;Bolingbroke)
&gt;&nbsp;&nbsp;28.&nbsp;Re:&nbsp;Ambiguous&nbsp;type&nbsp;variable&nbsp;-&nbsp;help!&nbsp;(phil@beadling.co.uk)
&gt;&nbsp;&nbsp;29.&nbsp;Re:&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list&nbsp;comprehensions
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Nicolas&nbsp;Pouillard)
&gt;&nbsp;&nbsp;30.&nbsp;Re:&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list&nbsp;comprehensions&nbsp;(porges@porg.es)
&gt;&nbsp;&nbsp;31.&nbsp;Re:&nbsp;Pruning&nbsp;the&nbsp;Front&nbsp;Page&nbsp;(Gwern&nbsp;Branwen)
&gt;
&gt;
&gt;----------------------------------------------------------------------
&gt;
&gt;Message:&nbsp;1
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;03:26:52&nbsp;-0500
&gt;From:&nbsp;"Vasili&nbsp;I.&nbsp;Galchin"&nbsp;&lt;vigalchin@gmail.com&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Cc:&nbsp;Galchin&nbsp;Vasili&nbsp;&lt;vigalchin@gmail.com&gt;
&gt;Message-ID:
&gt;        &lt;5ae4f2ba0907200126j56a497earb06ae885dbb7bb81@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset="iso-8859-1"
&gt;
&gt;Hello,
&gt;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;seems&nbsp;to&nbsp;me&nbsp;that&nbsp;Hackage&nbsp;doesn't&nbsp;provide&nbsp;version&nbsp;control,&nbsp;e.g.&nbsp;check
&gt;out&nbsp;and&nbsp;check&nbsp;in.&nbsp;Am&nbsp;I&nbsp;incorrect?
&gt;
&gt;Kind&nbsp;regards,&nbsp;Vasili
&gt;--------------&nbsp;next&nbsp;part&nbsp;--------------
&gt;An&nbsp;HTML&nbsp;attachment&nbsp;was&nbsp;scrubbed...
&gt;URL:&nbsp;http://www.haskell.org/pipermail/haskell-cafe/attachments/20090720/9a2c1cb3/attachment-0001.html
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;2
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;03:24:49&nbsp;+0100
&gt;From:&nbsp;Robin&nbsp;Green&nbsp;&lt;greenrd@greenrd.org&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;FFI&nbsp;problem&nbsp;-&nbsp;possibility&nbsp;of&nbsp;CStringLen
&gt;        overflow?
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;20090720032449.690fdf47@fedora&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=US-ASCII
&gt;
&gt;While&nbsp;rewriting&nbsp;cautious-file&nbsp;to&nbsp;use&nbsp;ByteStrings&nbsp;and&nbsp;FFI&nbsp;just&nbsp;now,&nbsp;I
&gt;came&nbsp;across&nbsp;this&nbsp;potential&nbsp;problem:
&gt;
&gt;Why&nbsp;does&nbsp;the&nbsp;FFI&nbsp;specification&nbsp;define&nbsp;CStringLen&nbsp;as&nbsp;(Ptr&nbsp;CChar,&nbsp;Int)?
&gt;As&nbsp;the&nbsp;FFI&nbsp;specification&nbsp;itself&nbsp;notes,&nbsp;Haskell&nbsp;98&nbsp;implementors&nbsp;are
&gt;allowed&nbsp;to&nbsp;have&nbsp;a&nbsp;quite&nbsp;small&nbsp;range&nbsp;for&nbsp;Int&nbsp;(only&nbsp;up&nbsp;to&nbsp;2^29-1)&nbsp;-&nbsp;so&nbsp;you
&gt;could&nbsp;in&nbsp;principle&nbsp;have&nbsp;a&nbsp;very&nbsp;large&nbsp;String&nbsp;which&nbsp;cannot&nbsp;be&nbsp;represented
&gt;as&nbsp;a&nbsp;CStringLen,&nbsp;or&nbsp;a&nbsp;very&nbsp;large&nbsp;CString&nbsp;which&nbsp;cannot&nbsp;be&nbsp;represented&nbsp;as
&gt;a&nbsp;CStringLen.&nbsp;They&nbsp;would&nbsp;take&nbsp;up&nbsp;wads&nbsp;of&nbsp;memory,&nbsp;so&nbsp;this&nbsp;has&nbsp;probably
&gt;never&nbsp;happened&nbsp;yet,&nbsp;but&nbsp;it's&nbsp;in&nbsp;principle&nbsp;possible,&nbsp;no?
&gt;
&gt;If&nbsp;so,&nbsp;what&nbsp;are&nbsp;the&nbsp;implications&nbsp;of&nbsp;this&nbsp;for&nbsp;code&nbsp;correctness?
&gt;--&nbsp;
&gt;Robin
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;3
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;12:49:38&nbsp;+0400
&gt;From:&nbsp;Bulat&nbsp;Ziganshin&nbsp;&lt;bulat.ziganshin@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;FFI&nbsp;problem&nbsp;-&nbsp;possibility&nbsp;of&nbsp;CStringLen
&gt;        overflow?
&gt;To:&nbsp;Robin&nbsp;Green&nbsp;&lt;greenrd@greenrd.org&gt;
&gt;Cc:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;1096519401.20090720124938@gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=us-ascii
&gt;
&gt;Hello&nbsp;Robin,
&gt;
&gt;Monday,&nbsp;July&nbsp;20,&nbsp;2009,&nbsp;6:24:49&nbsp;AM,&nbsp;you&nbsp;wrote:
&gt;
&gt;&gt;&nbsp;Why&nbsp;does&nbsp;the&nbsp;FFI&nbsp;specification&nbsp;define&nbsp;CStringLen&nbsp;as&nbsp;(Ptr&nbsp;CChar,&nbsp;Int)?
&gt;
&gt;1.&nbsp;i&nbsp;think&nbsp;it&nbsp;was&nbsp;done&nbsp;to&nbsp;simplify&nbsp;using&nbsp;the&nbsp;api
&gt;2.&nbsp;hugs&nbsp;usually&nbsp;don't&nbsp;used&nbsp;for&nbsp;data-massive&nbsp;apps,&nbsp;it's&nbsp;niche&nbsp;is&nbsp;learning&nbsp;and
&gt;quick&nbsp;development
&gt;
&gt;--&nbsp;
&gt;Best&nbsp;regards,
&gt;&nbsp;Bulat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mailto:Bulat.Ziganshin@gmail.com
&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;4
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;10:03:56&nbsp;+0100
&gt;From:&nbsp;Magnus&nbsp;Therning&nbsp;&lt;magnus@therning.org&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;"Vasili&nbsp;I.&nbsp;Galchin"&nbsp;&lt;vigalchin@gmail.com&gt;
&gt;Cc:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:
&gt;        &lt;e040b520907200203w2f6392acy62e6571899866253@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=UTF-8
&gt;
&gt;On&nbsp;Mon,&nbsp;Jul&nbsp;20,&nbsp;2009&nbsp;at&nbsp;9:26&nbsp;AM,&nbsp;Vasili&nbsp;I.&nbsp;Galchin&lt;vigalchin@gmail.com&gt;&nbsp;wrote:
&gt;&gt;&nbsp;Hello,
&gt;&gt;
&gt;&gt;&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;&nbsp;It&nbsp;seems&nbsp;to&nbsp;me&nbsp;that&nbsp;Hackage&nbsp;doesn't&nbsp;provide&nbsp;version&nbsp;control,&nbsp;e.g.&nbsp;check
&gt;&gt;&nbsp;out&nbsp;and&nbsp;check&nbsp;in.&nbsp;Am&nbsp;I&nbsp;incorrect?
&gt;
&gt;Hackage&nbsp;is,&nbsp;AFAIU,&nbsp;a&nbsp;repository&nbsp;where&nbsp;_released_&nbsp;versions&nbsp;of
&gt;libraries/tools/etc&nbsp;related&nbsp;to&nbsp;Haskell&nbsp;can&nbsp;be&nbsp;kept.&nbsp;&nbsp;It&nbsp;is&nbsp;not&nbsp;fully
&gt;comparable&nbsp;to&nbsp;SourceForge,&nbsp;Github,&nbsp;or&nbsp;any&nbsp;other&nbsp;_source&nbsp;hosting_
&gt;service.
&gt;
&gt;If&nbsp;you&nbsp;are&nbsp;looking&nbsp;for&nbsp;source&nbsp;hosting&nbsp;then&nbsp;take&nbsp;a&nbsp;look&nbsp;at&nbsp;SF,&nbsp;Github,
&gt;Google&nbsp;Code,&nbsp;or&nbsp;something&nbsp;like&nbsp;that.&nbsp;&nbsp;Then&nbsp;upload&nbsp;_released_&nbsp;versions
&gt;to&nbsp;Hackage.&nbsp;&nbsp;IIRC&nbsp;there&nbsp;is&nbsp;also&nbsp;the&nbsp;possibility&nbsp;of&nbsp;having&nbsp;a&nbsp;Darcs&nbsp;repo
&gt;on&nbsp;community.haskell.org.
&gt;
&gt;/M
&gt;
&gt;--&nbsp;
&gt;Magnus&nbsp;Therning&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(OpenPGP:&nbsp;0xAB4DFBA4)
&gt;magnusï¼&nbsp;therning.org&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jabber:&nbsp;magnusï¼&nbsp;therning.org
&gt;http://therning.org/magnus&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;identi.ca|twitter:&nbsp;magthe
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;5
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;10:26:02&nbsp;+0100
&gt;From:&nbsp;Jon&nbsp;Fairbairn&nbsp;&lt;jon.fairbairn@cl.cam.ac.uk&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;Re:&nbsp;was:&nbsp;Debugging&nbsp;methods&nbsp;for&nbsp;haskell
&gt;        structured        data&nbsp;types&nbsp;the&nbsp;right&nbsp;way&nbsp;in&nbsp;haskell
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;wfd47viu39.fsf@calligramme.charmers&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=utf-8
&gt;
&gt;Fernan&nbsp;Bolando&nbsp;&lt;fernanbolando@mailc.net&gt;&nbsp;writes:
&gt;
&gt;&gt;&nbsp;On&nbsp;Sun,&nbsp;Jul&nbsp;19,&nbsp;2009&nbsp;at&nbsp;7:40&nbsp;AM,&nbsp;wren&nbsp;ng&nbsp;thornton&lt;wren@freegeek.org&gt;&nbsp;wrote:
&gt;&gt;&gt;&nbsp;Fernan&nbsp;Bolando&nbsp;wrote:
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&nbsp;The&nbsp;intention&nbsp;is&nbsp;z0&nbsp;is&nbsp;a&nbsp;system&nbsp;parameter&nbsp;and&nbsp;database,&nbsp;it&nbsp;contains&nbsp;a
&gt;&gt;&gt;&gt;&nbsp;set&nbsp;of&nbsp;info&nbsp;needed&nbsp;to&nbsp;define&nbsp;a&nbsp;particular&nbsp;simulation
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;A&nbsp;single-constructor&nbsp;ADT,&nbsp;especially&nbsp;with&nbsp;the&nbsp;labeled-fields&nbsp;syntax,&nbsp;is
&gt;&gt;&gt;&nbsp;pretty&nbsp;close&nbsp;to&nbsp;C&nbsp;structs;&nbsp;no&nbsp;need&nbsp;to&nbsp;reinvent&nbsp;them&nbsp;and&nbsp;give&nbsp;yourself
&gt;&gt;&gt;&nbsp;headaches.
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;Really,&nbsp;the&nbsp;only&nbsp;thing&nbsp;you&nbsp;should&nbsp;be&nbsp;using&nbsp;lists&nbsp;for&nbsp;is&nbsp;a&nbsp;variable-length
&gt;&gt;&gt;&nbsp;sequence&nbsp;of&nbsp;elements&nbsp;drawn&nbsp;from&nbsp;the&nbsp;same&nbsp;type&nbsp;and&nbsp;distinguished&nbsp;only&nbsp;by
&gt;&gt;&gt;&nbsp;their&nbsp;position&nbsp;in&nbsp;the&nbsp;sequence.
&gt;&gt;
&gt;&gt;&nbsp;This&nbsp;is&nbsp;the&nbsp;kind&nbsp;of&nbsp;code&nbsp;recommendations&nbsp;I&nbsp;was&nbsp;looking.
&gt;
&gt;I'd&nbsp;worked&nbsp;out&nbsp;a&nbsp;longer&nbsp;reply&nbsp;over&nbsp;the&nbsp;weekend,&nbsp;but&nbsp;wren&nbsp;got&nbsp;there&nbsp;first
&gt;(It&nbsp;hadn't&nbsp;occured&nbsp;to&nbsp;me&nbsp;that&nbsp;anyone&nbsp;would&nbsp;write&nbsp;that&nbsp;much&nbsp;code&nbsp;without
&gt;knowing&nbsp;about&nbsp;algebraic&nbsp;types,&nbsp;so&nbsp;thought&nbsp;something&nbsp;else&nbsp;was&nbsp;going&nbsp;on).
&gt;
&gt;I'd&nbsp;like&nbsp;to&nbsp;add&nbsp;that&nbsp;thinking&nbsp;about&nbsp;the&nbsp;C&nbsp;code&nbsp;for&nbsp;a&nbsp;programme&nbsp;like&nbsp;this
&gt;is&nbsp;counterproductive.&nbsp;If&nbsp;you&nbsp;are&nbsp;doing&nbsp;various&nbsp;mathematical&nbsp;operations,
&gt;it's&nbsp;better&nbsp;to&nbsp;go&nbsp;straight&nbsp;from&nbsp;the&nbsp;mathematics&nbsp;to&nbsp;Haskell,&nbsp;and&nbsp;work&nbsp;out
&gt;the&nbsp;appropriate&nbsp;abstractions&nbsp;(in&nbsp;Haskell)&nbsp;for&nbsp;the&nbsp;operations&nbsp;you&nbsp;are
&gt;using.&nbsp;You'll&nbsp;generally&nbsp;end&nbsp;up&nbsp;with&nbsp;much&nbsp;shorter&nbsp;code&nbsp;that&nbsp;is&nbsp;easier&nbsp;to
&gt;maintain.
&gt;
&gt;It&nbsp;might&nbsp;be&nbsp;worth&nbsp;pointing&nbsp;out&nbsp;that&nbsp;you&nbsp;can&nbsp;do&nbsp;things&nbsp;with&nbsp;Haskell&nbsp;data
&gt;structures&nbsp;that&nbsp;you&nbsp;can't&nbsp;do&nbsp;conveniently&nbsp;in&nbsp;C.&nbsp;For&nbsp;example,&nbsp;if&nbsp;you&nbsp;were
&gt;doing&nbsp;something&nbsp;that&nbsp;involved&nbsp;calculating&nbsp;the&nbsp;determinants&nbsp;of&nbsp;matrices
&gt;fairly&nbsp;often,&nbsp;but&nbsp;you&nbsp;didn't&nbsp;know&nbsp;in&nbsp;advance&nbsp;which&nbsp;matrices,&nbsp;you&nbsp;could
&gt;define&nbsp;your&nbsp;own&nbsp;matrix&nbsp;type&nbsp;like&nbsp;this&nbsp;(roughly):
&gt;
&gt;data&nbsp;MyMatrix&nbsp;t&nbsp;=&nbsp;MM&nbsp;{theNumbers::&nbsp;Matrix&nbsp;t,&nbsp;my_determinant::&nbsp;t}
&gt;
&gt;make_matrix&nbsp;m
&gt;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;MM&nbsp;{theNumbers&nbsp;=&nbsp;m,&nbsp;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my_determinant&nbsp;=&nbsp;determinant&nbsp;m
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&gt;
&gt;and&nbsp;then&nbsp;use&nbsp;make_matrix&nbsp;whenever&nbsp;you&nbsp;make&nbsp;a&nbsp;new&nbsp;matrix&nbsp;and
&gt;my_determinant&nbsp;whenever&nbsp;you&nbsp;want&nbsp;a&nbsp;determinant.
&gt;
&gt;Now,&nbsp;although&nbsp;to&nbsp;a&nbsp;C&nbsp;programmer&nbsp;this&nbsp;looks&nbsp;like&nbsp;you&nbsp;calculate&nbsp;the
&gt;determinant&nbsp;of&nbsp;every&nbsp;matrix,&nbsp;laziness&nbsp;means&nbsp;that&nbsp;you&nbsp;only&nbsp;calculate&nbsp;the
&gt;ones&nbsp;you&nbsp;use,&nbsp;and&nbsp;calculate&nbsp;them&nbsp;at&nbsp;most&nbsp;once&nbsp;for&nbsp;each&nbsp;matrix.
&gt;
&gt;
&gt;--&nbsp;
&gt;Jón&nbsp;Fairbairn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jon.Fairbairn@cl.cam.ac.uk
&gt;
&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;6
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;13:27:06&nbsp;+0400
&gt;From:&nbsp;Bulat&nbsp;Ziganshin&nbsp;&lt;bulat.ziganshin@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;"Vasili&nbsp;I.&nbsp;Galchin"&nbsp;&lt;vigalchin@gmail.com&gt;
&gt;Cc:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;1393740130.20090720132706@gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=iso-8859-1
&gt;
&gt;Hello&nbsp;Vasili,
&gt;
&gt;Monday,&nbsp;July&nbsp;20,&nbsp;2009,&nbsp;12:26:52&nbsp;PM,&nbsp;you&nbsp;wrote:
&gt;
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;seems&nbsp;to&nbsp;me&nbsp;that&nbsp;Hackage&nbsp;doesn't&nbsp;provide&nbsp;version&nbsp;control,
&gt;&gt;&nbsp;e.g.&nbsp;check&nbsp;out&nbsp;and&nbsp;check&nbsp;in.&nbsp;Am&nbsp;I&nbsp;incorrect?
&gt;
&gt;i&nbsp;recommend&nbsp;you&nbsp;to&nbsp;use&nbsp;either&nbsp;codeplex&nbsp;or&nbsp;code.google
&gt;
&gt;
&gt;--&nbsp;
&gt;Best&nbsp;regards,
&gt;&nbsp;Bulat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mailto:Bulat.Ziganshin@gmail.com
&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;7
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;04:25:25&nbsp;+0100
&gt;From:&nbsp;Robin&nbsp;Green&nbsp;&lt;greenrd@greenrd.org&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;20090720042525.3e02b4ae@fedora&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=UTF-8
&gt;
&gt;On&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;10:03:56&nbsp;+0100
&gt;Magnus&nbsp;Therning&nbsp;&lt;magnus@therning.org&gt;&nbsp;wrote:
&gt;
&gt;&gt;&nbsp;On&nbsp;Mon,&nbsp;Jul&nbsp;20,&nbsp;2009&nbsp;at&nbsp;9:26&nbsp;AM,&nbsp;Vasili&nbsp;I.
&gt;&gt;&nbsp;Galchin&lt;vigalchin@gmail.com&gt;&nbsp;wrote:
&gt;&gt;&nbsp;&gt;&nbsp;Hello,
&gt;&gt;&nbsp;&gt;
&gt;&gt;&nbsp;&gt;&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;&nbsp;It&nbsp;seems&nbsp;to&nbsp;me&nbsp;that&nbsp;Hackage&nbsp;doesn't&nbsp;provide&nbsp;version&nbsp;control,
&gt;&gt;&nbsp;&gt;&nbsp;e.g.&nbsp;check&nbsp;out&nbsp;and&nbsp;check&nbsp;in.&nbsp;Am&nbsp;I&nbsp;incorrect?
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;Hackage&nbsp;is,&nbsp;AFAIU,&nbsp;a&nbsp;repository&nbsp;where&nbsp;_released_&nbsp;versions&nbsp;of
&gt;&gt;&nbsp;libraries/tools/etc&nbsp;related&nbsp;to&nbsp;Haskell&nbsp;can&nbsp;be&nbsp;kept.&nbsp;&nbsp;It&nbsp;is&nbsp;not&nbsp;fully
&gt;&gt;&nbsp;comparable&nbsp;to&nbsp;SourceForge,&nbsp;Github,&nbsp;or&nbsp;any&nbsp;other&nbsp;_source&nbsp;hosting_
&gt;&gt;&nbsp;service.
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;If&nbsp;you&nbsp;are&nbsp;looking&nbsp;for&nbsp;source&nbsp;hosting&nbsp;then&nbsp;take&nbsp;a&nbsp;look&nbsp;at&nbsp;SF,&nbsp;Github,
&gt;&gt;&nbsp;Google&nbsp;Code,&nbsp;or&nbsp;something&nbsp;like&nbsp;that.&nbsp;&nbsp;Then&nbsp;upload&nbsp;_released_&nbsp;versions
&gt;&gt;&nbsp;to&nbsp;Hackage.&nbsp;&nbsp;IIRC&nbsp;there&nbsp;is&nbsp;also&nbsp;the&nbsp;possibility&nbsp;of&nbsp;having&nbsp;a&nbsp;Darcs&nbsp;repo
&gt;&gt;&nbsp;on&nbsp;community.haskell.org.
&gt;
&gt;Yes,&nbsp;and&nbsp;darcs&nbsp;repos&nbsp;can&nbsp;also&nbsp;be&nbsp;hosted&nbsp;on&nbsp;patch-tag.com.
&gt;community.haskell.org&nbsp;requires&nbsp;you&nbsp;to&nbsp;wait&nbsp;for&nbsp;a&nbsp;volunteer&nbsp;to&nbsp;review
&gt;every&nbsp;new&nbsp;project&nbsp;request.&nbsp;Although,&nbsp;you&nbsp;don't&nbsp;need&nbsp;to&nbsp;make&nbsp;a
&gt;project&nbsp;request&nbsp;if&nbsp;you&nbsp;only&nbsp;want&nbsp;a&nbsp;1-developer&nbsp;repository.&nbsp;And&nbsp;by&nbsp;the
&gt;way,&nbsp;it&nbsp;only&nbsp;hosts&nbsp;Haskell-related&nbsp;projects,&nbsp;not&nbsp;arbitrary&nbsp;darcs
&gt;repositories.
&gt;
&gt;patch-tag.com&nbsp;doesn't&nbsp;have&nbsp;those&nbsp;constraints.
&gt;--&nbsp;
&gt;Robin
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;8
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;13:41:40&nbsp;+0400
&gt;From:&nbsp;Miguel&nbsp;Mitrofanov&nbsp;&lt;miguelimo38@yandex.ru&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;Bulat&nbsp;Ziganshin&nbsp;&lt;Bulat.Ziganshin@gmail.com&gt;
&gt;Cc:&nbsp;"Vasili&nbsp;I.&nbsp;Galchin"&nbsp;&lt;vigalchin@gmail.com&gt;,
&gt;        haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;A8F1BE77-CDC2-4800-9072-78B446CDF84E@yandex.ru&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=US-ASCII;&nbsp;format=flowed
&gt;
&gt;Or&nbsp;patch-tag.com
&gt;
&gt;On&nbsp;20&nbsp;Jul&nbsp;2009,&nbsp;at&nbsp;13:27,&nbsp;Bulat&nbsp;Ziganshin&nbsp;wrote:
&gt;
&gt;&gt;&nbsp;Hello&nbsp;Vasili,
&gt;&gt;
&gt;&gt;&nbsp;Monday,&nbsp;July&nbsp;20,&nbsp;2009,&nbsp;12:26:52&nbsp;PM,&nbsp;you&nbsp;wrote:
&gt;&gt;
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;seems&nbsp;to&nbsp;me&nbsp;that&nbsp;Hackage&nbsp;doesn't&nbsp;provide&nbsp;version&nbsp;control,
&gt;&gt;&gt;&nbsp;e.g.&nbsp;check&nbsp;out&nbsp;and&nbsp;check&nbsp;in.&nbsp;Am&nbsp;I&nbsp;incorrect?
&gt;&gt;
&gt;&gt;&nbsp;i&nbsp;recommend&nbsp;you&nbsp;to&nbsp;use&nbsp;either&nbsp;codeplex&nbsp;or&nbsp;code.google
&gt;&gt;
&gt;&gt;
&gt;&gt;&nbsp;--&nbsp;
&gt;&gt;&nbsp;Best&nbsp;regards,
&gt;&gt;&nbsp;Bulat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mailto:Bulat.Ziganshin@gmail.com
&gt;&gt;
&gt;&gt;&nbsp;_______________________________________________
&gt;&gt;&nbsp;Haskell-Cafe&nbsp;mailing&nbsp;list
&gt;&gt;&nbsp;Haskell-Cafe@haskell.org
&gt;&gt;&nbsp;http://www.haskell.org/mailman/listinfo/haskell-cafe
&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;9
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;06:36:28&nbsp;-0400
&gt;From:&nbsp;Joe&nbsp;Fredette&nbsp;&lt;jfredett@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;Bulat&nbsp;Ziganshin&nbsp;&lt;Bulat.Ziganshin@gmail.com&gt;
&gt;Cc:&nbsp;"Vasili&nbsp;I.&nbsp;Galchin"&nbsp;&lt;vigalchin@gmail.com&gt;,
&gt;        haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;4A6448AC.6060202@gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset="iso-8859-1"
&gt;
&gt;Don't&nbsp;forget&nbsp;about&nbsp;Patch-tag!
&gt;
&gt;Bulat&nbsp;Ziganshin&nbsp;wrote:
&gt;&gt;&nbsp;Hello&nbsp;Vasili,
&gt;&gt;
&gt;&gt;&nbsp;Monday,&nbsp;July&nbsp;20,&nbsp;2009,&nbsp;12:26:52&nbsp;PM,&nbsp;you&nbsp;wrote:
&gt;&gt;
&gt;&gt;&nbsp;&nbsp;&nbsp;
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;seems&nbsp;to&nbsp;me&nbsp;that&nbsp;Hackage&nbsp;doesn't&nbsp;provide&nbsp;version&nbsp;control,
&gt;&gt;&gt;&nbsp;e.g.&nbsp;check&nbsp;out&nbsp;and&nbsp;check&nbsp;in.&nbsp;Am&nbsp;I&nbsp;incorrect?
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&gt;
&gt;&gt;&nbsp;i&nbsp;recommend&nbsp;you&nbsp;to&nbsp;use&nbsp;either&nbsp;codeplex&nbsp;or&nbsp;code.google
&gt;&gt;
&gt;&gt;
&gt;&gt;&nbsp;&nbsp;&nbsp;
&gt;--------------&nbsp;next&nbsp;part&nbsp;--------------
&gt;A&nbsp;non-text&nbsp;attachment&nbsp;was&nbsp;scrubbed...
&gt;Name:&nbsp;jfredett.vcf
&gt;Type:&nbsp;text/x-vcard
&gt;Size:&nbsp;296&nbsp;bytes
&gt;Desc:&nbsp;not&nbsp;available
&gt;Url&nbsp;:&nbsp;http://www.haskell.org/pipermail/haskell-cafe/attachments/20090720/42d7f039/jfredett-0001.vcf
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;10
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;12:40:14&nbsp;+0200
&gt;From:&nbsp;Wolfgang&nbsp;Jeltsch&nbsp;&lt;g9ks157k@acme.softbase.org&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;200907201240.14760.g9ks157k@acme.softbase.org&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;&nbsp;charset="utf-8"
&gt;
&gt;Am&nbsp;Montag,&nbsp;20.&nbsp;Juli&nbsp;2009&nbsp;05:25&nbsp;schrieb&nbsp;Robin&nbsp;Green:
&gt;&gt;&nbsp;community.haskell.org&nbsp;requires&nbsp;you&nbsp;to&nbsp;wait&nbsp;for&nbsp;a&nbsp;volunteer&nbsp;to&nbsp;review
&gt;&gt;&nbsp;every&nbsp;new&nbsp;project&nbsp;request.
&gt;
&gt;However,&nbsp;response&nbsp;times&nbsp;are&nbsp;usually&nbsp;low.
&gt;
&gt;Best&nbsp;wishes,
&gt;Wolfgang
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;11
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;14:41:25&nbsp;+0400
&gt;From:&nbsp;Bulat&nbsp;Ziganshin&nbsp;&lt;bulat.ziganshin@gmail.com&gt;
&gt;Subject:&nbsp;Re[2]:&nbsp;[Haskell-cafe]&nbsp;Hackage&nbsp;and&nbsp;version&nbsp;control
&gt;To:&nbsp;Joe&nbsp;Fredette&nbsp;&lt;jfredett@gmail.com&gt;
&gt;Cc:&nbsp;"Vasili&nbsp;I.&nbsp;Galchin"&nbsp;&lt;vigalchin@gmail.com&gt;,        Bulat&nbsp;Ziganshin
&gt;        &lt;Bulat.Ziganshin@gmail.com&gt;,&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;121430820.20090720144125@gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=us-ascii
&gt;
&gt;Hello&nbsp;Joe,
&gt;
&gt;Monday,&nbsp;July&nbsp;20,&nbsp;2009,&nbsp;2:36:28&nbsp;PM,&nbsp;you&nbsp;wrote:
&gt;
&gt;afaik&nbsp;it&nbsp;provides&nbsp;minimal&nbsp;features,&nbsp;only&nbsp;VCS,&nbsp;while&nbsp;sitea&nbsp;i&nbsp;mentioned
&gt;provides&nbsp;full&nbsp;service&nbsp;for&nbsp;OSS&nbsp;developer
&gt;
&gt;&gt;&nbsp;Don't&nbsp;forget&nbsp;about&nbsp;Patch-tag!
&gt;
&gt;&gt;&nbsp;Bulat&nbsp;Ziganshin&nbsp;wrote:
&gt;&gt;&gt;&nbsp;Hello&nbsp;Vasili,
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;Monday,&nbsp;July&nbsp;20,&nbsp;2009,&nbsp;12:26:52&nbsp;PM,&nbsp;you&nbsp;wrote:
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;
&gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;seems&nbsp;to&nbsp;me&nbsp;that&nbsp;Hackage&nbsp;doesn't&nbsp;provide&nbsp;version&nbsp;control,
&gt;&gt;&gt;&gt;&nbsp;e.g.&nbsp;check&nbsp;out&nbsp;and&nbsp;check&nbsp;in.&nbsp;Am&nbsp;I&nbsp;incorrect?
&gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;i&nbsp;recommend&nbsp;you&nbsp;to&nbsp;use&nbsp;either&nbsp;codeplex&nbsp;or&nbsp;code.google
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;
&gt;
&gt;
&gt;
&gt;--&nbsp;
&gt;Best&nbsp;regards,
&gt;&nbsp;Bulat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mailto:Bulat.Ziganshin@gmail.com
&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;12
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;06:09:50&nbsp;+0100
&gt;From:&nbsp;Robin&nbsp;Green&nbsp;&lt;greenrd@greenrd.org&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;ANN:&nbsp;cautious-file&nbsp;0.1.1:&nbsp;Ways&nbsp;to&nbsp;write&nbsp;a
&gt;        file        cautiously,&nbsp;to&nbsp;avoid&nbsp;data&nbsp;loss
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;20090720060950.076176fa@fedora&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=US-ASCII
&gt;
&gt;I've&nbsp;since&nbsp;uploaded&nbsp;two&nbsp;new&nbsp;versions&nbsp;with&nbsp;the&nbsp;following&nbsp;changes:
&gt;
&gt;0.1.2:&nbsp;Fixed&nbsp;an&nbsp;issue&nbsp;where&nbsp;it&nbsp;would&nbsp;clobber&nbsp;symbolic&nbsp;links&nbsp;to&nbsp;files,
&gt;which&nbsp;is&nbsp;usually&nbsp;not&nbsp;what&nbsp;you&nbsp;want.&nbsp;Test&nbsp;case&nbsp;added&nbsp;for&nbsp;this.
&gt;
&gt;0.1.3:&nbsp;ByteString&nbsp;support!&nbsp;FFI&nbsp;is&nbsp;also&nbsp;now&nbsp;used&nbsp;under&nbsp;the&nbsp;hood&nbsp;to&nbsp;do
&gt;things&nbsp;in&nbsp;a&nbsp;slightly&nbsp;less&nbsp;hacky&nbsp;way.
&gt;
&gt;--&nbsp;
&gt;Robin
&gt;
&gt;On&nbsp;Sun,&nbsp;19&nbsp;Jul&nbsp;2009&nbsp;23:35:34&nbsp;+0100
&gt;Robin&nbsp;Green&nbsp;&lt;greenrd@greenrd.org&gt;&nbsp;wrote:
&gt;
&gt;&gt;&nbsp;I'm&nbsp;pleased&nbsp;to&nbsp;announce&nbsp;the&nbsp;first&nbsp;public&nbsp;release&nbsp;of&nbsp;cautious-file:
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;http://hackage.haskell.org/package/cautious-file
&gt;&lt;snip&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;13
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;13:27:57&nbsp;+0200
&gt;From:&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list
&gt;        comprehensions
&gt;To:&nbsp;haskell-cafe&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;ab9dc6fa0907200427g27ef73a1vd5b852187e6b9745@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1
&gt;
&gt;I&nbsp;think&nbsp;the&nbsp;tuple&nbsp;sections&nbsp;are&nbsp;a&nbsp;great&nbsp;idea!&nbsp;It&nbsp;also&nbsp;makes&nbsp;tuple&nbsp;types
&gt;and&nbsp;constructors&nbsp;more&nbsp;alike:
&gt;
&gt;x&nbsp;::&nbsp;(,)&nbsp;String&nbsp;Double
&gt;x&nbsp;=&nbsp;(,)&nbsp;"Pi"&nbsp;3.14159
&gt;
&gt;I&nbsp;can&nbsp;also&nbsp;see&nbsp;some&nbsp;uses&nbsp;in&nbsp;writing&nbsp;pointfree&nbsp;code.&nbsp;I&nbsp;would&nbsp;definitely
&gt;want&nbsp;this&nbsp;in&nbsp;a&nbsp;future&nbsp;GHC&nbsp;(or&nbsp;any&nbsp;other&nbsp;Haskell&nbsp;compiler/interpreter)
&gt;release.
&gt;
&gt;I'm&nbsp;not&nbsp;so&nbsp;sure&nbsp;about&nbsp;the&nbsp;list&nbsp;comprehension&nbsp;concatenation.&nbsp;Like
&gt;Thomas&nbsp;Schilling&nbsp;wrote,&nbsp;it&nbsp;is&nbsp;only&nbsp;a&nbsp;bit&nbsp;shorter&nbsp;then&nbsp;writing&nbsp;it&nbsp;with
&gt;the&nbsp;current&nbsp;syntax.&nbsp;So&nbsp;I'm&nbsp;not&nbsp;sure&nbsp;if&nbsp;it&nbsp;is&nbsp;worth&nbsp;the&nbsp;cost.
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;14
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;09:02:54&nbsp;-0300
&gt;From:&nbsp;Felipe&nbsp;Lessa&nbsp;&lt;felipe.lessa@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;ANN:&nbsp;cautious-file&nbsp;0.1.1:&nbsp;Ways&nbsp;to&nbsp;write&nbsp;a
&gt;        file        cautiously,&nbsp;to&nbsp;avoid&nbsp;data&nbsp;loss
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;20090720120254.GA6396@kira.casa&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=us-ascii
&gt;
&gt;Nice&nbsp;library!
&gt;
&gt;On&nbsp;Sun,&nbsp;Jul&nbsp;19,&nbsp;2009&nbsp;at&nbsp;11:35:34PM&nbsp;+0100,&nbsp;Robin&nbsp;Green&nbsp;wrote:
&gt;&gt;&nbsp;A&nbsp;variant,&nbsp;writeFileWithBackup,&nbsp;also&nbsp;allows&nbsp;you&nbsp;to&nbsp;supply&nbsp;a&nbsp;custom
&gt;&gt;&nbsp;backup&nbsp;computation&nbsp;to&nbsp;backup&nbsp;old&nbsp;copy(ies)&nbsp;of&nbsp;the&nbsp;destination&nbsp;file
&gt;
&gt;It&nbsp;would&nbsp;be&nbsp;nice&nbsp;to&nbsp;have&nbsp;the&nbsp;backup&nbsp;action&nbsp;receive&nbsp;the&nbsp;file&nbsp;name
&gt;as&nbsp;a&nbsp;parameter,&nbsp;so&nbsp;it&nbsp;would&nbsp;be&nbsp;possible&nbsp;to&nbsp;have&nbsp;a&nbsp;library&nbsp;of
&gt;possible&nbsp;backup&nbsp;strategies.&nbsp;:)
&gt;
&gt;--
&gt;Felipe.
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;15
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;13:16:03&nbsp;+0100
&gt;From:&nbsp;Andy&nbsp;Gimblett&nbsp;&lt;haskell@gimbo.org.uk&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;Typeclass&nbsp;default&nbsp;implementation&nbsp;in&nbsp;subclasses
&gt;To:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;5A40667D-984C-4F0A-A7E3-F21980B60CE9@gimbo.org.uk&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=US-ASCII;&nbsp;format=flowed
&gt;
&gt;Hi&nbsp;all,
&gt;
&gt;This&nbsp;email&nbsp;is&nbsp;literate&nbsp;Haskell.&nbsp;&nbsp;I&nbsp;have&nbsp;a&nbsp;question&nbsp;about&nbsp;default
&gt;implementations&nbsp;of&nbsp;typeclasses.
&gt;
&gt;&nbsp;&gt;&nbsp;{-#&nbsp;LANGUAGE&nbsp;TypeSynonymInstances&nbsp;#-}
&gt;
&gt;&nbsp;&gt;&nbsp;module&nbsp;Thing&nbsp;where
&gt;
&gt;&nbsp;&gt;&nbsp;import&nbsp;Text.PrettyPrint.HughesPJ
&gt;
&gt;Let&nbsp;say&nbsp;I&nbsp;want&nbsp;to&nbsp;pretty-print&nbsp;some&nbsp;values,&nbsp;enclosed&nbsp;in&nbsp;double&nbsp;quotes.
&gt;The&nbsp;natural&nbsp;thing&nbsp;to&nbsp;do&nbsp;(within&nbsp;the&nbsp;HughesPJ&nbsp;pretty-printing
&gt;framework,&nbsp;anyway&nbsp;-&nbsp;and&nbsp;that's&nbsp;where&nbsp;I&nbsp;am&nbsp;in&nbsp;this&nbsp;problem's&nbsp;wider
&gt;context)&nbsp;is:
&gt;
&gt;&nbsp;&gt;&nbsp;ppQuote&nbsp;::&nbsp;Show&nbsp;a&nbsp;=&gt;&nbsp;a&nbsp;-&gt;&nbsp;Doc
&gt;&nbsp;&gt;&nbsp;ppQuote&nbsp;=&nbsp;doubleQuotes&nbsp;.&nbsp;text&nbsp;.&nbsp;show
&gt;
&gt;Now,&nbsp;this&nbsp;works&nbsp;nicely&nbsp;for&nbsp;(say)&nbsp;Int:
&gt;
&gt;&nbsp;&gt;&nbsp;x&nbsp;::&nbsp;Int
&gt;&nbsp;&gt;&nbsp;x&nbsp;=&nbsp;1
&gt;
&gt;*Thing&gt;&nbsp;ppQuote&nbsp;x
&gt;"1"
&gt;
&gt;But&nbsp;less&nbsp;nicely&nbsp;for&nbsp;String&nbsp;and&nbsp;Char,&nbsp;because&nbsp;their&nbsp;Show&nbsp;instances
&gt;already&nbsp;insert&nbsp;double/single&nbsp;quotes&nbsp;respectively:
&gt;
&gt;&nbsp;&gt;&nbsp;y&nbsp;::&nbsp;String
&gt;&nbsp;&gt;&nbsp;y&nbsp;=&nbsp;"hello"
&gt;&nbsp;&gt;&nbsp;z&nbsp;::&nbsp;Char
&gt;&nbsp;&gt;&nbsp;z&nbsp;=&nbsp;'a'
&gt;
&gt;*Thing&gt;&nbsp;ppQuote&nbsp;y
&gt;""hello""
&gt;*Thing&gt;&nbsp;ppQuote&nbsp;z
&gt;"'a'"
&gt;
&gt;I&nbsp;don't&nbsp;want&nbsp;this.&nbsp;&nbsp;I'd&nbsp;like&nbsp;them&nbsp;to&nbsp;be&nbsp;"hello"&nbsp;and&nbsp;"a"&nbsp;respectively.
&gt;
&gt;So&nbsp;I&nbsp;thought&nbsp;I'd&nbsp;create&nbsp;a&nbsp;typeclass,&nbsp;whose&nbsp;default&nbsp;implementation&nbsp;is
&gt;as&nbsp;above...
&gt;
&gt;&nbsp;&gt;&nbsp;class&nbsp;(Show&nbsp;a)&nbsp;=&gt;&nbsp;Quotable&nbsp;a&nbsp;where
&gt;&nbsp;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;::&nbsp;a&nbsp;-&gt;&nbsp;Doc
&gt;&nbsp;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;=&nbsp;ppQuote
&gt;
&gt;...&nbsp;but&nbsp;with&nbsp;specialised&nbsp;instances&nbsp;for&nbsp;String&nbsp;and&nbsp;Char&nbsp;(the&nbsp;former
&gt;seems&nbsp;to&nbsp;need&nbsp;the&nbsp;TypeSynonymInstances&nbsp;extension?):
&gt;
&gt;&nbsp;&gt;&nbsp;instance&nbsp;Quotable&nbsp;String&nbsp;where
&gt;&nbsp;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;=&nbsp;text&nbsp;.&nbsp;show&nbsp;--&nbsp;don't&nbsp;need&nbsp;the&nbsp;doubleQuotes&nbsp;call&nbsp;for&nbsp;String
&gt;&nbsp;&gt;&nbsp;instance&nbsp;Quotable&nbsp;Char&nbsp;where
&gt;&nbsp;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;c&nbsp;=&nbsp;quote&nbsp;[c]&nbsp;--&nbsp;just&nbsp;lift&nbsp;it&nbsp;to&nbsp;String
&gt;
&gt;Unfortunately,&nbsp;while&nbsp;this&nbsp;works&nbsp;great&nbsp;for&nbsp;String&nbsp;and&nbsp;Char...
&gt;
&gt;*Thing&gt;&nbsp;quote&nbsp;y
&gt;"hello"
&gt;*Thing&gt;&nbsp;quote&nbsp;z
&gt;"a"
&gt;
&gt;...&nbsp;the&nbsp;"default&nbsp;implementation"&nbsp;mechanism&nbsp;doesn't&nbsp;work&nbsp;as&nbsp;I'd
&gt;expect/hope:
&gt;
&gt;*Thing&gt;&nbsp;quote&nbsp;x
&gt;
&gt;&lt;interactive&gt;:1:0:
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No&nbsp;instance&nbsp;for&nbsp;(Quotable&nbsp;Int)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arising&nbsp;from&nbsp;a&nbsp;use&nbsp;of&nbsp;`quote'&nbsp;at&nbsp;&lt;interactive&gt;:1:0-6
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Possible&nbsp;fix:&nbsp;add&nbsp;an&nbsp;instance&nbsp;declaration&nbsp;for&nbsp;(Quotable&nbsp;Int)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;the&nbsp;expression:&nbsp;quote&nbsp;x
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;the&nbsp;definition&nbsp;of&nbsp;`it':&nbsp;it&nbsp;=&nbsp;quote&nbsp;x
&gt;
&gt;What&nbsp;I&nbsp;would&nbsp;_like_&nbsp;would&nbsp;be&nbsp;for&nbsp;the&nbsp;compiler&nbsp;to&nbsp;say&nbsp;"OK,&nbsp;the&nbsp;Quotable
&gt;class&nbsp;depends&nbsp;on&nbsp;the&nbsp;Show&nbsp;class,&nbsp;and&nbsp;Int&nbsp;is&nbsp;an&nbsp;instance&nbsp;of&nbsp;Show&nbsp;so&nbsp;Int
&gt;is&nbsp;also&nbsp;an&nbsp;instance&nbsp;of&nbsp;Quotable,&nbsp;having&nbsp;the&nbsp;default&nbsp;implementation
&gt;(since&nbsp;there&nbsp;isn't&nbsp;a&nbsp;specialised&nbsp;one&nbsp;for&nbsp;it)"&nbsp;-&nbsp;but&nbsp;clearly&nbsp;it
&gt;doesn't.
&gt;
&gt;Please&nbsp;can&nbsp;someone&nbsp;tell&nbsp;me&nbsp;why&nbsp;this&nbsp;doesn't&nbsp;happen,&nbsp;and&nbsp;if&nbsp;there&nbsp;is&nbsp;a
&gt;way&nbsp;of&nbsp;making&nbsp;it&nbsp;happen?&nbsp;&nbsp;Also,&nbsp;if&nbsp;there's&nbsp;a&nbsp;more&nbsp;sensible&nbsp;way&nbsp;of
&gt;attacking&nbsp;this&nbsp;whole&nbsp;problem,&nbsp;I'd&nbsp;be&nbsp;curious&nbsp;to&nbsp;hear&nbsp;it.
&gt;
&gt;I&nbsp;should&nbsp;perhaps&nbsp;add&nbsp;that&nbsp;this&nbsp;isn't&nbsp;a&nbsp;huge&nbsp;problem&nbsp;for&nbsp;me,&nbsp;because&nbsp;my
&gt;instances&nbsp;will&nbsp;in&nbsp;practice&nbsp;tend&nbsp;to&nbsp;be&nbsp;String&nbsp;and&nbsp;Char&nbsp;anyway,&nbsp;and&nbsp;one
&gt;can&nbsp;of&nbsp;course&nbsp;add&nbsp;Quotable&nbsp;instances&nbsp;for&nbsp;anything&nbsp;else&nbsp;easily&nbsp;enough&nbsp;-
&gt;but&nbsp;I'm&nbsp;curious&nbsp;now&nbsp;I've&nbsp;come&nbsp;this&nbsp;far.&nbsp;&nbsp;:-)
&gt;
&gt;Many&nbsp;thanks!
&gt;
&gt;-Andy
&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;16
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;09:30:24&nbsp;-0300
&gt;From:&nbsp;Rafael&nbsp;Gustavo&nbsp;da&nbsp;Cunha&nbsp;Pereira&nbsp;Pinto
&gt;        &lt;RafaelGCPP.Linux@gmail.com&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;ICFP&nbsp;contest&nbsp;write-up
&gt;To:&nbsp;Haskell&nbsp;Caf?&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;351ff25e0907200530s2c998777g482bd7674ad5d85a@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset="iso-8859-1"
&gt;
&gt;For&nbsp;all&nbsp;Portuguese&nbsp;reading&nbsp;haskellers,&nbsp;I&nbsp;am&nbsp;describing&nbsp;my&nbsp;ICFP&nbsp;2009&nbsp;contest
&gt;write-up&nbsp;on&nbsp;my&nbsp;blog.&nbsp;Feel&nbsp;free&nbsp;to&nbsp;comment.
&gt;
&gt;http://rafaelgcpp.blogspot.com/search/label/ICFP2009
&gt;
&gt;
&gt;For&nbsp;the&nbsp;non-Portuguese&nbsp;readers,&nbsp;Google&nbsp;translation&nbsp;tools&nbsp;do&nbsp;a&nbsp;lousy&nbsp;job,&nbsp;but
&gt;it&nbsp;is&nbsp;still&nbsp;readable.
&gt;
&gt;Regards
&gt;
&gt;Rafael&nbsp;Gustavo&nbsp;da&nbsp;Cunha&nbsp;Pereira&nbsp;Pinto
&gt;--------------&nbsp;next&nbsp;part&nbsp;--------------
&gt;An&nbsp;HTML&nbsp;attachment&nbsp;was&nbsp;scrubbed...
&gt;URL:&nbsp;http://www.haskell.org/pipermail/haskell-cafe/attachments/20090720/30061e23/attachment-0001.html
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;17
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;22:09:09&nbsp;+0930
&gt;From:&nbsp;Reiner&nbsp;Pope&nbsp;&lt;reiner.pope@gmail.com&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;SpecConstr&nbsp;difficulties
&gt;To:&nbsp;Haskell&nbsp;Cafe&nbsp;mailing&nbsp;list&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;4cf038ee0907200539w1676a6e7ub29350cf5025b91a@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1
&gt;
&gt;Hi&nbsp;everyone,
&gt;
&gt;I've&nbsp;been&nbsp;having&nbsp;some&nbsp;trouble&nbsp;getting&nbsp;SpecConstr&nbsp;to&nbsp;work&nbsp;as&nbsp;I&nbsp;want&nbsp;it
&gt;to.&nbsp;The&nbsp;following&nbsp;example&nbsp;(see&nbsp;end&nbsp;of&nbsp;email)&nbsp;came&nbsp;up&nbsp;in&nbsp;some&nbsp;code&nbsp;I
&gt;was&nbsp;playing&nbsp;around&nbsp;with.&nbsp;The&nbsp;loops&nbsp;g1&nbsp;and&nbsp;g2&nbsp;both&nbsp;compute&nbsp;the&nbsp;same
&gt;thing:&nbsp;the&nbsp;maximum&nbsp;element&nbsp;of&nbsp;the&nbsp;"list"&nbsp;(which&nbsp;has&nbsp;been&nbsp;fused&nbsp;away)
&gt;of&nbsp;numbers&nbsp;from&nbsp;1&nbsp;to&nbsp;10.
&gt;
&gt;Since&nbsp;'maximum'&nbsp;is&nbsp;a&nbsp;foldl1&nbsp;not&nbsp;a&nbsp;foldl,&nbsp;I&nbsp;use&nbsp;a&nbsp;strict&nbsp;Maybe&nbsp;type&nbsp;as
&gt;an&nbsp;accumulator.&nbsp;The&nbsp;Maybe&nbsp;gets&nbsp;filled&nbsp;after&nbsp;the&nbsp;first&nbsp;element&nbsp;is&nbsp;seen,
&gt;so&nbsp;the&nbsp;Maybe&nbsp;is&nbsp;a&nbsp;Just&nbsp;for&nbsp;almost&nbsp;the&nbsp;entire&nbsp;running&nbsp;of&nbsp;the&nbsp;loop.
&gt;
&gt;It&nbsp;would&nbsp;be&nbsp;good&nbsp;to&nbsp;have&nbsp;this&nbsp;recognised&nbsp;by&nbsp;SpecConstr,&nbsp;to&nbsp;create&nbsp;an
&gt;optimised&nbsp;loop&nbsp;for&nbsp;the&nbsp;Just&nbsp;case.&nbsp;This&nbsp;does&nbsp;indeed&nbsp;happen&nbsp;for&nbsp;g1,&nbsp;but
&gt;not&nbsp;for&nbsp;g2.
&gt;
&gt;My&nbsp;difficulty&nbsp;is&nbsp;that&nbsp;I&nbsp;am&nbsp;only&nbsp;able&nbsp;to&nbsp;produce&nbsp;code&nbsp;similar&nbsp;to&nbsp;g2,
&gt;i.e.&nbsp;where&nbsp;the&nbsp;pattern&nbsp;matching&nbsp;is&nbsp;in&nbsp;a&nbsp;separate&nbsp;function,&nbsp;'expose',
&gt;because&nbsp;the&nbsp;'expose'&nbsp;function&nbsp;is&nbsp;implemented&nbsp;in&nbsp;a&nbsp;type-class,&nbsp;like&nbsp;in
&gt;stream-fusion.&nbsp;Is&nbsp;there&nbsp;some&nbsp;way&nbsp;to&nbsp;keep&nbsp;the&nbsp;SpecConstr&nbsp;while&nbsp;leaving
&gt;the&nbsp;'expose'&nbsp;as&nbsp;a&nbsp;separate&nbsp;function?
&gt;
&gt;Here&nbsp;is&nbsp;the&nbsp;code:
&gt;
&gt;&gt;&nbsp;{-#&nbsp;LANGUAGE&nbsp;BangPatterns&nbsp;#-}
&gt;&gt;
&gt;&gt;&nbsp;module&nbsp;Test(ans1,ans2)&nbsp;where
&gt;&gt;
&gt;&gt;&nbsp;import&nbsp;Prelude&nbsp;hiding(Maybe(..))
&gt;&gt;
&gt;&gt;&nbsp;data&nbsp;Maybe&nbsp;a&nbsp;=&nbsp;Just&nbsp;!a&nbsp;|&nbsp;Nothing
&gt;&gt;
&gt;&gt;&nbsp;Nothing&nbsp;`mapp`&nbsp;Just&nbsp;b&nbsp;=&nbsp;Just&nbsp;b
&gt;&gt;&nbsp;Just&nbsp;a&nbsp;`mapp`&nbsp;Just&nbsp;b&nbsp;=&nbsp;Just&nbsp;(max&nbsp;a&nbsp;b)
&gt;&gt;
&gt;&gt;&nbsp;ans1&nbsp;=&nbsp;g1&nbsp;Nothing&nbsp;(0::Int)
&gt;&gt;
&gt;&gt;&nbsp;g1&nbsp;m&nbsp;!n&nbsp;=&nbsp;case&nbsp;m&nbsp;of
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing&nbsp;-&gt;&nbsp;if&nbsp;n&nbsp;&gt;&nbsp;10&nbsp;then&nbsp;m&nbsp;else&nbsp;g1&nbsp;(m&nbsp;`mapp`&nbsp;Just&nbsp;n)&nbsp;(n+1)
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just&nbsp;x&nbsp;-&gt;&nbsp;if&nbsp;n&nbsp;&gt;&nbsp;10&nbsp;then&nbsp;m&nbsp;else&nbsp;g1&nbsp;(m&nbsp;`mapp`&nbsp;Just&nbsp;n)&nbsp;(n+1)
&gt;&gt;
&gt;&gt;&nbsp;ans2&nbsp;=&nbsp;g2&nbsp;Nothing&nbsp;(0::Int)
&gt;&gt;
&gt;&gt;&nbsp;g2&nbsp;m&nbsp;!n&nbsp;=&nbsp;expose&nbsp;m&nbsp;(if&nbsp;n&nbsp;&gt;&nbsp;10&nbsp;then&nbsp;m&nbsp;else&nbsp;g2&nbsp;(m&nbsp;`mapp`&nbsp;Just&nbsp;n)&nbsp;(n+1))
&gt;&gt;&nbsp;expose&nbsp;Nothing&nbsp;&nbsp;b&nbsp;=&nbsp;b
&gt;&gt;&nbsp;expose&nbsp;(Just&nbsp;a)&nbsp;b&nbsp;=&nbsp;a&nbsp;`seq`&nbsp;b
&gt;
&gt;On&nbsp;a&nbsp;similar&nbsp;note,&nbsp;when&nbsp;I&nbsp;was&nbsp;having&nbsp;difficulties&nbsp;with&nbsp;this&nbsp;problem,&nbsp;I
&gt;started&nbsp;to&nbsp;wonder&nbsp;if&nbsp;it&nbsp;would&nbsp;be&nbsp;possible&nbsp;to&nbsp;come&nbsp;up&nbsp;with&nbsp;a&nbsp;more
&gt;direct&nbsp;way&nbsp;to&nbsp;tell&nbsp;GHC,&nbsp;"do&nbsp;SpecConstr&nbsp;on&nbsp;this&nbsp;variable".&nbsp;From&nbsp;reading
&gt;the&nbsp;source&nbsp;code&nbsp;of&nbsp;the&nbsp;stream-fusion&nbsp;package,&nbsp;it&nbsp;seems&nbsp;that&nbsp;the
&gt;current&nbsp;way&nbsp;of&nbsp;doing&nbsp;this&nbsp;is&nbsp;with&nbsp;'expose'&nbsp;functions&nbsp;like&nbsp;I&nbsp;wrote
&gt;below.&nbsp;Could&nbsp;we&nbsp;instead&nbsp;have&nbsp;a&nbsp;{-#&nbsp;SPECCONSTR&nbsp;#-}&nbsp;pragma,&nbsp;to&nbsp;be&nbsp;used
&gt;on&nbsp;function&nbsp;arguments,&nbsp;like:
&gt;
&gt;foo&nbsp;{-#&nbsp;SPECCONSTR&nbsp;#-}&nbsp;x&nbsp;y&nbsp;{-#&nbsp;SPECCONSTR&nbsp;#-}&nbsp;z&nbsp;=&nbsp;...
&gt;
&gt;This&nbsp;pragma&nbsp;should&nbsp;say&nbsp;to&nbsp;the&nbsp;GHC&nbsp;something&nbsp;like&nbsp;"ignore&nbsp;conditions
&gt;H2,&nbsp;H5&nbsp;and&nbsp;H6&nbsp;of&nbsp;the&nbsp;SpecConstr&nbsp;paper,&nbsp;for&nbsp;this&nbsp;function&nbsp;and&nbsp;this
&gt;argument".
&gt;
&gt;Cheers,
&gt;Reiner
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;18
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;14:40:26&nbsp;+0200
&gt;From:&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Typeclass&nbsp;default&nbsp;implementation&nbsp;in
&gt;        subclasses
&gt;To:&nbsp;Andy&nbsp;Gimblett&nbsp;&lt;haskell@gimbo.org.uk&gt;
&gt;Cc:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:
&gt;        &lt;ab9dc6fa0907200540s211a67bby6107c556bb42f171@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1
&gt;
&gt;This&nbsp;post&nbsp;is&nbsp;also&nbsp;literate&nbsp;haskell.&nbsp;By&nbsp;enabling&nbsp;these&nbsp;potentially
&gt;dangerous&nbsp;extensions&nbsp;you'll&nbsp;get&nbsp;the&nbsp;behaviour&nbsp;you&nbsp;want.
&gt;
&gt;&gt;&nbsp;{-#&nbsp;LANGUAGE&nbsp;TypeSynonymInstances&nbsp;#-}
&gt;&gt;&nbsp;{-#&nbsp;LANGUAGE&nbsp;UndecidableInstances&nbsp;#-}
&gt;&gt;&nbsp;{-#&nbsp;LANGUAGE&nbsp;FlexibleInstances&nbsp;#-}
&gt;&gt;&nbsp;{-#&nbsp;LANGUAGE&nbsp;OverlappingInstances&nbsp;#-}
&gt;
&gt;&gt;&nbsp;module&nbsp;Thing&nbsp;where
&gt;
&gt;&gt;&nbsp;import&nbsp;Text.PrettyPrint.HughesPJ
&gt;
&gt;&gt;&nbsp;ppQuote&nbsp;::&nbsp;Show&nbsp;a&nbsp;=&gt;&nbsp;a&nbsp;-&gt;&nbsp;Doc
&gt;&gt;&nbsp;ppQuote&nbsp;=&nbsp;doubleQuotes&nbsp;.&nbsp;text&nbsp;.&nbsp;show
&gt;
&gt;&gt;&nbsp;x&nbsp;::&nbsp;Int
&gt;&gt;&nbsp;x&nbsp;=&nbsp;1
&gt;
&gt;&gt;&nbsp;y&nbsp;::&nbsp;String
&gt;&gt;&nbsp;y&nbsp;=&nbsp;"hello"
&gt;&gt;&nbsp;z&nbsp;::&nbsp;Char
&gt;&gt;&nbsp;z&nbsp;=&nbsp;'a'
&gt;
&gt;&gt;&nbsp;class&nbsp;(Show&nbsp;a)&nbsp;=&gt;&nbsp;Quotable&nbsp;a&nbsp;where
&gt;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;::&nbsp;a&nbsp;-&gt;&nbsp;Doc
&gt;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;=&nbsp;ppQuote
&gt;
&gt;&gt;&nbsp;instance&nbsp;(Show&nbsp;a)&nbsp;=&gt;&nbsp;Quotable&nbsp;a
&gt;
&gt;&gt;&nbsp;instance&nbsp;Quotable&nbsp;String&nbsp;where
&gt;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;=&nbsp;text&nbsp;.&nbsp;show&nbsp;--&nbsp;don't&nbsp;need&nbsp;the&nbsp;doubleQuotes&nbsp;call&nbsp;for&nbsp;String
&gt;
&gt;&gt;&nbsp;instance&nbsp;Quotable&nbsp;Char&nbsp;where
&gt;&gt;&nbsp;&nbsp;&nbsp;quote&nbsp;c&nbsp;=&nbsp;quote&nbsp;[c]&nbsp;--&nbsp;just&nbsp;lift&nbsp;it&nbsp;to&nbsp;String
&gt;
&gt;Example:
&gt;
&gt;*Thing&gt;&nbsp;quote&nbsp;"pi"
&gt;"pi"
&gt;*Thing&gt;&nbsp;quote&nbsp;3.14159
&gt;"3.14159"
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;19
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;23:08:49&nbsp;+1000
&gt;From:&nbsp;Ivan&nbsp;Lazar&nbsp;Miljenovic&nbsp;&lt;ivan.miljenovic@gmail.com&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;ANNOUNCE:&nbsp;graphviz-2999.1.0.1
&gt;To:&nbsp;haskell@haskell.org
&gt;Cc:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;87vdlnwlge.fsf@gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=us-ascii
&gt;
&gt;This&nbsp;is&nbsp;a&nbsp;bug-fix&nbsp;release&nbsp;to&nbsp;fix&nbsp;the&nbsp;various&nbsp;Attribute-related&nbsp;problems
&gt;in&nbsp;the&nbsp;previous&nbsp;release&nbsp;(2999.0.0.0)&nbsp;spotted&nbsp;mainly&nbsp;by&nbsp;Zsolt
&gt;Dollenstein.&nbsp;&nbsp;Please&nbsp;disregard&nbsp;version&nbsp;2999.1.0.0;&nbsp;it&nbsp;had&nbsp;a&nbsp;small&nbsp;bug.
&gt;Similarly,&nbsp;people&nbsp;should&nbsp;avoid&nbsp;using&nbsp;2999.0.0.0&nbsp;unless&nbsp;they&nbsp;don't&nbsp;use
&gt;any&nbsp;Either-based&nbsp;Attributes.
&gt;
&gt;The&nbsp;problem&nbsp;(which&nbsp;took&nbsp;me&nbsp;a&nbsp;while&nbsp;to&nbsp;realise)&nbsp;was&nbsp;that&nbsp;whilst&nbsp;I&nbsp;was
&gt;using&nbsp;Either&nbsp;to&nbsp;denote&nbsp;that&nbsp;an&nbsp;attribute&nbsp;could&nbsp;take&nbsp;one&nbsp;of&nbsp;two&nbsp;different
&gt;types&nbsp;of&nbsp;values&nbsp;(e.g.&nbsp;Bool&nbsp;and&nbsp;String)&nbsp;and&nbsp;the&nbsp;parsing&nbsp;for&nbsp;that&nbsp;worked.
&gt;However,&nbsp;since&nbsp;I&nbsp;was&nbsp;using&nbsp;Show&nbsp;(I&nbsp;know&nbsp;it's&nbsp;bad,&nbsp;it&nbsp;was&nbsp;on&nbsp;my&nbsp;TODO,
&gt;remember?)&nbsp;&nbsp;to&nbsp;generate&nbsp;the&nbsp;Dot&nbsp;code,&nbsp;then&nbsp;whenever&nbsp;one&nbsp;of&nbsp;these&nbsp;values
&gt;was&nbsp;converted&nbsp;then&nbsp;either&nbsp;Left&nbsp;or&nbsp;Right&nbsp;would&nbsp;appear,&nbsp;and&nbsp;GraphViz
&gt;doesn't&nbsp;seem&nbsp;to&nbsp;like&nbsp;that&nbsp;for&nbsp;some&nbsp;reason...
&gt;
&gt;I&nbsp;also&nbsp;took&nbsp;the&nbsp;opportunity&nbsp;to&nbsp;define&nbsp;custom&nbsp;types&nbsp;for&nbsp;more&nbsp;Attributes
&gt;(as&nbsp;they&nbsp;only&nbsp;accept&nbsp;certain&nbsp;String&nbsp;values).&nbsp;&nbsp;Furthermore,&nbsp;GraphViz
&gt;states&nbsp;that&nbsp;attributes&nbsp;that&nbsp;can&nbsp;accept&nbsp;a&nbsp;boolean&nbsp;value&nbsp;are&nbsp;set&nbsp;to&nbsp;True
&gt;when&nbsp;the&nbsp;attribute&nbsp;is&nbsp;listed&nbsp;on&nbsp;its&nbsp;own;&nbsp;the&nbsp;library&nbsp;now&nbsp;does&nbsp;this&nbsp;even
&gt;for&nbsp;those&nbsp;Attributes&nbsp;that&nbsp;use&nbsp;a&nbsp;custom&nbsp;type&nbsp;that&nbsp;combines&nbsp;Bool&nbsp;with
&gt;something&nbsp;else.&nbsp;&nbsp;One&nbsp;other&nbsp;small&nbsp;change&nbsp;is&nbsp;that&nbsp;the&nbsp;Color&nbsp;Attribute&nbsp;now
&gt;takes&nbsp;in&nbsp;a&nbsp;list&nbsp;of&nbsp;Colors;&nbsp;if&nbsp;you&nbsp;only&nbsp;want&nbsp;one,&nbsp;use&nbsp;a&nbsp;singleton&nbsp;list
&gt;(it&nbsp;was&nbsp;either&nbsp;that&nbsp;or&nbsp;a&nbsp;custom&nbsp;datatype&nbsp;that&nbsp;takes&nbsp;either&nbsp;a&nbsp;single
&gt;Color&nbsp;or&nbsp;a&nbsp;list&nbsp;of&nbsp;Colors...).
&gt;
&gt;Note&nbsp;that&nbsp;2999.1.0.0&nbsp;accidentally&nbsp;only&nbsp;had&nbsp;singleton&nbsp;Color&nbsp;values&nbsp;for
&gt;the&nbsp;Color&nbsp;Attribute&nbsp;rather&nbsp;than&nbsp;a&nbsp;list,&nbsp;hence&nbsp;the&nbsp;quick&nbsp;version&nbsp;bump.
&gt;
&gt;Nothing&nbsp;else&nbsp;has&nbsp;changed&nbsp;in&nbsp;the&nbsp;library&nbsp;apart&nbsp;from&nbsp;the&nbsp;Attributes.
&gt;
&gt;Regarding&nbsp;my&nbsp;request&nbsp;in&nbsp;the&nbsp;previous&nbsp;email&nbsp;about&nbsp;the&nbsp;possible&nbsp;new&nbsp;layout
&gt;of&nbsp;the&nbsp;DotGraph&nbsp;datatype:
&gt;
&gt;How&nbsp;many&nbsp;people&nbsp;actually&nbsp;build&nbsp;DotGraphs&nbsp;by&nbsp;hand&nbsp;or&nbsp;pull&nbsp;them&nbsp;apart&nbsp;by
&gt;hand?&nbsp;&nbsp;If&nbsp;there&nbsp;were&nbsp;getNodes&nbsp;::&nbsp;DotGraph&nbsp;-&gt;&nbsp;[Node]&nbsp;and&nbsp;getEdges&nbsp;::
&gt;DotGraph&nbsp;-&gt;&nbsp;[Edge]&nbsp;functions&nbsp;available,&nbsp;would&nbsp;you&nbsp;accept&nbsp;an&nbsp;all-in-one
&gt;data&nbsp;type&nbsp;that&nbsp;just&nbsp;contains&nbsp;a&nbsp;generic&nbsp;list&nbsp;of&nbsp;statements&nbsp;and&nbsp;thus
&gt;follows&nbsp;upstream&nbsp;more&nbsp;closely?&nbsp;&nbsp;Even&nbsp;leaving&nbsp;aside&nbsp;parsing,&nbsp;this&nbsp;would
&gt;allow&nbsp;for&nbsp;greater&nbsp;flexibility&nbsp;for&nbsp;creating&nbsp;wild&nbsp;and&nbsp;wacky&nbsp;graphs&nbsp;or&nbsp;for
&gt;a&nbsp;monadic&nbsp;interface&nbsp;or&nbsp;something&nbsp;for&nbsp;building&nbsp;DotGraphs&nbsp;(which&nbsp;someone
&gt;has&nbsp;asked&nbsp;me&nbsp;for,&nbsp;but&nbsp;which&nbsp;at&nbsp;the&nbsp;moment&nbsp;I&nbsp;have&nbsp;no&nbsp;idea&nbsp;how&nbsp;to&nbsp;do...).
&gt;
&gt;--&nbsp;
&gt;Ivan&nbsp;Lazar&nbsp;Miljenovic
&gt;Ivan.Miljenovic@gmail.com
&gt;IvanMiljenovic.wordpress.com
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;20
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;15:22:24&nbsp;+0200
&gt;From:&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list
&gt;        comprehensions
&gt;To:&nbsp;haskell-cafe&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;ab9dc6fa0907200622h1b76481ctd7f13d65d1282261@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1
&gt;
&gt;On&nbsp;Mon,&nbsp;Jul&nbsp;20,&nbsp;2009&nbsp;at&nbsp;1:27&nbsp;PM,&nbsp;Roel&nbsp;van&nbsp;Dijk&lt;vandijk.roel@gmail.com&gt;&nbsp;wrote:
&gt;&gt;&nbsp;I&nbsp;think&nbsp;the&nbsp;tuple&nbsp;sections&nbsp;are&nbsp;a&nbsp;great&nbsp;idea!&nbsp;It&nbsp;also&nbsp;makes&nbsp;tuple&nbsp;types
&gt;&gt;&nbsp;and&nbsp;constructors&nbsp;more&nbsp;alike:
&gt;&gt;
&gt;&gt;&nbsp;x&nbsp;::&nbsp;(,)&nbsp;String&nbsp;Double
&gt;&gt;&nbsp;x&nbsp;=&nbsp;(,)&nbsp;"Pi"&nbsp;3.14159
&gt;
&gt;I&nbsp;just&nbsp;realised&nbsp;this&nbsp;is&nbsp;already&nbsp;in&nbsp;GHC&nbsp;:-)&nbsp;But&nbsp;does&nbsp;you&nbsp;patch&nbsp;also&nbsp;add
&gt;the&nbsp;equivalent&nbsp;for&nbsp;tuple&nbsp;type&nbsp;annotations?
&gt;
&gt;x&nbsp;::&nbsp;(String,&nbsp;)&nbsp;Double
&gt;x&nbsp;=&nbsp;("Pi",&nbsp;)&nbsp;3.14159
&gt;
&gt;I&nbsp;am&nbsp;also&nbsp;wondering&nbsp;what&nbsp;the&nbsp;following&nbsp;would/should&nbsp;mean:
&gt;
&gt;&nbsp;&nbsp;(1,&nbsp;,&nbsp;(&nbsp;,&nbsp;2),&nbsp;)&nbsp;'a'&nbsp;'b'&nbsp;'c'
&gt;
&gt;Should&nbsp;this&nbsp;mean
&gt;&nbsp;&nbsp;(1,&nbsp;'a',&nbsp;('b',&nbsp;2),&nbsp;'c')
&gt;or
&gt;&nbsp;&nbsp;(1,&nbsp;'a',&nbsp;('c',&nbsp;2),&nbsp;'b')
&gt;
&gt;Intuitively&nbsp;I&nbsp;would&nbsp;expect&nbsp;the&nbsp;first&nbsp;option.&nbsp;Just&nbsp;reading&nbsp;from&nbsp;left&nbsp;to
&gt;right.&nbsp;But&nbsp;it&nbsp;doesn't&nbsp;look&nbsp;entirely&nbsp;trivial.
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;21
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;14:25:56&nbsp;+0100
&gt;From:&nbsp;"Sittampalam,&nbsp;Ganesh"&nbsp;&lt;ganesh.sittampalam@credit-suisse.com&gt;
&gt;Subject:&nbsp;RE:&nbsp;[Haskell-cafe]&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list
&gt;        comprehensions
&gt;To:&nbsp;"haskell-cafe"&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;16442B752A06A74AB4D9F9A5FF076E4B03B9F7DC@ELON17P32001A.csfb.cs-group.com&gt;
&gt;        
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=us-ascii
&gt;
&gt;Roel&nbsp;van&nbsp;Dijk&nbsp;wrote:
&gt;&gt;&nbsp;On&nbsp;Mon,&nbsp;Jul&nbsp;20,&nbsp;2009&nbsp;at&nbsp;1:27&nbsp;PM,&nbsp;Roel&nbsp;van
&gt;&gt;&nbsp;Dijk&lt;vandijk.roel@gmail.com&gt;&nbsp;wrote:&nbsp;
&gt;&gt;&gt;&nbsp;I&nbsp;think&nbsp;the&nbsp;tuple&nbsp;sections&nbsp;are&nbsp;a&nbsp;great&nbsp;idea!&nbsp;It&nbsp;also&nbsp;makes&nbsp;tuple
&gt;&gt;&gt;&nbsp;types&nbsp;and&nbsp;constructors&nbsp;more&nbsp;alike:&nbsp;
&gt;&gt;&gt;&nbsp;
&gt;&gt;&gt;&nbsp;x&nbsp;::&nbsp;(,)&nbsp;String&nbsp;Double
&gt;&gt;&gt;&nbsp;x&nbsp;=&nbsp;(,)&nbsp;"Pi"&nbsp;3.14159
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;I&nbsp;just&nbsp;realised&nbsp;this&nbsp;is&nbsp;already&nbsp;in&nbsp;GHC&nbsp;:-)&nbsp;But&nbsp;does&nbsp;you&nbsp;patch&nbsp;also
&gt;&gt;&nbsp;add&nbsp;the&nbsp;equivalent&nbsp;for&nbsp;tuple&nbsp;type&nbsp;annotations?&nbsp;
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;x&nbsp;::&nbsp;(String,&nbsp;)&nbsp;Double
&gt;&gt;&nbsp;x&nbsp;=&nbsp;("Pi",&nbsp;)&nbsp;3.14159
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;I&nbsp;am&nbsp;also&nbsp;wondering&nbsp;what&nbsp;the&nbsp;following&nbsp;would/should&nbsp;mean:
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;&nbsp;&nbsp;(1,&nbsp;,&nbsp;(&nbsp;,&nbsp;2),&nbsp;)&nbsp;'a'&nbsp;'b'&nbsp;'c'
&gt;
&gt;I&nbsp;would&nbsp;expect&nbsp;it&nbsp;to&nbsp;be&nbsp;a&nbsp;type&nbsp;error,&nbsp;since&nbsp;I&nbsp;think&nbsp;the&nbsp;following&nbsp;is&nbsp;the
&gt;only&nbsp;sane&nbsp;type&nbsp;the&nbsp;tuple&nbsp;can&nbsp;have&nbsp;(assuming&nbsp;numeric&nbsp;literals&nbsp;::&nbsp;Int):
&gt;
&gt;(1,&nbsp;,&nbsp;(&nbsp;,&nbsp;2),&nbsp;)&nbsp;::&nbsp;a&nbsp;-&gt;&nbsp;b&nbsp;-&gt;&nbsp;(Int,&nbsp;a,&nbsp;c&nbsp;-&gt;&nbsp;(c,&nbsp;Int),&nbsp;b)
&gt;
&gt;Ganesh
&gt;
&gt;===============================================================================&nbsp;
&gt;&nbsp;Please&nbsp;access&nbsp;the&nbsp;attached&nbsp;hyperlink&nbsp;for&nbsp;an&nbsp;important&nbsp;electronic&nbsp;communications&nbsp;disclaimer:&nbsp;
&gt;&nbsp;http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html&nbsp;
&gt;&nbsp;===============================================================================&nbsp;
&gt;&nbsp;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;22
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;15:42:08&nbsp;+0200
&gt;From:&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list
&gt;        comprehensions
&gt;To:&nbsp;"Sittampalam,&nbsp;Ganesh"&nbsp;&lt;ganesh.sittampalam@credit-suisse.com&gt;
&gt;Cc:&nbsp;haskell-cafe&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;ab9dc6fa0907200642u678cfe2ep22ffeef3308927eb@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1
&gt;
&gt;&gt;&gt;&nbsp;I&nbsp;am&nbsp;also&nbsp;wondering&nbsp;what&nbsp;the&nbsp;following&nbsp;would/should&nbsp;mean:
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;(1,&nbsp;,&nbsp;(&nbsp;,&nbsp;2),&nbsp;)&nbsp;'a'&nbsp;'b'&nbsp;'c'
&gt;&gt;
&gt;&gt;&nbsp;I&nbsp;would&nbsp;expect&nbsp;it&nbsp;to&nbsp;be&nbsp;a&nbsp;type&nbsp;error,&nbsp;since&nbsp;I&nbsp;think&nbsp;the&nbsp;following&nbsp;is&nbsp;the
&gt;&gt;&nbsp;only&nbsp;sane&nbsp;type&nbsp;the&nbsp;tuple&nbsp;can&nbsp;have&nbsp;(assuming&nbsp;numeric&nbsp;literals&nbsp;::&nbsp;Int):
&gt;&gt;
&gt;&gt;&nbsp;(1,&nbsp;,&nbsp;(&nbsp;,&nbsp;2),&nbsp;)&nbsp;::&nbsp;a&nbsp;-&gt;&nbsp;b&nbsp;-&gt;&nbsp;(Int,&nbsp;a,&nbsp;c&nbsp;-&gt;&nbsp;(c,&nbsp;Int),&nbsp;b)
&gt;&gt;
&gt;&gt;&nbsp;Ganesh
&gt;
&gt;Ah&nbsp;you're&nbsp;completely&nbsp;right!&nbsp;I&nbsp;would&nbsp;be&nbsp;applying&nbsp;a&nbsp;tuple&nbsp;to&nbsp;a&nbsp;Char
&gt;which&nbsp;is&nbsp;nonsense.
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;23
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;07:02:22&nbsp;-0700
&gt;From:&nbsp;Jason&nbsp;Dagit&nbsp;&lt;dagit@codersbase.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;FFI&nbsp;problem&nbsp;-&nbsp;possibility&nbsp;of&nbsp;CStringLen
&gt;        overflow?
&gt;To:&nbsp;Robin&nbsp;Green&nbsp;&lt;greenrd@greenrd.org&gt;
&gt;Cc:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:
&gt;        &lt;b97f58860907200702s769b48cao85d5d5c2f15f183e@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset="iso-8859-1"
&gt;
&gt;On&nbsp;Sun,&nbsp;Jul&nbsp;19,&nbsp;2009&nbsp;at&nbsp;7:24&nbsp;PM,&nbsp;Robin&nbsp;Green&nbsp;&lt;greenrd@greenrd.org&gt;&nbsp;wrote:
&gt;
&gt;&gt;&nbsp;While&nbsp;rewriting&nbsp;cautious-file&nbsp;to&nbsp;use&nbsp;ByteStrings&nbsp;and&nbsp;FFI&nbsp;just&nbsp;now,&nbsp;I
&gt;&gt;&nbsp;came&nbsp;across&nbsp;this&nbsp;potential&nbsp;problem:
&gt;&gt;
&gt;&gt;&nbsp;Why&nbsp;does&nbsp;the&nbsp;FFI&nbsp;specification&nbsp;define&nbsp;CStringLen&nbsp;as&nbsp;(Ptr&nbsp;CChar,&nbsp;Int)?
&gt;
&gt;
&gt;Do&nbsp;you&nbsp;think&nbsp;it&nbsp;was&nbsp;a&nbsp;typo&nbsp;and&nbsp;the&nbsp;author(s)&nbsp;meant&nbsp;(Ptr&nbsp;CChar,&nbsp;CInt)&nbsp;?
&gt;
&gt;Jason
&gt;--------------&nbsp;next&nbsp;part&nbsp;--------------
&gt;An&nbsp;HTML&nbsp;attachment&nbsp;was&nbsp;scrubbed...
&gt;URL:&nbsp;http://www.haskell.org/pipermail/haskell-cafe/attachments/20090720/abed0080/attachment-0001.html
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;24
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;15:07:23&nbsp;+0100
&gt;From:&nbsp;Philippa&nbsp;Cowderoy&nbsp;&lt;flippa@flippac.org&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;Anglohaskell&nbsp;-&nbsp;wifi&nbsp;signups
&gt;To:&nbsp;haskell@haskell.org,&nbsp;Haskell&nbsp;cafe&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:&nbsp;&lt;4A647A1B.7010408@flippac.org&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1;&nbsp;format=flowed
&gt;
&gt;Wifi&nbsp;signups&nbsp;are&nbsp;Anglohaskell&nbsp;are&nbsp;now&nbsp;on&nbsp;the&nbsp;wiki&nbsp;-&nbsp;please&nbsp;add&nbsp;your&nbsp;
&gt;details&nbsp;by&nbsp;the&nbsp;31st&nbsp;of&nbsp;July&nbsp;if&nbsp;you&nbsp;want&nbsp;a&nbsp;wifi&nbsp;account&nbsp;at&nbsp;MS&nbsp;Research&nbsp;
&gt;for&nbsp;the&nbsp;Friday.&nbsp;Alternatively,&nbsp;reply&nbsp;to&nbsp;this&nbsp;email&nbsp;with&nbsp;your&nbsp;full&nbsp;name,&nbsp;
&gt;institution,&nbsp;country&nbsp;of&nbsp;residence&nbsp;and&nbsp;email&nbsp;address.
&gt;
&gt;The&nbsp;Anglohaskell&nbsp;wiki&nbsp;page&nbsp;can&nbsp;be&nbsp;found&nbsp;at&nbsp;
&gt;http://www.haskell.org/haskellwiki/AngloHaskell/2009
&gt;
&gt;There's&nbsp;still&nbsp;room&nbsp;for&nbsp;more&nbsp;talks&nbsp;if&nbsp;anyone's&nbsp;got&nbsp;something&nbsp;they&nbsp;fancy&nbsp;
&gt;giving&nbsp;a&nbsp;go&nbsp;-&nbsp;everything&nbsp;from&nbsp;cutting&nbsp;edge&nbsp;research&nbsp;to&nbsp;"what&nbsp;I&nbsp;did&nbsp;with&nbsp;
&gt;Haskell&nbsp;on&nbsp;my&nbsp;holiday"&nbsp;is&nbsp;welcome,&nbsp;as&nbsp;is&nbsp;everyone&nbsp;from&nbsp;GHC&nbsp;implentors&nbsp;to&nbsp;
&gt;newbies&nbsp;frantically&nbsp;writing&nbsp;Hello&nbsp;World&nbsp;on&nbsp;their&nbsp;laptop&nbsp;in&nbsp;the&nbsp;back&nbsp;row.
&gt;
&gt;--&nbsp;
&gt;flippa@flippac.org
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;25
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;11:09:40&nbsp;-0700
&gt;From:&nbsp;Thomas&nbsp;DuBuisson&nbsp;&lt;thomas.dubuisson@gmail.com&gt;
&gt;Subject:&nbsp;[Haskell-cafe]&nbsp;Pruning&nbsp;the&nbsp;Front&nbsp;Page
&gt;To:&nbsp;haskell&nbsp;mailing&nbsp;list&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;4c44d90b0907201109v75f5427ra5aadefdf1722663@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1
&gt;
&gt;All,
&gt;I&nbsp;think&nbsp;we&nbsp;should&nbsp;remove&nbsp;unmaintained&nbsp;or&nbsp;refocused&nbsp;implementations
&gt;from&nbsp;the&nbsp;haskell.org&nbsp;front&nbsp;page.&nbsp;&nbsp;This&nbsp;would&nbsp;mean&nbsp;removing:
&gt;&nbsp;&nbsp;&nbsp;&nbsp;YHC&nbsp;-&nbsp;unmaintained,&nbsp;hasn't&nbsp;built&nbsp;for&nbsp;me&nbsp;in&nbsp;a&nbsp;while
&gt;&nbsp;&nbsp;&nbsp;&nbsp;LHC&nbsp;-&nbsp;Not&nbsp;a&nbsp;standalone&nbsp;compiler&nbsp;these&nbsp;days&nbsp;-&nbsp;perhaps&nbsp;should&nbsp;be
&gt;linked&nbsp;as&nbsp;a&nbsp;GHC&nbsp;subproject?
&gt;
&gt;Other&nbsp;than&nbsp;those&nbsp;I'd&nbsp;propose&nbsp;NHC&nbsp;but&nbsp;I'm&nbsp;guessing&nbsp;that&nbsp;would&nbsp;get&nbsp;some
&gt;pushback&nbsp;(even&nbsp;though&nbsp;it&nbsp;currently&nbsp;doesn't&nbsp;build&nbsp;for&nbsp;me).&nbsp;&nbsp;Before
&gt;anyone&nbsp;brings&nbsp;up&nbsp;HUGS&nbsp;I'll&nbsp;just&nbsp;say&nbsp;that&nbsp;1)&nbsp;it&nbsp;is&nbsp;used&nbsp;2)&nbsp;it&nbsp;builds&nbsp;3)
&gt;at&nbsp;least&nbsp;it's&nbsp;been&nbsp;updated&nbsp;more&nbsp;recently&nbsp;than&nbsp;the&nbsp;Haskell&nbsp;langauge.
&gt;
&gt;Thomas
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;26
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;11:12:16&nbsp;-0700
&gt;From:&nbsp;Don&nbsp;Stewart&nbsp;&lt;dons@galois.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Pruning&nbsp;the&nbsp;Front&nbsp;Page
&gt;To:&nbsp;Thomas&nbsp;DuBuisson&nbsp;&lt;thomas.dubuisson@gmail.com&gt;
&gt;Cc:&nbsp;haskell&nbsp;mailing&nbsp;list&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:&nbsp;&lt;20090720181216.GL15846@whirlpool.galois.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=us-ascii
&gt;
&gt;thomas.dubuisson:
&gt;&gt;&nbsp;All,
&gt;&gt;&nbsp;I&nbsp;think&nbsp;we&nbsp;should&nbsp;remove&nbsp;unmaintained&nbsp;or&nbsp;refocused&nbsp;implementations
&gt;&gt;&nbsp;from&nbsp;the&nbsp;haskell.org&nbsp;front&nbsp;page.&nbsp;&nbsp;This&nbsp;would&nbsp;mean&nbsp;removing:
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;YHC&nbsp;-&nbsp;unmaintained,&nbsp;hasn't&nbsp;built&nbsp;for&nbsp;me&nbsp;in&nbsp;a&nbsp;while
&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LHC&nbsp;-&nbsp;Not&nbsp;a&nbsp;standalone&nbsp;compiler&nbsp;these&nbsp;days&nbsp;-&nbsp;perhaps&nbsp;should&nbsp;be
&gt;&gt;&nbsp;linked&nbsp;as&nbsp;a&nbsp;GHC&nbsp;subproject?
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;Other&nbsp;than&nbsp;those&nbsp;I'd&nbsp;propose&nbsp;NHC&nbsp;but&nbsp;I'm&nbsp;guessing&nbsp;that&nbsp;would&nbsp;get&nbsp;some
&gt;&gt;&nbsp;pushback&nbsp;(even&nbsp;though&nbsp;it&nbsp;currently&nbsp;doesn't&nbsp;build&nbsp;for&nbsp;me).&nbsp;&nbsp;Before
&gt;&gt;&nbsp;anyone&nbsp;brings&nbsp;up&nbsp;HUGS&nbsp;I'll&nbsp;just&nbsp;say&nbsp;that&nbsp;1)&nbsp;it&nbsp;is&nbsp;used&nbsp;2)&nbsp;it&nbsp;builds&nbsp;3)
&gt;&gt;&nbsp;at&nbsp;least&nbsp;it's&nbsp;been&nbsp;updated&nbsp;more&nbsp;recently&nbsp;than&nbsp;the&nbsp;Haskell&nbsp;langauge.
&gt;&gt;&nbsp;
&gt;
&gt;I&nbsp;guess&nbsp;we&nbsp;just&nbsp;acknowledge&nbsp;that&nbsp;all&nbsp;implementations&nbsp;are&nbsp;not&nbsp;equal,&nbsp;and
&gt;for&nbsp;newbies&nbsp;we&nbsp;strongly&nbsp;recommend&nbsp;GHC&nbsp;+&nbsp;Haskell&nbsp;Platform.&nbsp;For
&gt;reference,&nbsp;we&nbsp;point&nbsp;to&nbsp;a&nbsp;page&nbsp;listing&nbsp;all&nbsp;implementations.
&gt;
&gt;This&nbsp;follows&nbsp;convention&nbsp;(i.e.&nbsp;Python,&nbsp;Ruby&nbsp;only&nbsp;point&nbsp;to&nbsp;the&nbsp;canonical
&gt;impls,&nbsp;not&nbsp;the&nbsp;various&nbsp;forks).
&gt;
&gt;--&nbsp;Don
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;27
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;20:14:30&nbsp;+0100
&gt;From:&nbsp;Max&nbsp;Bolingbroke&nbsp;&lt;batterseapower@hotmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list
&gt;        comprehensions
&gt;To:&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;
&gt;Cc:&nbsp;haskell-cafe&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;9d4d38820907201214n79cc48a8jc5e5f19af511129d@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=ISO-8859-1
&gt;
&gt;2009/7/20&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;:
&gt;&gt;&nbsp;I&nbsp;just&nbsp;realised&nbsp;this&nbsp;is&nbsp;already&nbsp;in&nbsp;GHC&nbsp;:-)&nbsp;But&nbsp;does&nbsp;you&nbsp;patch&nbsp;also&nbsp;add
&gt;&gt;&nbsp;the&nbsp;equivalent&nbsp;for&nbsp;tuple&nbsp;type&nbsp;annotations?
&gt;&gt;
&gt;&gt;&nbsp;x&nbsp;::&nbsp;(String,&nbsp;)&nbsp;Double
&gt;&gt;&nbsp;x&nbsp;=&nbsp;("Pi",&nbsp;)&nbsp;3.14159
&gt;
&gt;It&nbsp;doesn't,&nbsp;and&nbsp;indeed&nbsp;it&nbsp;would&nbsp;only&nbsp;work&nbsp;in&nbsp;the&nbsp;special&nbsp;case&nbsp;where
&gt;your&nbsp;only&nbsp;missing&nbsp;type&nbsp;arguments&nbsp;are&nbsp;on&nbsp;the&nbsp;right&nbsp;(since&nbsp;we&nbsp;lack
&gt;type-level&nbsp;lambda,&nbsp;we&nbsp;can&nbsp;only&nbsp;accept&nbsp;eta-reduced&nbsp;forms).&nbsp;So&nbsp;it
&gt;probably&nbsp;wouldn't&nbsp;be&nbsp;worth&nbsp;it&nbsp;-&nbsp;it&nbsp;wouldn't&nbsp;allow&nbsp;you&nbsp;to&nbsp;write
&gt;anything&nbsp;significantly&nbsp;shorter&nbsp;than&nbsp;the&nbsp;existing&nbsp;form&nbsp;"(,)&nbsp;String".
&gt;
&gt;Cheers,
&gt;Max
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;28
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;21:26:05&nbsp;+0100
&gt;From:&nbsp;phil@beadling.co.uk
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Ambiguous&nbsp;type&nbsp;variable&nbsp;-&nbsp;help!
&gt;To:&nbsp;gale@sefer.org
&gt;Cc:&nbsp;haskell-cafe@haskell.org
&gt;Message-ID:&nbsp;&lt;47ED22E9-0828-4B19-A182-6F69DE919CC4@beadling.co.uk&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=US-ASCII;&nbsp;format=flowed;&nbsp;delsp=yes
&gt;
&gt;
&gt;On&nbsp;19&nbsp;Jul&nbsp;2009,&nbsp;at&nbsp;21:18,&nbsp;Yitzchak&nbsp;Gale&nbsp;wrote:
&gt;
&gt;&gt;&nbsp;Hi&nbsp;Phil,
&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt;&gt;&nbsp;I've&nbsp;concocted&nbsp;a&nbsp;very&nbsp;simple&nbsp;example&nbsp;to&nbsp;illustrate&nbsp;this&nbsp;(below)&nbsp;-&nbsp;but
&gt;&gt;&gt;&nbsp;it&nbsp;doesn't&nbsp;compile&nbsp;because&nbsp;ghc&nbsp;complains&nbsp;that&nbsp;my&nbsp;type&nbsp;is&nbsp;ambiguous&nbsp;&nbsp;
&gt;&gt;&gt;&nbsp;arising
&gt;&gt;&gt;&nbsp;from&nbsp;my&nbsp;use&nbsp;of&nbsp;'fromSeq'.
&gt;&gt;
&gt;&gt;&nbsp;Notice&nbsp;that&nbsp;you&nbsp;have&nbsp;given&nbsp;two&nbsp;completely&nbsp;separate&nbsp;sets
&gt;&gt;&nbsp;of&nbsp;instructions&nbsp;of&nbsp;what&nbsp;to&nbsp;do&nbsp;depending&nbsp;on&nbsp;whether&nbsp;Int
&gt;&gt;&nbsp;or&nbsp;Double&nbsp;is&nbsp;selected.&nbsp;You&nbsp;have&nbsp;not&nbsp;given&nbsp;any&nbsp;indication
&gt;&gt;&nbsp;of&nbsp;how&nbsp;to&nbsp;choose&nbsp;between&nbsp;them,&nbsp;even&nbsp;at&nbsp;runtime.&nbsp;Of&nbsp;course,
&gt;&gt;&nbsp;the&nbsp;compiler&nbsp;doesn't&nbsp;care&nbsp;that&nbsp;your&nbsp;string&nbsp;constants&nbsp;"Int"&nbsp;and
&gt;&gt;&nbsp;"Double"&nbsp;happen&nbsp;also&nbsp;to&nbsp;be&nbsp;the&nbsp;names&nbsp;of&nbsp;types&nbsp;if&nbsp;unquoted.
&gt;
&gt;I&nbsp;see&nbsp;now.&nbsp;&nbsp;I'm&nbsp;passing&nbsp;fromSeq&nbsp;a&nbsp;SeqType,&nbsp;but&nbsp;it&nbsp;has&nbsp;no&nbsp;way
&gt;of&nbsp;knowing&nbsp;if&nbsp;I&nbsp;want&nbsp;to&nbsp;process&nbsp;it&nbsp;as&nbsp;an&nbsp;Int&nbsp;or&nbsp;a&nbsp;Double.
&gt;The&nbsp;only&nbsp;thing&nbsp;which&nbsp;is&nbsp;polymorphic&nbsp;is&nbsp;nextSeq&nbsp;as&nbsp;it&nbsp;must&nbsp;handle
&gt;the&nbsp;underlying&nbsp;state&nbsp;of&nbsp;Int&nbsp;and&nbsp;Double.
&gt;
&gt;Your&nbsp;result&nbsp;function&nbsp;handles&nbsp;the&nbsp;general&nbsp;case&nbsp;and&nbsp;the&nbsp;typeclass
&gt;instances&nbsp;deal&nbsp;with&nbsp;the&nbsp;specialization&nbsp;depending&nbsp;on&nbsp;the&nbsp;state's&nbsp;type.
&gt;
&gt;The&nbsp;printResult&nbsp;function&nbsp;takes&nbsp;in&nbsp;a&nbsp;SeqType&nbsp;and&nbsp;then&nbsp;"parses"&nbsp;(for&nbsp;&nbsp;
&gt;want&nbsp;of
&gt;a&nbsp;better&nbsp;word)&nbsp;out&nbsp;the
&gt;underlying&nbsp;type&nbsp;of&nbsp;Int&nbsp;or&nbsp;Double.&nbsp;&nbsp;It&nbsp;then&nbsp;calls&nbsp;results&nbsp;against&nbsp;the&nbsp;&nbsp;
&gt;Int&nbsp;or&nbsp;Double&nbsp;which
&gt;in&nbsp;turn&nbsp;will&nbsp;invoke&nbsp;the&nbsp;correct&nbsp;version&nbsp;of&nbsp;nextSeq.
&gt;
&gt;
&gt;Thank&nbsp;you&nbsp;very&nbsp;much&nbsp;for&nbsp;explaining&nbsp;this!
&gt;
&gt;
&gt;Phil.
&gt;
&gt;&gt;
&gt;&gt;&nbsp;import&nbsp;Control.Monad.State&nbsp;--&nbsp;Why&nbsp;Strict?&nbsp;Haskell&nbsp;is&nbsp;lazy&nbsp;by&nbsp;default.
&gt;&gt;
&gt;
&gt;Ahh,&nbsp;no&nbsp;reason&nbsp;for&nbsp;the&nbsp;Strict&nbsp;-&nbsp;in&nbsp;the&nbsp;large&nbsp;program&nbsp;I'm&nbsp;righting&nbsp;it&nbsp;&nbsp;
&gt;is&nbsp;required
&gt;because&nbsp;otherwise&nbsp;I&nbsp;end&nbsp;up&nbsp;with&nbsp;almighty&nbsp;thunks.&nbsp;&nbsp;But&nbsp;here&nbsp;it&nbsp;serves&nbsp;&nbsp;
&gt;no&nbsp;purpose.
&gt;
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;29
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;22:25:30&nbsp;+0200
&gt;From:&nbsp;Nicolas&nbsp;Pouillard&nbsp;&lt;nicolas.pouillard@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list
&gt;        comprehensions
&gt;To:&nbsp;Max&nbsp;Bolingbroke&nbsp;&lt;batterseapower@hotmail.com&gt;
&gt;Cc:&nbsp;haskell-cafe&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:&nbsp;&lt;1248121473-sup-8534@ausone.local&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=UTF-8
&gt;
&gt;Excerpts&nbsp;from&nbsp;Max&nbsp;Bolingbroke's&nbsp;message&nbsp;of&nbsp;Sun&nbsp;Jul&nbsp;19&nbsp;16:58:08&nbsp;+0200&nbsp;2009:
&gt;&gt;&nbsp;Dear&nbsp;Cafe,
&gt;&gt;&nbsp;
&gt;&gt;&nbsp;For&nbsp;fun,&nbsp;I&nbsp;spent&nbsp;a&nbsp;few&nbsp;hours&nbsp;yesterday&nbsp;implement&nbsp;support&nbsp;for&nbsp;this
&gt;&gt;&nbsp;syntax&nbsp;in&nbsp;GHC,&nbsp;originally&nbsp;propsed&nbsp;by&nbsp;Koen&nbsp;Claessen:
&gt;&gt;&nbsp;
&gt;
&gt;[...]
&gt;
&gt;&gt;&nbsp;P.S.&nbsp;I&nbsp;also&nbsp;implemented&nbsp;tuple&nbsp;sections
&gt;&gt;&nbsp;(http://hackage.haskell.org/trac/ghc/ticket/3377#comment:3)&nbsp;which&nbsp;are
&gt;&gt;&nbsp;a&nbsp;lot&nbsp;more&nbsp;useful:
&gt;
&gt;I&nbsp;vote&nbsp;for&nbsp;both&nbsp;extensions.
&gt;
&gt;--&nbsp;
&gt;Nicolas&nbsp;Pouillard
&gt;http://nicolaspouillard.fr
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;30
&gt;Date:&nbsp;Tue,&nbsp;21&nbsp;Jul&nbsp;2009&nbsp;13:36:04&nbsp;+1200&nbsp;(NZST)
&gt;From:&nbsp;porges@porg.es
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Implicit&nbsp;concatenation&nbsp;in&nbsp;list
&gt;        comprehensions
&gt;To:&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;
&gt;Cc:&nbsp;haskell-cafe&nbsp;&lt;haskell-cafe@haskell.org&gt;,&nbsp;"Sittampalam,        Ganesh"
&gt;        &lt;ganesh.sittampalam@credit-suisse.com&gt;
&gt;Message-ID:&nbsp;&lt;fxdyfegnp48plbb647UYAxe124vaj_firegpg@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset="utf-8"
&gt;
&gt;2009/7/21&nbsp;Roel&nbsp;van&nbsp;Dijk&nbsp;&lt;vandijk.roel@gmail.com&gt;:
&gt;&gt;&gt;&gt;&nbsp;I&nbsp;am&nbsp;also&nbsp;wondering&nbsp;what&nbsp;the&nbsp;following&nbsp;would/should&nbsp;mean:
&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&nbsp;Â&nbsp;&nbsp;(1,&nbsp;,&nbsp;(&nbsp;,&nbsp;2),&nbsp;)&nbsp;'a'&nbsp;'b'&nbsp;'c'
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;I&nbsp;would&nbsp;expect&nbsp;it&nbsp;to&nbsp;be&nbsp;a&nbsp;type&nbsp;error,&nbsp;since&nbsp;I&nbsp;think&nbsp;the&nbsp;following&nbsp;is&nbsp;the
&gt;&gt;&gt;&nbsp;only&nbsp;sane&nbsp;type&nbsp;the&nbsp;tuple&nbsp;can&nbsp;have&nbsp;(assuming&nbsp;numeric&nbsp;literals&nbsp;::&nbsp;Int):
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;(1,&nbsp;,&nbsp;(&nbsp;,&nbsp;2),&nbsp;)&nbsp;::&nbsp;a&nbsp;-&gt;&nbsp;b&nbsp;-&gt;&nbsp;(Int,&nbsp;a,&nbsp;c&nbsp;-&gt;&nbsp;(c,&nbsp;Int),&nbsp;b)
&gt;&gt;&gt;
&gt;&gt;&gt;&nbsp;Ganesh
&gt;&gt;
&gt;&gt;&nbsp;Ah&nbsp;you're&nbsp;completely&nbsp;right!&nbsp;I&nbsp;would&nbsp;be&nbsp;applying&nbsp;a&nbsp;tuple&nbsp;to&nbsp;a&nbsp;Char
&gt;&gt;&nbsp;which&nbsp;is&nbsp;nonsense.
&gt;
&gt;You&nbsp;can&nbsp;kind&nbsp;of&nbsp;do&nbsp;it&nbsp;if&nbsp;you&nbsp;indicate&nbsp;which&nbsp;'field'&nbsp;is&nbsp;to&nbsp;be&nbsp;applied:
&gt;
&gt;&nbsp;&nbsp;import&nbsp;Control.Applicative
&gt;
&gt;&nbsp;&nbsp;newtype&nbsp;Fst&nbsp;b&nbsp;a&nbsp;=&nbsp;Fst&nbsp;(a,b)&nbsp;deriving&nbsp;(Show)
&gt;&nbsp;&nbsp;newtype&nbsp;Snd&nbsp;a&nbsp;b&nbsp;=&nbsp;Snd&nbsp;(a,b)&nbsp;deriving&nbsp;(Show)
&gt;
&gt;&nbsp;&nbsp;instance&nbsp;Functor&nbsp;(Fst&nbsp;b)&nbsp;where
&gt;&nbsp;&nbsp;        fmap&nbsp;f&nbsp;(Fst&nbsp;(a,b))&nbsp;=&nbsp;Fst&nbsp;(f&nbsp;a,b)
&gt;
&gt;&nbsp;&nbsp;instance&nbsp;Functor&nbsp;(Snd&nbsp;a)&nbsp;where
&gt;&nbsp;&nbsp;        fmap&nbsp;f&nbsp;(Snd&nbsp;(a,b))&nbsp;=&nbsp;Snd&nbsp;(a,f&nbsp;b)
&gt;
&gt;&nbsp;&nbsp;f&nbsp;&lt;$$&gt;&nbsp;x&nbsp;=&nbsp;($x)&nbsp;&lt;$&gt;&nbsp;f
&gt;
&gt;...
&gt;
&gt;&gt;&nbsp;Fst&nbsp;((,)1,3)&nbsp;&lt;$$&gt;&nbsp;2&nbsp;--&nbsp;no&nbsp;section,&nbsp;don't&nbsp;have&nbsp;the&nbsp;patch&nbsp;;)
&gt;Fst&nbsp;((1,2),3)
&gt;--------------&nbsp;next&nbsp;part&nbsp;--------------
&gt;A&nbsp;non-text&nbsp;attachment&nbsp;was&nbsp;scrubbed...
&gt;Name:&nbsp;signature.asc
&gt;Type:&nbsp;application/pgp-signature
&gt;Size:&nbsp;908&nbsp;bytes
&gt;Desc:&nbsp;OpenPGP&nbsp;digital&nbsp;signature
&gt;Url&nbsp;:&nbsp;http://www.haskell.org/pipermail/haskell-cafe/attachments/20090720/914e9c57/signature-0001.bin
&gt;
&gt;------------------------------
&gt;
&gt;Message:&nbsp;31
&gt;Date:&nbsp;Mon,&nbsp;20&nbsp;Jul&nbsp;2009&nbsp;22:02:00&nbsp;-0400
&gt;From:&nbsp;Gwern&nbsp;Branwen&nbsp;&lt;gwern0@gmail.com&gt;
&gt;Subject:&nbsp;Re:&nbsp;[Haskell-cafe]&nbsp;Pruning&nbsp;the&nbsp;Front&nbsp;Page
&gt;To:&nbsp;Thomas&nbsp;DuBuisson&nbsp;&lt;thomas.dubuisson@gmail.com&gt;
&gt;Cc:&nbsp;haskell&nbsp;mailing&nbsp;list&nbsp;&lt;haskell-cafe@haskell.org&gt;
&gt;Message-ID:
&gt;        &lt;cbf55b100907201902h4fda9be9jc0cc333cf4ddaa42@mail.gmail.com&gt;
&gt;Content-Type:&nbsp;text/plain;&nbsp;charset=UTF-8
&gt;
&gt;On&nbsp;Mon,&nbsp;Jul&nbsp;20,&nbsp;2009&nbsp;at&nbsp;2:09&nbsp;PM,&nbsp;Thomas
&gt;DuBuisson&lt;thomas.dubuisson@gmail.com&gt;&nbsp;wrote:
&gt;&gt;&nbsp;All,
&gt;&gt;&nbsp;I&nbsp;think&nbsp;we&nbsp;should&nbsp;remove&nbsp;unmaintained&nbsp;or&nbsp;refocused&nbsp;implementations
&gt;&gt;&nbsp;from&nbsp;the&nbsp;haskell.org&nbsp;front&nbsp;page.&nbsp;Â&nbsp;This&nbsp;would&nbsp;mean&nbsp;removing:
&gt;&gt;&nbsp;Â&nbsp;&nbsp;Â&nbsp;YHC&nbsp;-&nbsp;unmaintained,&nbsp;hasn't&nbsp;built&nbsp;for&nbsp;me&nbsp;in&nbsp;a&nbsp;while
&gt;&gt;&nbsp;Â&nbsp;&nbsp;Â&nbsp;LHC&nbsp;-&nbsp;Not&nbsp;a&nbsp;standalone&nbsp;compiler&nbsp;these&nbsp;days&nbsp;-&nbsp;perhaps&nbsp;should&nbsp;be
&gt;&gt;&nbsp;linked&nbsp;as&nbsp;a&nbsp;GHC&nbsp;subproject?
&gt;&gt;
&gt;&gt;&nbsp;Other&nbsp;than&nbsp;those&nbsp;I'd&nbsp;propose&nbsp;NHC&nbsp;but&nbsp;I'm&nbsp;guessing&nbsp;that&nbsp;would&nbsp;get&nbsp;some
&gt;&gt;&nbsp;pushback&nbsp;(even&nbsp;though&nbsp;it&nbsp;currently&nbsp;doesn't&nbsp;build&nbsp;for&nbsp;me).&nbsp;Â&nbsp;Before
&gt;&gt;&nbsp;anyone&nbsp;brings&nbsp;up&nbsp;HUGS&nbsp;I'll&nbsp;just&nbsp;say&nbsp;that&nbsp;1)&nbsp;it&nbsp;is&nbsp;used&nbsp;2)&nbsp;it&nbsp;builds&nbsp;3)
&gt;&gt;&nbsp;at&nbsp;least&nbsp;it's&nbsp;been&nbsp;updated&nbsp;more&nbsp;recently&nbsp;than&nbsp;the&nbsp;Haskell&nbsp;langauge.
&gt;&gt;
&gt;&gt;&nbsp;Thomas
&gt;
&gt;What&nbsp;about&nbsp;UHC&nbsp;and&nbsp;JHC?&nbsp;They're&nbsp;both&nbsp;maintained&nbsp;(in&nbsp;their&nbsp;varying
&gt;degrees),&nbsp;but&nbsp;I&nbsp;don't&nbsp;think&nbsp;they&nbsp;can&nbsp;do&nbsp;anything&nbsp;but&nbsp;pure&nbsp;Haskell
&gt;'98*,&nbsp;and&nbsp;I&nbsp;dunno&nbsp;whether&nbsp;they&nbsp;could&nbsp;even&nbsp;compile&nbsp;the&nbsp;Cabal&nbsp;packages
&gt;which&nbsp;are/depend&nbsp;only&nbsp;on&nbsp;Haskell&nbsp;'98.
&gt;
&gt;What&nbsp;should&nbsp;our&nbsp;criterion&nbsp;be?&nbsp;Just&nbsp;maintained?&nbsp;Maintained&nbsp;and&nbsp;at&nbsp;least
&gt;able&nbsp;to&nbsp;compile&nbsp;Haskell&nbsp;'98&nbsp;source?&nbsp;Maintained,&nbsp;able&nbsp;to&nbsp;compile
&gt;Haskell&nbsp;'98,&nbsp;and&nbsp;also&nbsp;the&nbsp;pure&nbsp;Haskell&nbsp;'98&nbsp;subset&nbsp;of&nbsp;Hackage?
&gt;
&gt;I&nbsp;prefer&nbsp;the&nbsp;last&nbsp;triplet&nbsp;since&nbsp;it's&nbsp;the&nbsp;best&nbsp;for&nbsp;newbies&nbsp;and&nbsp;the
&gt;minimum&nbsp;necessary&nbsp;for&nbsp;practicality&nbsp;beyond&nbsp;rolling&nbsp;everything&nbsp;oneself,
&gt;but&nbsp;perhaps&nbsp;that's&nbsp;too&nbsp;strict&nbsp;for&nbsp;everyone&nbsp;else.
&gt;
&gt;*&nbsp;by&nbsp;which&nbsp;I&nbsp;mean&nbsp;Haskell&nbsp;'98,&nbsp;the&nbsp;FFI,&nbsp;and&nbsp;hierarchical&nbsp;modules
&gt;
&gt;--&nbsp;
&gt;gwern
&gt;
&gt;
&gt;------------------------------
&gt;
&gt;_______________________________________________
&gt;Haskell-Cafe&nbsp;mailing&nbsp;list
&gt;Haskell-Cafe@haskell.org
&gt;http://www.haskell.org/mailman/listinfo/haskell-cafe
&gt;
&gt;
&gt;End&nbsp;of&nbsp;Haskell-Cafe&nbsp;Digest,&nbsp;Vol&nbsp;71,&nbsp;Issue&nbsp;30
&gt;********************************************
</PRE><br><!-- footer --><br><span title="neteasefooter"/><hr/>
<a href="http://www.yeah.net/?from=footer">网易YEAH.NET免费邮箱:您的终身免费邮箱</a>
</span>