[Haskell-cafe] how can I receive the mail?

shoulders onlyforjob at 163.com
Mon Aug 18 22:04:18 EDT 2008



-----=D3=CA=BC=FE=D4=AD=BC=FE-----
=B7=A2=BC=FE=C8=CB: haskell-cafe-bounces at haskell.org
[mailto:haskell-cafe-bounces at haskell.org] =B4=FA=B1=ED =
haskell-cafe-request at haskell.
org
=B7=A2=CB=CD=CA=B1=BC=E4: 2008=C4=EA8=D4=C219=C8=D5 4:23
=CA=D5=BC=FE=C8=CB: haskell-cafe at haskell.org
=D6=F7=CC=E2: Haskell-Cafe Digest, Vol 60, Issue 20

Send Haskell-Cafe mailing list submissions to
	haskell-cafe at haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
	http://www.haskell.org/mailman/listinfo/haskell-cafe
or, via email, send a message with subject or body 'help' to
	haskell-cafe-request at haskell.org

You can reach the person managing the list at
	haskell-cafe-owner at haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Haskell-Cafe digest..."


Today's Topics:

   1. Re: permutations and performance (John D. Ramsdell)
   2. Houston area FPers.... (Galchin, Vasili)
   3. Re: Fwd: Haskell job opportunity: Platform Architect	at
      Peerium, Inc. (Benjamin L.Russell)
   4. the cabal category field and "uploads" (Galchin, Vasili)
   5. Re: Houston area FPers.... (Galchin, Vasili)
   6. Re: the cabal category field and "uploads" (Don Stewart)
   7. Re: the cabal category field and "uploads" (Galchin, Vasili)
   8. Re: Re: Phantoms (Jason Dagit)
   9. "build depends:" in a .cabal file (Galchin, Vasili)
  10. Re: "build depends:" in a .cabal file (Galchin, Vasili)
  11. Serial COM port access on Windows ( Kol?? Du?an )
  12. Re: FRP question (Ryan Ingram)
  13. Re: "build depends:" in a .cabal file (Henning Thielemann)
  14. missingH 0.18.6 - problems with cabal configure (Andrew U. Frank)
  15. Re: "build depends:" in a .cabal file (Duncan Coutts)
  16. Reader monad, implicit parameters,	or something else
      altogether? (Bjorn Buckwalter)
  17. Reader monad, implicit parameters,	or something else
      altogether? (Bjorn Buckwalter)
  18. Re: Reader monad, implicit parameters,	or something else
      altogether? (Henning Thielemann)
  19. Re: Reader monad, implicit parameters,	or something else
      altogether? (Bjorn Buckwalter)
  20. Re: Reader monad, implicit parameters,	or something else
      altogether? (Brandon S. Allbery KF8NH)
  21. Re: Reader monad, implicit parameters,	or something else
      altogether? (Brandon S. Allbery KF8NH)
  22. Re: Reader monad, implicit parameters,	or something else
      altogether? (Henning Thielemann)
  23. Re: Reader monad, implicit parameters,	or something else
      altogether? (Henning Thielemann)
  24. Fwd: [Haskell-cafe] Reader monad, implicit parameters,	or
      something else altogether? (Bjorn Buckwalter)
  25. Re: Fwd: [Haskell-cafe] Reader monad, implicit parameters,	or
      something else altogether? (Henning Thielemann)
  26. Re: X Haskell Bindings (David Roundy)
  27. Re: Fwd: [Haskell-cafe] Reader monad, implicit parameters,	or
      something else altogether? (Evan Laforge)
  28. Re: Reader monad, implicit parameters,	or something else
      altogether? (Brandon S. Allbery KF8NH)


----------------------------------------------------------------------

Message: 1
Date: Sun, 17 Aug 2008 22:40:30 -0400
From: "John D. Ramsdell" <ramsdell0 at gmail.com>
Subject: Re: [Haskell-cafe] permutations and performance
To: "Henning Thielemann" <schlepptop at henning-thielemann.de>
Cc: Haskell Cafe <haskell-cafe at haskell.org>
Message-ID:
	<7687290b0808171940y49c67e93n4866a276a5b8a50 at mail.gmail.com>
Content-Type: text/plain; charset=3DUTF-8

On Sat, Aug 16, 2008 at 5:28 PM, Henning Thielemann
<schlepptop at henning-thielemann.de> wrote:

> There is _one_ permutation with no elements, namely [], thus it must =
be
>        | n =3D=3D 0 =3D [[]]

I see.

John


------------------------------

Message: 2
Date: Sun, 17 Aug 2008 21:47:33 -0500
From: "Galchin, Vasili" <vigalchin at gmail.com>
Subject: [Haskell-cafe] Houston area FPers....
To: mad.one at gmail.com
Cc: Galchin Vasili <vigalchin at gmail.com>,	"haskell-cafe at haskell.org"
	<haskell-cafe at haskell.org>
Message-ID:
	<5ae4f2ba0808171947v52dae7a2gf9582c1b31f50d20 at mail.gmail.com>
Content-Type: text/plain; charset=3D"iso-8859-1"

Hi Austin,

      I live next to the NASA Johnson Space Center.  JSC is minutes away
from Uof H Clear Lake. Which campus are you going to? (main campus?).

Kind regards, Vasili
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/haskell-cafe/attachments/20080817/9a4978=
cd/
attachment-0001.htm

------------------------------

Message: 3
Date: Mon, 18 Aug 2008 12:05:48 +0900
From: Benjamin L.Russell <DekuDekuplex at Yahoo.com>
Subject: [Haskell-cafe] Re: Fwd: Haskell job opportunity: Platform
	Architect	at Peerium, Inc.
To: haskell-cafe at haskell.org
Message-ID: <pcpha41sergj1n7cfgj7verhar122t7i6i at 4ax.com>
Content-Type: text/plain; charset=3Dus-ascii

On Fri, 15 Aug 2008 11:29:46 -0700, Don Stewart <dons at galois.com>
wrote:

>DekuDekuplex:
>> On Thu, 14 Aug 2008 14:17:05 -0700, Don Stewart <dons at galois.com>
>> wrote:
>>=20
>> >[...]
>> >
>> >Skills:
>> >    Proficiency and a strong interest in Haskell programming :) =20
>> >
>> >    Bachelor's degree in computer science or equivalent from a =
four-year
>> >    institution.
>>=20
>> This is the required background of Haskell-related job offering that =
I
>> am looking for, except that I happen to be located in Tokyo, Japan.
>
>Have you been to the Tokyo user group meetings?=20
>They're organised by Starling software, so perhaps a good place to
>network,
>=20
> http://www.starling-software.com/en/tsac.html

Yes, but they were only interested in having me do some writing
projects on a "non-commercial" basis, and I had to work a little late
last time and wasn't able to arrive until shortly before the meeting
was over, so I wasn't able to "network" much.

Thanks for the tip, though.  There is also a Japanese-language
Category Theory study group that I often attend (see
http://www.sampou.org/cgi-bin/haskell.cgi?CategoryTheory%3A%B7%F7%CF%C0%C=
A%D
9%B6%AF%B2%F1)
(the link target is in Japanese).  Please let me know if you find
anything else.

-- Benjamin L. Russell



------------------------------

Message: 4
Date: Sun, 17 Aug 2008 22:47:48 -0500
From: "Galchin, Vasili" <vigalchin at gmail.com>
Subject: [Haskell-cafe] the cabal category field and "uploads"
To: "Ross Paterson" <ross at soi.city.ac.uk>
Cc: Galchin Vasili <vigalchin at gmail.com>,	"haskell-cafe at haskell.org"
	<haskell-cafe at haskell.org>
Message-ID:
	<5ae4f2ba0808172047l4189dd4coef7d45766cdf6e15 at mail.gmail.com>
Content-Type: text/plain; charset=3D"iso-8859-1"

Hi Ross,

     When I upload a code contribution, how do I specify which category =
in
the Hackage database, e.g. System?

Kind regards, Vasili
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/haskell-cafe/attachments/20080817/43a6a9=
b7/
attachment-0001.htm

------------------------------

Message: 5
Date: Sun, 17 Aug 2008 23:22:38 -0500
From: "Galchin, Vasili" <vigalchin at gmail.com>
Subject: [Haskell-cafe] Re: Houston area FPers....
To: mad.one at gmail.com
Cc: Galchin Vasili <vigalchin at gmail.com>,	"haskell-cafe at haskell.org"
	<haskell-cafe at haskell.org>
Message-ID:
	<5ae4f2ba0808172122k3df095e4r46e6eca18b087cb at mail.gmail.com>
Content-Type: text/plain; charset=3D"iso-8859-1"

Austin,

    I have a friend (a former tech lead) at Google who told me that
http://www.cs.rice.edu/~taha/ ... is doing FP research Rice U.

Kind regards, Vasili


On Sun, Aug 17, 2008 at 9:47 PM, Galchin, Vasili =
<vigalchin at gmail.com>wrote:

> Hi Austin,
>
>       I live next to the NASA Johnson Space Center.  JSC is minutes =
away
> from Uof H Clear Lake. Which campus are you going to? (main campus?).
>
> Kind regards, Vasili
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/haskell-cafe/attachments/20080817/a11688=
2b/
attachment-0001.htm

------------------------------

Message: 6
Date: Sun, 17 Aug 2008 21:37:05 -0700
From: Don Stewart <dons at galois.com>
Subject: Re: [Haskell-cafe] the cabal category field and "uploads"
To: "Galchin, Vasili" <vigalchin at gmail.com>
Cc: Ross Paterson <ross at soi.city.ac.uk>,	"haskell-cafe at haskell.org"
	<haskell-cafe at haskell.org>
Message-ID: <20080818043705.GA29062 at scytale.galois.com>
Content-Type: text/plain; charset=3Dus-ascii

vigalchin:
>    Hi Ross,
>=20
>         When I upload a code contribution, how do I specify which =
category
in
>    the Hackage database, e.g. System?
>=20

add:

    category: System

to your project's .cabal file


------------------------------

Message: 7
Date: Sun, 17 Aug 2008 23:39:53 -0500
From: "Galchin, Vasili" <vigalchin at gmail.com>
Subject: Re: [Haskell-cafe] the cabal category field and "uploads"
To: "Don Stewart" <dons at galois.com>
Cc: Ross Paterson <ross at soi.city.ac.uk>,	"haskell-cafe at haskell.org"
	<haskell-cafe at haskell.org>
Message-ID:
	<5ae4f2ba0808172139u6de10b68n54038b57abe7c898 at mail.gmail.com>
Content-Type: text/plain; charset=3D"iso-8859-1"

thanks, Don!

Vasili ;^)

On Sun, Aug 17, 2008 at 11:37 PM, Don Stewart <dons at galois.com> wrote:

> vigalchin:
> >    Hi Ross,
> >
> >         When I upload a code contribution, how do I specify which
> category in
> >    the Hackage database, e.g. System?
> >
>
> add:
>
>    category: System
>
> to your project's .cabal file
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/haskell-cafe/attachments/20080817/4ccf6d=
70/
attachment-0001.htm

------------------------------

Message: 8
Date: Mon, 18 Aug 2008 01:21:43 -0700
From: "Jason Dagit" <dagit at codersbase.com>
Subject: Re: [Haskell-cafe] Re: Phantoms
To: "Ben Franksen" <ben.franksen at online.de>
Cc: haskell-cafe at haskell.org
Message-ID:
	<b97f58860808180121t25d4ee2axf14c64cf13f83db3 at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

On Sat, Aug 16, 2008 at 1:12 PM, Ben Franksen <ben.franksen at online.de>
wrote:
>
> Jason Dagit wrote:
> > On Wed, Aug 6, 2008 at 11:09 AM, Andrew Coppin
> > <andrewcoppin at btinternet.com>wrote:
> >
> >> I just (re)discovered that I can do things like
> >>
> >>  data Foo x =3D Foo Int Int
> >>
> >> Now "Foo Int" and "Foo Double" are, as far as the type checker =
cares,
two
> >> completely different types, even though in fact they are the same. =
This
> >> is actually Quite Useful, in the particular case I'm working on.
> >
> > Phantom types are indeed useful for many things, but a bit of =
cautionary
> > advice.  If you start to depend on the phantoms for type safety AND =
you
> > export your data constructors then you run a serious risk of being =
type
> > unsafe.  Bonus points if you can demonstrate an equivalent of
> > unsafeCoerce# this way.
>
> This would be very bad, but I doubt it is possible.
>
> > Example:
> > fooCast :: Foo Int -> Foo Double
> > fooCast (Foo x) =3D Foo x
> >
> > On noes!  We just cast that Foo Int to a Foo Double without changing =
it!
>
> What's the problem?

It's not so bad if you keep in mind that it's possible.  Sometimes
it's exactly what you want.

>
> > It works because the value on the RHS is consider freshly =
constructed
and
> > other than sharing x it is unrelated to the one on the LHS.
>
> Right. You must call the data constructor Foo in order to exploit that =
it
> has the type
>
>  Foo :: Int -> Foo a
>
> I don't see how this is not type safe, and I was not able to produce =
an
> #unsafeCoerce with this technique. One would need some
>
>  unFoo a -> a
>
> but the  a  in  data Foo a  is phantom, i.e. there is no thing of type =
 a
>
> in a Foo.


Ah, it seems that the example I remembered cooking up requires GADTs,
lexically scoped type variables and one unsafeCoerce#, so I guess it
can be dismissed on the grounds that it uses unsafeCoerce# internally.
 I only need that because to make my thing work I need the following:

data EqCheck a b where
     IsEq :: EqCheck a a
     NotEq :: EqCheck a b

(=3D\/=3D) :: C a b -> C a c -> EqCheck b c

Without unsafeCoerce# I don't see how to implement (=3D\/=3D).  But, if
you had that you could do the following:

(=3D\/=3D) :: C a b -> C a c -> EqCheck b c
a =3D\/=3D b | unC a =3D=3D unC b =3D unsafeCoerce# IsEq
         | otherwise =3D NotEq

data C x y =3D C String

unsafeC :: String -> C x y
unsafeC a =3D C a

unC :: C x y -> String
unC (C x) =3D x

myCoerce :: forall a b. a -> b
myCoerce x =3D fromJust $
  do let ab =3D unsafeC "" :: C a b
     let aa =3D unsafeC "" :: C a a
     IsEq <- return $ aa =3D\/=3D ab
     return x

Actually, it turns out that this also requires ghc 6.6.  I just tried
this out in both 6.6 and 6.8 and it turns out that in 6.8 the type
checker was upgraded, in particular the way type checking works for
GADTs was refined and the above program is rejected.

I'm glad to see that myCoerce is not possible without using an
unsafeCoerce# yourself.

Thanks,
Jason


------------------------------

Message: 9
Date: Mon, 18 Aug 2008 03:37:25 -0500
From: "Galchin, Vasili" <vigalchin at gmail.com>
Subject: [Haskell-cafe] "build depends:" in a .cabal file
To: "haskell-cafe at haskell.org" <haskell-cafe at haskell.org>
Cc: Galchin Vasili <vigalchin at gmail.com>
Message-ID:
	<5ae4f2ba0808180137k4ed172c4r6ba9bc4960f1e905 at mail.gmail.com>
Content-Type: text/plain; charset=3D"iso-8859-1"

Hello,

     It seems to me that the "build depends" attribute/field is only
informational, i.e. it doesn't cause "faulting in" dependencies if not
present? If true, this seems to be a deficiency in cabal. ??

Kind regards, Vasili

PS It seems to me that for HaskellDB the "build depends" is incomplete =
in
that it should contain "old time" and "TextPrettyPrint.HughesPJ"??
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/haskell-cafe/attachments/20080818/245a43=
04/
attachment-0001.htm

------------------------------

Message: 10
Date: Mon, 18 Aug 2008 03:42:59 -0500
From: "Galchin, Vasili" <vigalchin at gmail.com>
Subject: [Haskell-cafe] Re: "build depends:" in a .cabal file
To: "haskell-cafe at haskell.org" <haskell-cafe at haskell.org>
Cc: Galchin Vasili <vigalchin at gmail.com>
Message-ID:
	<5ae4f2ba0808180142n135b513ufa8c4506a8f3bc57 at mail.gmail.com>
Content-Type: text/plain; charset=3D"iso-8859-1"

cabal should access to currently installed packages from the package db.
Just thinking out loud ... a digraph of dependencies would have to be =
built
from "build depends" to drive possible "faulting in " ....

On Mon, Aug 18, 2008 at 3:37 AM, Galchin, Vasili =
<vigalchin at gmail.com>wrote:

> Hello,
>
>      It seems to me that the "build depends" attribute/field is only
> informational, i.e. it doesn't cause "faulting in" dependencies if not
> present? If true, this seems to be a deficiency in cabal. ??
>
> Kind regards, Vasili
>
> PS It seems to me that for HaskellDB the "build depends" is incomplete =
in
> that it should contain "old time" and "TextPrettyPrint.HughesPJ"??
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/haskell-cafe/attachments/20080818/52f404=
df/
attachment-0001.htm

------------------------------

Message: 11
Date: Mon, 18 Aug 2008 10:51:01 +0200
From: " Kol?? Du?an "	<kolar at fit.vutbr.cz>
Subject: [Haskell-cafe] Serial COM port access on Windows
To: "Haskell Cafe" <haskell-cafe at haskell.org>
Message-ID: <20080818105101.1830443gm4stf2o0 at email.fit.vutbr.cz>
Content-Type: text/plain;	charset=3DISO-8859-2;	DelSp=3D"Yes";
	format=3D"flowed"

Dear all,

   Is there any more or less specific library for access to serial COM =20
port from Haskell on Windows? Or am I expected to use a file mapping? =20
Could you point me to some texts/examples? I tried some google (GHC =20
specific) with no expected result.

   The issue is the following - I have a device communicating via =20
Bluetooth with my PC, PC can create a serial COM port over the =20
Bluetooth connection... I used C and a specific library for C so far, =20
but  I'd rather not encapsulate it by some Foreign calls in Haskell.

   Thanks for hints,

     Dusan



------------------------------

Message: 12
Date: Mon, 18 Aug 2008 02:14:05 -0700
From: "Ryan Ingram" <ryani.spam at gmail.com>
Subject: Re: [Haskell-cafe] FRP question
To: "Tim Newsham" <newsham at lava.net>
Cc: haskell-cafe at haskell.org
Message-ID:
	<2f9b2d30808180214s7765ddb9g8230c485e3155285 at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

I think FRP is well-suited to this problem; it lets you abstract out
the imperative network code from the "reactive core" of the code.  The
network code can live in a separate thread that uses select() and
listen(), and updates event streams.

I was thinking about writing a MUD using FRP; in my mind, the
framework looked something like this:

-- A connection is
-- 1) An event that fires once when the connection is closed
-- 2) An event that fires each time a line is received over the =
connection
-- 3) A routine that outputs a line to that connection
-- 4) A routine that closes the conection
data Connection =3D Conn
   { connClosed :: Event ()
   , connLines :: Event String
   , connWrite :: String -> IO ()
   , connDisconnect :: IO ()
   }

-- Listen on a given port for connections and return them as an FRP
event stream.
-- Since Connection contains an event stream, this is going
-- to be a nested event; we will use join/>>=3D on Event at some point =
to get
the
-- commands from each connection
listen :: Int -> IO (Event Connection)

-- the server is an FRP program that outputs an event stream of IO =
actions;
-- the actions will generally just be "write a message to a particular
socket"
server :: Event Connection -> Event (IO ())

-- Now main is trivial to implement, given sinkE from Conal's FRP paper
-- http://conal.net/papers/simply-reactive/
-- sinkE :: (a -> IO ()) -> Event a -> IO ()
main =3D listen 4200 >>=3D sinkE id . server

-- An example server that writes "hello world" to each client and
disconnects them
server conns =3D do
   connection <- conns
   return $ do
       connWrite connection "Hello World."
       connDisconnect connection

  -- ryan

On Sun, Aug 17, 2008 at 2:26 PM, Tim Newsham <newsham at lava.net> wrote:
> I'm interested in FRP, have read several of the papers and am =
wondering
> if it could be applied to writing multi-client server programs.
> What would be the input type events for such a system?  What would
> be the output type events?  How would the system handle the fact
> that it has to multiplex several IO streams (sockets)?
>
> I'm trying to answer these questions myself and having a hard time.
> Should input events include new connection requests and shutdowns?
> Individual bytes?  Streams of bytes?  or higher level PDUs?
> What kind of output should be generated?  Full PDUs?  streams of
> bytes?  Pairs of (connection identifier,data)?
> How would such a system effectively hide the multiplexed IO going on?
> Is this sort of problem poorly suited for FRP?
>
> Tim Newsham
> http://www.thenewsh.com/~newsham/
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


------------------------------

Message: 13
Date: Mon, 18 Aug 2008 11:15:06 +0200 (CEST)
From: Henning Thielemann <lemming at henning-thielemann.de>
Subject: Re: [Haskell-cafe] "build depends:" in a .cabal file
To: "Galchin, Vasili" <vigalchin at gmail.com>
Cc: "haskell-cafe at haskell.org" <haskell-cafe at haskell.org>
Message-ID: <Pine.SOC.4.64.0808181112430.26046 at verdi>
Content-Type: TEXT/PLAIN; charset=3DUS-ASCII; format=3Dflowed


On Mon, 18 Aug 2008, Galchin, Vasili wrote:

> Hello,
>
>     It seems to me that the "build depends" attribute/field is only
> informational, i.e. it doesn't cause "faulting in" dependencies if not
> present? If true, this seems to be a deficiency in cabal. ??

At least when compiling with GHC, Cabal exposes only packages which are=20
mentioned under Build-Depends. That is, if a package is missing in=20
Build-Depends, the project cannot be compiled. It is however possible to =

forget modules in the Exposed-Modules and Other-Modules section and GHC=20
finds them anyway.


------------------------------

Message: 14
Date: Mon, 18 Aug 2008 12:36:46 +0200
From: "Andrew U. Frank" <frank at geoinfo.tuwien.ac.at>
Subject: [Haskell-cafe] missingH 0.18.6 - problems with cabal
	configure
To: "haskell-cafe at haskell.org" <haskell-cafe at haskell.org>
Message-ID: <1219055806.8816.29.camel at bernH>
Content-Type: text/plain

when i run cabal i get an error message:
:~/haskellSources/packages/MissingH-0.18.6$ runhaskell Setup configure

Setup.hs:19:35:
    Couldn't match expected type `(Either
                                     GenericPackageDescription
PackageDescription,
                                   HookedBuildInfo)'
           against inferred type `PackageDescription'
    In the first argument of `(confHook defaultUserHooks)', namely
        `mydescrip'
    In the expression:
        let
          mydescrip =3D case os of
                        "mingw32" -> ...
                        _ -> ...
        in (confHook defaultUserHooks) mydescrip flags
    In the definition of `customConfHook':
        customConfHook descrip flags
                         =3D let mydescrip =3D ...
                           in (confHook defaultUserHooks) mydescrip
flags


what is wrong? i use ghc 6.8.2 and cabal 1.2.3.0

thanks for help!
andrew




------------------------------

Message: 15
Date: Mon, 18 Aug 2008 12:20:05 +0100
From: Duncan Coutts <duncan.coutts at worc.ox.ac.uk>
Subject: Re: [Haskell-cafe] "build depends:" in a .cabal file
To: "Galchin, Vasili" <vigalchin at gmail.com>
Cc: "haskell-cafe at haskell.org" <haskell-cafe at haskell.org>
Message-ID: <1219058405.13639.204.camel at localhost>
Content-Type: text/plain

On Mon, 2008-08-18 at 03:37 -0500, Galchin, Vasili wrote:
> Hello,
>=20
>      It seems to me that the "build depends" attribute/field is only
> informational, i.e. it doesn't cause "faulting in" dependencies if not
> present? If true, this seems to be a deficiency in cabal. ??

I'm not quite sure what you mean. They are certainly not just
informational. If you miss dependencies then the package will not
compile.

If by "faulting in" you mean downloading and installing missing
dependencies, then that's exactly what the cabal-install tool does.

As you mention in your other email, Cabal and cabal-install do indeed
access the db of installed packages and build a dependency graph.
cabal-install also uses a simple constraint solver to find a
satisfactory dep graph of installable packages.

Duncan




------------------------------

Message: 16
Date: Mon, 18 Aug 2008 10:24:56 -0400
From: "Bjorn Buckwalter" <bjorn.buckwalter at gmail.com>
Subject: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: "Haskell-Cafe Haskell-Cafe" <haskell-cafe at haskell.org>
Message-ID:
	<8b2a1a960808180724k1881b4dfr40e5d1da5128f06e at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

All,

I have a growing amount of astrodynamics code that relies on various
physical "constants". The problem with these so called "constants" are
that they either aren't really constants or aren't well known. An
example is the leap second table (see Data.Time.Clock.TAI). I'd like
to be able to fetch current values of these constants at runtime and
make them accessible to my astrodynamics functions by some means. To
clarify, once initialized the constants will be considered constant
for the remainder of the program.

I'd store the constants in a data structure along the lines of:

> data AstroData a =3D AstroData
>   { mu_Earth    :: GravitationalParameter a
>   , leapSeconds :: LeapSecondTable
>   }

I would like to know if there is any consensus on what is the best way
to make such a data structure accessible in pure functions. Passing it
explicitly would be a mess. It seems that two options are to use
either a Reader monad or implicit parameters. Using a Reader monad is
straight forward enough though it requires writing/converting code
in/to monadic style and adds some clutter to the formulae. It seems
implicit parameters could be cleaner but I've seen them referred to as
everything from evil to "just what you need" and rendering the Reader
monad obsolete...

What do you people recommend?

Thanks,
Bjorn Buckwalter


------------------------------

Message: 17
Date: Mon, 18 Aug 2008 10:59:14 -0400
From: "Bjorn Buckwalter" <bjorn.buckwalter at gmail.com>
Subject: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: "Haskell-Cafe Haskell-Cafe" <haskell-cafe at haskell.org>
Message-ID:
	<8b2a1a960808180759x6781d139h216cadc61e64ca24 at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

All,

I have a growing amount of astrodynamics code that relies on various
physical "constants". The problem with these so called "constants" are
that they either aren't really constants or aren't well known. An
example is the leap second table (see Data.Time.Clock.TAI). I'd like
to be able to fetch current values of these constants at runtime and
make them accessible to my astrodynamics functions by some means. To
clarify, once initialized the constants will be considered constant
for the remainder of the program.

I'd store the constants in a data structure along the lines of:

> data AstroData a =3D AstroData
>   { mu_Earth    :: GravitationalParameter a
>   , leapSeconds :: LeapSecondTable
>   }

I would like to know if there is any consensus on what is the best way
to make such a data structure accessible in pure functions. Passing it
explicitly would be a mess. It seems that two options are to use
either a Reader monad or implicit parameters. Using a Reader monad is
straight forward enough though it requires writing/converting code
in/to monadic style and adds some clutter to the formulae. It seems
implicit parameters could be cleaner but I've seen them referred to as
everything from evil to "just what you need" and rendering the Reader
monad obsolete...

What do you people recommend?

Thanks,
Bjorn Buckwalter


------------------------------

Message: 18
Date: Mon, 18 Aug 2008 17:16:12 +0200 (MEST)
From: Henning Thielemann <lemming at henning-thielemann.de>
Subject: Re: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: Bjorn Buckwalter <bjorn.buckwalter at gmail.com>
Cc: Haskell-Cafe Haskell-Cafe <haskell-cafe at haskell.org>
Message-ID:
	<Pine.SOC.4.64.0808181704210.20444 at haydn.informatik.uni-halle.de>
Content-Type: TEXT/PLAIN; charset=3DUS-ASCII; format=3Dflowed


On Mon, 18 Aug 2008, Bjorn Buckwalter wrote:

> I would like to know if there is any consensus on what is the best way
> to make such a data structure accessible in pure functions. Passing it
> explicitly would be a mess. It seems that two options are to use
> either a Reader monad or implicit parameters. Using a Reader monad is
> straight forward enough though it requires writing/converting code
> in/to monadic style and adds some clutter to the formulae. It seems
> implicit parameters could be cleaner but I've seen them referred to as
> everything from evil to "just what you need" and rendering the Reader
> monad obsolete...

I expect that you will get the same range of opinions as you got from =
your=20
search. As far as I know implicit parameters break referential=20
transparency.
=20
http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearI=
mpl
icitParameters
  So I prefer Reader monad. The burden of converting to monadic style =
pays=20
off when you need to use the same code with different values for the=20
"constants". (E.g. find out for which value of the Planck constant the=20
universe collapses and for which it oscillates etc. :-)


------------------------------

Message: 19
Date: Mon, 18 Aug 2008 12:32:35 -0400
From: "Bjorn Buckwalter" <bjorn.buckwalter at gmail.com>
Subject: Re: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: "Henning Thielemann" <lemming at henning-thielemann.de>
Cc: Haskell-Cafe Haskell-Cafe <haskell-cafe at haskell.org>
Message-ID:
	<8b2a1a960808180932s6763eda9v727369a4ea1bc5fc at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

On Mon, Aug 18, 2008 at 11:16 AM, Henning Thielemann
<lemming at henning-thielemann.de> wrote:
>
> On Mon, 18 Aug 2008, Bjorn Buckwalter wrote:
>
>> I would like to know if there is any consensus on what is the best =
way
>> to make such a data structure accessible in pure functions. Passing =
it
>> explicitly would be a mess. It seems that two options are to use
>> either a Reader monad or implicit parameters. Using a Reader monad is
>> straight forward enough though it requires writing/converting code
>> in/to monadic style and adds some clutter to the formulae. It seems
>> implicit parameters could be cleaner but I've seen them referred to =
as
>> everything from evil to "just what you need" and rendering the Reader
>> monad obsolete...
>
> I expect that you will get the same range of opinions as you got from =
your
> search. As far as I know implicit parameters break referential
transparency.
>
http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearI=
mpl
icitParameters
>  So I prefer Reader monad. The burden of converting to monadic style =
pays
> off when you need to use the same code with different values for the
> "constants". (E.g. find out for which value of the Planck constant the
> universe collapses and for which it oscillates etc. :-)

Love the example but could you elaborate a little on how monadic style
helps with this? (This is probably a matter of it not being obvious to
me what approach you would take to solving the problem.)

By the way, can anyone comment on implicit parameters interacting with
monadic code? If I were to use implicit parameters and later realize
that I need other monadic functionality, e.g. Writer, would I be in a
tough spot or would the implicit parameters continue to work
"seemlesly" in the monadic code?

Thanks,
Bjorn Buckwalter


------------------------------

Message: 20
Date: Mon, 18 Aug 2008 12:49:43 -0400
From: "Brandon S. Allbery KF8NH" <allbery at ece.cmu.edu>
Subject: Re: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: Bjorn Buckwalter <bjorn.buckwalter at gmail.com>
Cc: Haskell-Cafe Haskell-Cafe <haskell-cafe at haskell.org>
Message-ID: <6FE8DA6B-4FFE-470D-A56B-B73125601BC0 at ece.cmu.edu>
Content-Type: text/plain; charset=3DUS-ASCII; format=3Dflowed; =
delsp=3Dyes

On 2008 Aug 18, at 10:59, Bjorn Buckwalter wrote:
> I would like to know if there is any consensus on what is the best way
> to make such a data structure accessible in pure functions. Passing it
> explicitly would be a mess. It seems that two options are to use
> either a Reader monad or implicit parameters. Using a Reader monad is
> straight forward enough though it requires writing/converting code
> in/to monadic style and adds some clutter to the formulae. It seems
> implicit parameters could be cleaner but I've seen them referred to as
> everything from evil to "just what you need" and rendering the Reader
> monad obsolete...
>
> What do you people recommend?


Last time I ran into this, I needed a Reader for other reasons so just =20
reused it.

--=20
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH




------------------------------

Message: 21
Date: Mon, 18 Aug 2008 12:50:40 -0400
From: "Brandon S. Allbery KF8NH" <allbery at ece.cmu.edu>
Subject: Re: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: Henning Thielemann <lemming at henning-thielemann.de>
Cc: Bjorn Buckwalter <bjorn.buckwalter at gmail.com>,	Haskell-Cafe
	Haskell-Cafe <haskell-cafe at haskell.org>
Message-ID: <DD84AED3-E532-4779-BD6A-4814A4FE2241 at ece.cmu.edu>
Content-Type: text/plain; charset=3DUS-ASCII; format=3Dflowed; =
delsp=3Dyes

On 2008 Aug 18, at 11:16, Henning Thielemann wrote:
> know implicit parameters break referential transparency.
>
http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearI=
mpl
icitParameters

Are you making the same mistake I did?  Linear implicit parameters are =20
different from implicit parameters.

--=20
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH




------------------------------

Message: 22
Date: Mon, 18 Aug 2008 19:55:45 +0200 (MEST)
From: Henning Thielemann <lemming at henning-thielemann.de>
Subject: Re: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: "Brandon S. Allbery KF8NH" <allbery at ece.cmu.edu>
Cc: Bjorn Buckwalter <bjorn.buckwalter at gmail.com>,	Haskell-Cafe
	Haskell-Cafe <haskell-cafe at haskell.org>
Message-ID:
	<Pine.SOC.4.64.0808181954510.24985 at haydn.informatik.uni-halle.de>
Content-Type: TEXT/PLAIN; charset=3DUS-ASCII; format=3Dflowed


On Mon, 18 Aug 2008, Brandon S. Allbery KF8NH wrote:

> On 2008 Aug 18, at 11:16, Henning Thielemann wrote:
>> know implicit parameters break referential transparency.
>>
http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearI=
mpl
icitParameters
>
> Are you making the same mistake I did?  Linear implicit parameters are =

> different from implicit parameters.

I haven't look into the details, so I certainly make any possible =
mistake.


------------------------------

Message: 23
Date: Mon, 18 Aug 2008 20:02:30 +0200 (MEST)
From: Henning Thielemann <lemming at henning-thielemann.de>
Subject: Re: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: Bjorn Buckwalter <bjorn.buckwalter at gmail.com>
Cc: Haskell-Cafe <haskell-cafe at haskell.org>
Message-ID:
	<Pine.SOC.4.64.0808181956380.24985 at haydn.informatik.uni-halle.de>
Content-Type: TEXT/PLAIN; charset=3DUS-ASCII; format=3Dflowed


On Mon, 18 Aug 2008, Bjorn Buckwalter wrote:

> On Mon, Aug 18, 2008 at 11:16 AM, Henning Thielemann
> <lemming at henning-thielemann.de> wrote:
>>
>> On Mon, 18 Aug 2008, Bjorn Buckwalter wrote:
>>
>>> I would like to know if there is any consensus on what is the best =
way
>>> to make such a data structure accessible in pure functions. Passing =
it
>>> explicitly would be a mess. It seems that two options are to use
>>> either a Reader monad or implicit parameters. Using a Reader monad =
is
>>> straight forward enough though it requires writing/converting code
>>> in/to monadic style and adds some clutter to the formulae. It seems
>>> implicit parameters could be cleaner but I've seen them referred to =
as
>>> everything from evil to "just what you need" and rendering the =
Reader
>>> monad obsolete...
>>
>> I expect that you will get the same range of opinions as you got from
your
>> search. As far as I know implicit parameters break referential
transparency.
>>
http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearI=
mpl
icitParameters
>>  So I prefer Reader monad. The burden of converting to monadic style =
pays
>> off when you need to use the same code with different values for the
>> "constants". (E.g. find out for which value of the Planck constant =
the
>> universe collapses and for which it oscillates etc. :-)
>
> Love the example but could you elaborate a little on how monadic style
> helps with this? (This is probably a matter of it not being obvious to
> me what approach you would take to solving the problem.)

Instead of
   muEarth :: GravitationalParameter a
   muEarth =3D ???

   escapeVelocity :: a
   escapeVelocity =3D ... muEarth ...

you would write

   data AstroData a =3D AstroData
     { muEarth     :: GravitationalParameter a
     , leapSeconds :: LeapSecondTable
     }

   escapeVelocity :: Reader (AstroData a) a
   escapeVelocity =3D
      do mu <- asks muEarth
         return (... mu ...)

Even better you would introduce a newtype for Reader (AstroData a). This =

way you can add any monadic functionality later (Writer et.al.).


------------------------------

Message: 24
Date: Mon, 18 Aug 2008 15:37:53 -0400
From: "Bjorn Buckwalter" <bjorn.buckwalter at gmail.com>
Subject: Fwd: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: "Haskell-Cafe Haskell-Cafe" <haskell-cafe at haskell.org>,	"Henning
	Thielemann" <lemming at henning-thielemann.de>
Message-ID:
	<8b2a1a960808181237w559574f4oa52f84fe89f2b5b2 at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

On Mon, Aug 18, 2008 at 2:02 PM, Henning Thielemann
<lemming at henning-thielemann.de> wrote:
>
> On Mon, 18 Aug 2008, Bjorn Buckwalter wrote:
>
>> On Mon, Aug 18, 2008 at 11:16 AM, Henning Thielemann
>> <lemming at henning-thielemann.de> wrote:
>>>
>>> On Mon, 18 Aug 2008, Bjorn Buckwalter wrote:
>>>
>>>> I would like to know if there is any consensus on what is the best =
way
>>>> to make such a data structure accessible in pure functions. Passing =
it
>>>> explicitly would be a mess. It seems that two options are to use
>>>> either a Reader monad or implicit parameters. Using a Reader monad =
is
>>>> straight forward enough though it requires writing/converting code
>>>> in/to monadic style and adds some clutter to the formulae. It seems
>>>> implicit parameters could be cleaner but I've seen them referred to =
as
>>>> everything from evil to "just what you need" and rendering the =
Reader
>>>> monad obsolete...
>>>
>>> I expect that you will get the same range of opinions as you got =
from
>>> your
>>> search. As far as I know implicit parameters break referential
>>> transparency.
>>>
>>>
http://www.haskell.org/haskellwiki/The_Monad.Reader/Issue2/FunWithLinearI=
mpl
icitParameters
>>>  So I prefer Reader monad. The burden of converting to monadic style
pays
>>> off when you need to use the same code with different values for the
>>> "constants". (E.g. find out for which value of the Planck constant =
the
>>> universe collapses and for which it oscillates etc. :-)
>>
>> Love the example but could you elaborate a little on how monadic =
style
>> helps with this? (This is probably a matter of it not being obvious =
to
>> me what approach you would take to solving the problem.)
>
> Instead of
>  muEarth :: GravitationalParameter a
>  muEarth =3D ???
>
>  escapeVelocity :: a
>  escapeVelocity =3D ... muEarth ...
>
> you would write
>
>  data AstroData a =3D AstroData
>    { muEarth     :: GravitationalParameter a
>    , leapSeconds :: LeapSecondTable
>    }
>
>  escapeVelocity :: Reader (AstroData a) a
>  escapeVelocity =3D
>     do mu <- asks muEarth
>        return (... mu ...)
>
> Even better you would introduce a newtype for Reader (AstroData a). =
This
way
> you can add any monadic functionality later (Writer et.al.).

Right, and I'd evaluate it using e.g.:

 runReader escapeVelocity myAstroData

But with implicit params I suppose I'd define (untested) e.g.:

 escapeVelocity :: (?astro :: AstroData a) =3D> a
 escapeVelocity =3D ... mu ... where mu =3D muEarth ?astro

To evaluate this I'd use:

 let ?astro =3D myAstroData in escapeVelocity

Which is comparable to the Reader version (with the
advantage/disadvantage of the body of 'escapeVelocity' not being
monadic).

In retrospect I think I misunderstood what you were saying in you
first email. I thought you were arguing that the monadic style would
have an advantage over implicit params in the Planck problem. But you
probably only meant to reemphasize the advantage (of either solution)
over hard-coding constants...

Thanks again, your Reader example is virtually identical to what I
started off with so at least I know I'm not completely off target for
a monadic implementation.

(Sorry about the reposts Henning, I keep forgetting to cc the cafi!)


------------------------------

Message: 25
Date: Mon, 18 Aug 2008 21:47:18 +0200
From: Henning Thielemann <schlepptop at henning-thielemann.de>
Subject: Re: Fwd: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: Bjorn Buckwalter <bjorn.buckwalter at gmail.com>
Cc: Haskell Cafe <haskell-cafe at haskell.org>
Message-ID: <48A9D1C6.90902 at henning-thielemann.de>
Content-Type: text/plain; charset=3DISO-8859-1; format=3Dflowed

Bjorn Buckwalter schrieb:
> On Mon, Aug 18, 2008 at 2:02 PM, Henning Thielemann
>> <lemming at henning-thielemann.de> wrote:
 >>
>> Instead of
>>  muEarth :: GravitationalParameter a
>>  muEarth =3D ???
>>
>>  escapeVelocity :: a
>>  escapeVelocity =3D ... muEarth ...
>>
>> you would write
>>
>>  data AstroData a =3D AstroData
>>    { muEarth     :: GravitationalParameter a
>>    , leapSeconds :: LeapSecondTable
>>    }
>>
>>  escapeVelocity :: Reader (AstroData a) a
>>  escapeVelocity =3D
>>     do mu <- asks muEarth
>>        return (... mu ...)
>>
>> Even better you would introduce a newtype for Reader (AstroData a). =
This
way
>> you can add any monadic functionality later (Writer et.al.).
>=20
> Right, and I'd evaluate it using e.g.:
>=20
>  runReader escapeVelocity myAstroData
>=20
> But with implicit params I suppose I'd define (untested) e.g.:
>=20
>  escapeVelocity :: (?astro :: AstroData a) =3D> a
>  escapeVelocity =3D ... mu ... where mu =3D muEarth ?astro
>=20
> To evaluate this I'd use:
>=20
>  let ?astro =3D myAstroData in escapeVelocity
>=20
> Which is comparable to the Reader version (with the
> advantage/disadvantage of the body of 'escapeVelocity' not being
> monadic).

In my opinion the implicit parameters don't make things simpler, only=20
less portable, that's why I prefer the Reader monad.

 > In retrospect I think I misunderstood what you were saying in you
 > first email. I thought you were arguing that the monadic style would
 > have an advantage over implicit params in the Planck problem. But you
 > probably only meant to reemphasize the advantage (of either solution)
 > over hard-coding constants...

indeed



------------------------------

Message: 26
Date: Mon, 18 Aug 2008 16:08:26 -0400
From: "David Roundy" <daveroundy at gmail.com>
Subject: Re: [Haskell-cafe] X Haskell Bindings
To: "Antoine Latter" <aslatter at gmail.com>
Cc: haskell <haskell-cafe at haskell.org>
Message-ID:
	<117f2cc80808181308s220b5660n74fc707e96fb9ff0 at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

On 8/16/08, Antoine Latter <aslatter at gmail.com> wrote:
>  The following is a summary of my plan so far.  I'm interested in
>  hearing any suggestions or concerns about what a Haskell library for
>  writing X clients should look like.  This is not a release
>  announcement, and I can't make any promises about when this will be
>  delivered.
>
>  Code is available in darcs:
>  --  darcs get http://community.haskell.org/~aslatter/code/xhb
>
>  Some of the  advantages XCB claims over xlib are:
>   + smaller API
>   + latency hiding when communicating with the X server
>   + direct access to the X protocol
>   + improved threading support
>   + easier to extend
>
>  What I plan for the X Haskell Bindings (XHB) are as follows:

It seems to me that you could make this a bit more haskelly...

>   + All requests to the server are non-blocking (under most =
circumstances)
>
>   + Requests which produce a reply from the server return a "token" or
"receipt"

Why not abstract this token or receipt into a function?

i.e. why not change...

>  > -- | List all of the extensions supported by the server
>  > listExtensions :: Connection -> IO (Receipt (ListExtensionsReply))
>
>  > -- | Query a receipt for a response
>  > getReply :: Receipt a -> IO (Either XError a)

to

listExtensions :: Connection -> IO (IO ListExtensionsReply)

and then you don't need to use a getReply, or a Receipt data type.
This should be equally general, if (as I imagine) the only thing you
can do with a Receipt is to getReply it.  And to me it seems like a
friendly way of describing what this function does.

>  Each X extension defines its own set of errors and events
>  (potentially).  Should all of these be lumped together into one giant
>  sum-type for errors and one for events?

Or maybe just a couple of existential types together with dynamic?
(i.e. like xmonad's SomeMessage)

David


------------------------------

Message: 27
Date: Mon, 18 Aug 2008 13:20:45 -0700
From: "Evan Laforge" <qdunkan at gmail.com>
Subject: Re: Fwd: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: "Henning Thielemann" <schlepptop at henning-thielemann.de>
Cc: Bjorn Buckwalter <bjorn.buckwalter at gmail.com>,	Haskell Cafe
	<haskell-cafe at haskell.org>
Message-ID:
	<2518b95d0808181320h2ff28d80g109ff256553b4ca2 at mail.gmail.com>
Content-Type: text/plain; charset=3DISO-8859-1

>> Which is comparable to the Reader version (with the
>> advantage/disadvantage of the body of 'escapeVelocity' not being
>> monadic).
>
> In my opinion the implicit parameters don't make things simpler, only =
less
> portable, that's why I prefer the Reader monad.

They also seem to be removed from ghc:

http://www.haskell.org/pipermail/cvs-ghc/2006-September/031824.html

So it would probably be a mistake to write new code using them.

As an aside, if that's really the complete patch I'm impressed how few
lines were involved.  136 lines out of TcSimplify.lhs and misc tiny
changes in other files.


------------------------------

Message: 28
Date: Mon, 18 Aug 2008 16:24:07 -0400
From: "Brandon S. Allbery KF8NH" <allbery at ece.cmu.edu>
Subject: Re: [Haskell-cafe] Reader monad, implicit parameters,	or
	something else altogether?
To: "Evan Laforge" <qdunkan at gmail.com>
Cc: Henning Thielemann <schlepptop at henning-thielemann.de>,	Bjorn
	Buckwalter <bjorn.buckwalter at gmail.com>,	Haskell Cafe
	<haskell-cafe at haskell.org>
Message-ID: <4D655E13-F901-4FAB-8C78-CE56F7EF428B at ece.cmu.edu>
Content-Type: text/plain; charset=3DUS-ASCII; format=3Dflowed; =
delsp=3Dyes

On 2008 Aug 18, at 16:20, Evan Laforge wrote:
>>> Which is comparable to the Reader version (with the
>>> advantage/disadvantage of the body of 'escapeVelocity' not being
>>> monadic).
>>
>> In my opinion the implicit parameters don't make things simpler, =20
>> only less
>> portable, that's why I prefer the Reader monad.
>
> They also seem to be removed from ghc:
>
> http://www.haskell.org/pipermail/cvs-ghc/2006-September/031824.html


Again, that's *linear* implicit parameters (%foo instead of ?foo).

--=20
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH




------------------------------

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe at haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


End of Haskell-Cafe Digest, Vol 60, Issue 20
********************************************





More information about the Haskell-Cafe mailing list