<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.lang.haskell.cafe">
    <title>gmane.comp.lang.haskell.cafe</title>
    <link>http://blog.gmane.org/gmane.comp.lang.haskell.cafe</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105812"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105809"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105807"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105806"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105805"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105804"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105803"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105802"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105801"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105800"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105799"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105798"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105797"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105796"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105795"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105794"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105792"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105791"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105790"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105789"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105812">
    <title>TH clause Pat selection</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105812</link>
    <description>&lt;pre&gt;I want to use TH to generate functions like
foo :: c -&amp;gt; h
foo ... = ...
foo ... = ...
...
from lists of pairs :: [(c, h)]

For example, $(genFoo ''Int ''Bool [(0,False), (1,True)])
would generate
foo 0 = False
foo 1 = True

The problem is, I don't know how to generate the function's clauses.
"foo 0 = ..." seems to be a LitP pattern. But "foo True = ..." seems to
be a ConP pattern. The appropriate pattern depends on type c.

Here's code with more explanation and examples:
http://hpaste.org/90163
&lt;/pre&gt;</description>
    <dc:creator>Brian Lewis</dc:creator>
    <dc:date>2013-06-19T22:23:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105809">
    <title>Re: GADTs and pattern matching</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105809</link>
    <description>&lt;pre&gt;Good point.  I stand corrected.

-Brent

On Wed, Jun 19, 2013 at 11:42:23AM -0300, Felipe Almeida Lessa wrote:

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Brent Yorgey</dc:creator>
    <dc:date>2013-06-19T18:36:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105807">
    <title>Re: GADTs and pattern matching</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105807</link>
    <description>&lt;pre&gt;Brent, maybe I'm misunderstanding what you're saying, but I don't
think that the order of the arguments is playing any role here besides
defining the order in which the pattern matches are desugared.

To illustrate,

  -- This does work
  foo1' :: a -&amp;gt; Foo a -&amp;gt; Int
  foo1' m Foo = case m of
                  Nothing -&amp;gt; undefined
                  Just _  -&amp;gt; undefined

Despite having the same type as foo1, foo1' does work because now I've
pattern matched on the GADT first.  As soon as I do that, its equality
constraint of (a ~ Maybe v) enters into scope of the case branches.

Cheers,

On Wed, Jun 19, 2013 at 7:59 AM, Brent Yorgey &amp;lt;byorgey&amp;lt; at &amp;gt;seas.upenn.edu&amp;gt; wrote:



&lt;/pre&gt;</description>
    <dc:creator>Felipe Almeida Lessa</dc:creator>
    <dc:date>2013-06-19T14:42:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105806">
    <title>Re: ANN: Nomyx 0.2 beta, the game where you can change the rules</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105806</link>
    <description>&lt;pre&gt;Thanks Tobias, I'm looking forward to see you in the game!
I'll try to fix the text/plain part of the mails. I had quite some problems
with the haskell command *simpleMail* some time ago.

Best,
Corentin

On Wed, Jun 19, 2013 at 3:48 PM, Tobias Dammers &amp;lt;tdammers&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Corentin Dupont</dc:creator>
    <dc:date>2013-06-19T14:03:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105805">
    <title>Re: ANN: Nomyx 0.2 beta, the game where you can change the rules</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105805</link>
    <description>&lt;pre&gt;
Joined a game, though I don't really have time to look into it right
now. 

One thing though: It appears that the game sends multipart/alternative
e-mail messages, where the text/plain part is completely empty (0
bytes). Since I've configured my mail client to prefer text/plain over
text/html, this is kind of inconvenient.

Otherwise, good job. I'm curious where this is going.
&lt;/pre&gt;</description>
    <dc:creator>Tobias Dammers</dc:creator>
    <dc:date>2013-06-19T13:48:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105804">
    <title>Re: hand over maintenance of a package</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105804</link>
    <description>&lt;pre&gt;As far as I know, Hackage does not enforce control of a given package at
all. You can just have the new maintainer upload a new version of the
package, changing the maintainer field of the .cabal file.
On Jun 19, 2013 7:10 AM, "Corentin Dupont" &amp;lt;corentin.dupont&amp;lt; at &amp;gt;gmail.com&amp;gt;
wrote:

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Tikhon Jelvis</dc:creator>
    <dc:date>2013-06-19T13:12:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105803">
    <title>hand over maintenance of a package</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105803</link>
    <description>&lt;pre&gt;Hi Cafe,
How to hand over the maintenance of a hackage package?
Thanks
Corentin
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Corentin Dupont</dc:creator>
    <dc:date>2013-06-19T13:08:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105802">
    <title>Re: ANN: Nomyx 0.2 beta, the game where you can change the rules</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105802</link>
    <description>&lt;pre&gt;Thanks Brent! I'm glad you like it.
You will win a lot of money if new players come :)
Indeed Brent proposed a rule that allows sponsorship: if you invite a
player in, you win 50 ECU...

The game is still in beta-phase, so expect bugs...
There is some learning material in the links in my mail under (see the
forum).

Best,
Corentin**


On Wed, Jun 19, 2013 at 1:01 PM, Brent Yorgey &amp;lt;byorgey&amp;lt; at &amp;gt;seas.upenn.edu&amp;gt;wrote:

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Corentin Dupont</dc:creator>
    <dc:date>2013-06-19T11:18:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105801">
    <title>Re: GADTs and pattern matching</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105801</link>
    <description>&lt;pre&gt;At Wed, 19 Jun 2013 06:59:00 -0400,
Brent Yorgey wrote:

Hi Brent,

Thanks for your answer.

I was reminded by shachaf on Haskell a few moments ago about the details
of pattern matching in GHC
&amp;lt;http://www.haskell.org/pipermail/glasgow-haskell-users/2013-June/023994.html&amp;gt;.

However, I’d argue that the issue doesn’t have much to do with the fact
that Haskell has only ‘1 argument functions’, at least at the type
level.  It’s more about how Haskell treats pattern matching.

In Agda/Epigram/Idris pattern matching works the other way around: they
allow it only in top-level definitions, and every other kind of match
get desugared to a new top level definition.  Thus you can reason about
the constraints on all the arguments in a better way.  Lately I’ve grown
used to that kind of pattern matching :).

In Haskell however where you expect _|_ and diverging matches, so it
probably makes more sense to have matching like is is now, otherwise
you’d have to force arguments to get equalities concerning earlier
arguments and things would probably get really messy.

Francesco

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Francesco Mazzoli</dc:creator>
    <dc:date>2013-06-19T11:08:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105800">
    <title>Re: ANN: Nomyx 0.2 beta, the game where you can change the rules</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105800</link>
    <description>&lt;pre&gt;This is great fun, more people should come and join us! =)

  http://www.nomyx.net:8000/Nomyx

we are playing game "demo3".

-Brent

On Fri, Jun 14, 2013 at 05:57:57PM +0200, Corentin Dupont wrote:

&lt;/pre&gt;</description>
    <dc:creator>Brent Yorgey</dc:creator>
    <dc:date>2013-06-19T11:01:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105799">
    <title>Re: GADTs and pattern matching</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105799</link>
    <description>&lt;pre&gt;
Yes, I was going to suggest switching the argument order before
reading your message.  This is an interesting way in which you can
observe that Haskell does not really have "multi-argument functions".
All multi-argument functions are really one-argument functions which
return functions.  So a function of type

  foo1 :: a -&amp;gt; (Foo a -&amp;gt; Int)

must take something of type a (for *any* choice of a, which the caller
gets to choose) and return a function of type (Foo a -&amp;gt; Int).  *Which*
function is returned (e.g. one that tries to pattern match on the Foo)
makes no difference to whether foo1 typechecks.

On the other hand, a function of type

  foo2 :: Foo a -&amp;gt; (a -&amp;gt; Int)

receives something of type Foo a as an argument.  It may pattern-match
on the Foo a, thus bringing into scope the fact that (a ~ Maybe v).
Now when constructing the output function of type (a -&amp;gt; Int) it may
make use of this fact.

-Brent

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Brent Yorgey</dc:creator>
    <dc:date>2013-06-19T10:59:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105798">
    <title>Re: GADTs and pattern matching</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105798</link>
    <description>&lt;pre&gt;At Wed, 19 Jun 2013 10:03:27 +0000 (UTC),
AntC wrote:

Did you read the rest of the code?  That ought to work, because GHC
infers and uses the type equality (something like ‘v ~ Var v1’) and uses
it to coerce the ‘x’.

And, surprise surprise, if the argument order is switched, it works!

    data Foo v where
        Foo :: forall v. Foo (Maybe v)
    
    foo1 :: Foo a -&amp;gt; a -&amp;gt; Int
    foo1 Foo Nothing  = undefined
    foo1 Foo (Just x) = undefined

Francesco

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Francesco Mazzoli</dc:creator>
    <dc:date>2013-06-19T10:11:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105797">
    <title>Re: GADTs and pattern matching</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105797</link>
    <description>&lt;pre&gt;

Hi Francesco, I think you'll find that the 'annoyance' is nothing to do 
with GADTs. I suggest you take the type signature off of foo1, and see 
what type ghc infers for it. It isn't :: a -&amp;gt; Foo a -&amp;gt; Int.

  ...
 
 ...

Yep, that message explains what's going on well enough for me.
&lt;/pre&gt;</description>
    <dc:creator>AntC</dc:creator>
    <dc:date>2013-06-19T10:03:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105796">
    <title>GADTs and pattern matching</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105796</link>
    <description>&lt;pre&gt;Hi list,

I have stumbled upon a strange annoyance:

    {-# LANGUAGE GADTs #-}

    data Foo v where
        Foo :: Foo (Maybe v)
    
    -- This doesn't work
    foo1 :: a -&amp;gt; Foo a -&amp;gt; Int
    foo1 Nothing  Foo = undefined
    foo1 (Just x) Foo = undefined
    
    -- This does
    foo2 :: a -&amp;gt; Foo a -&amp;gt; Int
    foo2 x Foo = foo2' x
    
    foo2' :: Maybe a -&amp;gt; Int
    foo2' Nothing  = undefined
    foo2' (Just x) = undefined

The first definition fails with the error

    Couldn't match expected type `a' with actual type `Maybe t0'
      `a' is a rigid type variable bound by
          the type signature for foo1 :: a -&amp;gt; Foo a -&amp;gt; Int
          at /tmp/foo_flymake.hs:8:9
    In the pattern: Nothing
    In an equation for `foo1': foo1 Nothing Foo = undefined

Now, GHC can clearly derive and use the type equalities correctly, given
that the second definition works, but why can’t I pattern match
directly?

Thanks,
Francesco

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Francesco Mazzoli</dc:creator>
    <dc:date>2013-06-19T09:47:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105795">
    <title>ML 2013: last call for presentations</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105795</link>
    <description>&lt;pre&gt;There are still a few days left to write a short talk proposal 
for the ML workshop 2013! Since there are no official proceedings, 
this is an ideal venue if you are working on a  full submission 
for some other conference but want to talk about the  work early 
on and get useful community feedback.

Hope to see you there,
&lt;/pre&gt;</description>
    <dc:creator>Daan Leijen</dc:creator>
    <dc:date>2013-06-19T06:08:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105794">
    <title>Re: Promoting Haskell via Youtube movies</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105794</link>
    <description>&lt;pre&gt;
Not strictly on Haskell, but this on turned up on the Brisbane 
Functional Programmer Group's mailing list today:

http://functionaltalks.org/

Cheers,

&lt;/pre&gt;</description>
    <dc:creator>Carlo Hamalainen</dc:creator>
    <dc:date>2013-06-19T00:03:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105792">
    <title>Re: Strange cabal failure</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105792</link>
    <description>&lt;pre&gt;

The large blob at the end is an ABI hash which is computed when you install
a package. So it would appear that you had transformers-0.3.0.0 installed
and then removed it, but it's still indexed for some reason.

&lt;/pre&gt;</description>
    <dc:creator>Brandon Allbery</dc:creator>
    <dc:date>2013-06-18T18:52:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105791">
    <title>Strange cabal failure</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105791</link>
    <description>&lt;pre&gt;In trying to install the lens package, it eventually tries to install 
transformers-compat-0.1.1.1 which in turn depends on 
transformers-0.3.0.0 -- however that asksk for
transformers-0.3.0.0-3006d6ea13a2c10770bffd4de7a96dc9
which 1) is weird, and 2) doesn't exist!'

What gives?

Jacques
&lt;/pre&gt;</description>
    <dc:creator>Jacques Carette</dc:creator>
    <dc:date>2013-06-18T17:57:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105790">
    <title>Re: Promoting Haskell via Youtube movies</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105790</link>
    <description>&lt;pre&gt;On Mon, 17 Jun 2013 20:23:31 +0200, Mihai Maruseac  
&amp;lt;mihai.maruseac&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


See:
   Ranjit Jhala performs Lambda Style!
   https://www.youtube.com/watch?v=Ci48kqp11F8
:)


Regards,
Henk-Jan van Tuyl


&lt;/pre&gt;</description>
    <dc:creator>Henk-Jan van Tuyl</dc:creator>
    <dc:date>2013-06-18T17:15:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105789">
    <title>Re: Promoting Haskell via Youtube movies</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105789</link>
    <description>&lt;pre&gt;I think something like Erlang: The Movie is more Haskell's style:

http://www.youtube.com/watch?v=uKfKtXYLG78
&lt;/pre&gt;</description>
    <dc:creator>Walter Askew</dc:creator>
    <dc:date>2013-06-18T15:54:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105788">
    <title>Re: [haskell.org Google Summer of Code] The Summer of Code is officially under way.</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/105788</link>
    <description>&lt;pre&gt;
+1 - best of luck, students !

Ollie
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
&lt;/pre&gt;</description>
    <dc:creator>Oliver Charles</dc:creator>
    <dc:date>2013-06-18T14:39:41</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.haskell.cafe">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.haskell.cafe</link>
  </textinput>
</rdf:RDF>
