<?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://permalink.gmane.org/gmane.comp.lang.haskell.prime">
    <title>gmane.comp.lang.haskell.prime</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime</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.prime/3707"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3706"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3705"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3704"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3703"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3702"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3701"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3700"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3699"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3698"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3697"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3696"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3695"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3694"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3693"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3692"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3691"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3690"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3689"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3688"/>
      </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.prime/3707">
    <title>RE: TypeFamilies vs. FunctionalDependencies &amp; type-level recursion</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3707</link>
    <description>&lt;pre&gt;See also http://hackage.haskell.org/trac/ghc/wiki/NewAxioms
(as yet unimplemented)

Simon

| -----Original Message-----
| From: haskell-prime-bounces-HC+Z4NTRIlBAfugRpC6u6w&amp;lt; at &amp;gt;public.gmane.org [mailto:haskell-prime-
| bounces-HC+Z4NTRIlBAfugRpC6u6w&amp;lt; at &amp;gt;public.gmane.org] On Behalf Of AntC
| Sent: 24 May 2012 14:00
| To: haskell-prime-HC+Z4NTRIlBAfugRpC6u6w&amp;lt; at &amp;gt;public.gmane.org
| Subject: Re: TypeFamilies vs. FunctionalDependencies &amp;amp; type-level
| recursion
| 
|  &amp;lt;oleg&amp;lt; at &amp;gt;...&amp;gt; writes:
| 
| &amp;gt;
| &amp;gt;
| &amp;gt; I don't think Overlapping Instances will be in Haskell' any time soon
| &amp;gt; since there are doubts about the soundness. Overlapping instances are
| &amp;gt; clearly unsound with type functions. Whether they are sound with
| &amp;gt; functional dependencies is not clear, but there are warning
| &amp;gt; signs:
| &amp;gt;
| &amp;gt; http://www.haskell.org/pipermail/haskell-cafe/2010-July/080043.html
| &amp;gt;
| I have now worked through that post in detail, thank you. And replied
| (on the cafe http://www.haskell.org/pipermail/haskell-cafe/2012-
| May/101417.html )
| 
| As&lt;/pre&gt;</description>
    <dc:creator>Simon Peyton-Jones</dc:creator>
    <dc:date>2012-05-24T14:24:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3706">
    <title>Re: TypeFamilies vs. FunctionalDependencies &amp; type-level recursion</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3706</link>
    <description>&lt;pre&gt;
I have now worked through that post in detail, thank you. And replied (on the 
cafe http://www.haskell.org/pipermail/haskell-cafe/2012-May/101417.html )

As SPJ says there, I don't expect there's any real difference in the fundeps 
approach compared to type families. And as a matter of taste, I find type 
families more easy to understand and reason about, and more *functional*.

But I don't see in SPJ's post any real doubts about soundness, just 
restrictions that would have to be imposed. He concludes "I believe that 
if ..., then overlap of type families would be fine."

The only onerous restriction is that overlapping instances would have to be in 
a single module. And I don't think that is needed under my proposal to dis-
overlap overlaps.

As a matter of interest, how would the TTypeable approach address those 
examples? Particularly the existentials (examples 3 and 4). How would it look 
inside the GADTs to discharge the constraints (or apply the type functions)?

I notice example 4 (and 1) 'exploits'&lt;/pre&gt;</description>
    <dc:creator>AntC</dc:creator>
    <dc:date>2012-05-24T13:00:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3705">
    <title>Re: TypeFamilies vs. FunctionalDependencies &amp; type-level recursion</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3705</link>
    <description>&lt;pre&gt;

Thanks Oleg. I'm familiar with that style from HList, but it still seems 
cumbersome to me (compared to separate equations). I suppose a type-level if-
then-else would be possible? Does this read any better?

    type instance F x = IF (EQ (TYPEOF x) INT) Bool [x]

I note there by the way, that INT ~ (TYPEOF Int), is that upshifting the name 
going to work well for all Prelude types?
    How about (TYPEOF ()) or (TYPEOF [a])?
The EQ seems somehow redundant. We can only test type (reps) for equality, or 
do you envisage inducing some ordering over typereps?

How scalable is your approach with multi-argument type functions? Such as:

    module Mine where
      type family F a b

      data Mine = ...
      type instance F Mine Int = ...
      type instance F Mine y   = ...          -- overlap on 2nd arg

    module Yours where
      import Mine

      data Yours = ...
      type instance F Yours Bool = ...         -- no overlap with F Mine b
      type instance F Yours y   = ...          -- overlap on 2nd a&lt;/pre&gt;</description>
    <dc:creator>AntC</dc:creator>
    <dc:date>2012-05-24T00:37:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3704">
    <title>Re: TypeFamilies vs. FunctionalDependencies &amp; type-level recursion</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3704</link>
    <description>&lt;pre&gt;
for things they'd like GHC to do?  

The two things are, I think, trying to achieve the same objective. Namely, 
supporting type-level inference driven from a type-level equality predicate.

Of those two things (details continued below), I understand Oleg does have a 
concrete proposal for the first (and a prototype). My proposal earlier in the 
thread was along the lines of your second particular thing. But I delayed 
replying immediately:
- Oleg suggested I refer back to several similar threads in July 2010
        (thank you, that was indeed a valuable discussion)
- GHC has now delivered robust type inference with type equality constraints,
- and superclass constraints.
- And we have the beginnings of data Kinds
- And there has been 'loose talk' of closed Kinds

(To explain that last: I believe the type inference for closed Kinds will need 
a similar mechanism to overlapping instances for TypeFamilies.)

Although this thread is titled FunctionalDependencies, I'm not going to say 
anything about them exce&lt;/pre&gt;</description>
    <dc:creator>AntC</dc:creator>
    <dc:date>2012-05-23T10:55:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3703">
    <title>Re: TypeFamilies vs. FunctionalDependencies &amp; type-level recursion</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3703</link>
    <description>&lt;pre&gt;

Yikes! I'd better post the code. This assumes all the usual HList 
infrastructure, especially class/method TypeCast as defined in-line per  
http://okmij.org/ftp/Haskell/typecast.html

Works on Hugs version Sep 2006 -- yes! it's been hiding in plain view all 
these years.

{- hDeleteMany does a type-indexed scan through an HList,
        removing all elements type `e`, even if they occur many times.
        Takes the standard HList idiom of 3 instances:
        - end of HList -- contains only HNil
        - HList's head contains the element of interest (HCons e l'')
        - HList's head not interesting, pass on (HCons e' l'')
        The 'interesting' instance overlaps the 'not interesting'.
-}

    class HDeleteMany e l l'where-- no fundep
        hDeleteMany:: e -&amp;gt; l -&amp;gt; l'

    instance (TypeCast HNil l') =&amp;gt; HDeleteMany e HNil l'where
        hDeleteMany e HNil= typeCast HNil
                           -- must typeCast the result

    instance (HDeleteMany e l'' l') =&amp;gt; HDeleteMany e (HCons e l'&lt;/pre&gt;</description>
    <dc:creator>AntC</dc:creator>
    <dc:date>2012-05-22T23:47:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3702">
    <title>Re: TypeFamilies vs. FunctionalDependencies &amp; type-level recursion</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3702</link>
    <description>&lt;pre&gt;
Hi Oleg, I appreciate it's been a very long time since this thread was active. 
But I think I might have discovered that you and Ralf were premature to reject 
overlaps w.r.t. HList.

The headline news is that I have implemented hDeleteMany in Hugs.

I'm dragging up this ancient history not to argue in favour of fundeps, nor to 
bring Hugs back from its slumbers, but pro a better-implemented approach to 
overlaps (preferably available with Type Families).

To recap the context:

Also the original post said:

The point at which the HList paper "give up on persuading Hugs" was with the 
instance definitions for hDeleteMany [Section 6 'Ended up in murky water'] 
because "There is no real consensus on the overlapping instance mechanism as 
soon as functional dependencies are involved. ... Hugs reports that the 
instances are inconsistent with the functional dependency for HDeleteMany."

There has been a lot of water under the bridge since that interchange. In 
particular, GHC has got type equality constraints m&lt;/pre&gt;</description>
    <dc:creator>AntC</dc:creator>
    <dc:date>2012-05-22T10:13:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3701">
    <title>Re: Creating a list of extensions to add to Haskell'</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3701</link>
    <description>&lt;pre&gt;

I think that may be oversimplifying the issue.

For example, there are cases such as FunDeps and TypeFamilies where --
probably -- precisely one should end up in the language, but we're not sure
which -- or maybe there's some other solution yet to be found which is
better than both.

We're never going to find out which it is unless people write a lot of code
using both extensions (and that code gets onto Hackage).  However, adding
both to the standard at this stage would probably mean removing one or both
later, which causes even bigger problems.

When an extension is no longer supported,


I think there's a degree of "common knowledge" out there that some
extensions (FD's and TypeFamilies included) are here for
the foreseeable future -- i.e. they're pretty stable and certainly the
compiler isn't going to forget about them soon.  Others are maybe more
experimental or obsolete.  I agree that if that information isn't clearly
written down somewhere, it should be.

Packages, using rejected extensions, should &lt;/pre&gt;</description>
    <dc:creator>Freddie Manners</dc:creator>
    <dc:date>2012-04-19T23:10:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3700">
    <title>Creating a list of extensions to add to Haskell'</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3700</link>
    <description>&lt;pre&gt;
L.S.,

Many libraries on Hackage use language extensions, or depend on other
libraries that use extensions. When an extension is no longer supported,
or another Haskell compiler must be used,
this may lead to a lot of maintenance work.

To prevent an extreme amount of maintenance, I try to avoid using language
extensions, but many libraries on Hackage use them.

My proposal is:
Make an inventory, of the most used language extensions (based
on the number of Hackage downloads of packages depending directly or
indirectly on them).  If the most used extensions are theoretically sound
and improve software developed with them, they should be included in the
next Haskell standard.

Packages, using rejected extensions, should be redesigned or shunned
(marked as such in Hackage).

Regards,
Henk-Jan van Tuyl



&lt;/pre&gt;</description>
    <dc:creator>Henk-Jan van Tuyl</dc:creator>
    <dc:date>2012-04-19T21:50:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3699">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3699</link>
    <description>&lt;pre&gt;I am starting up the proposal.

http://hackage.haskell.org/trac/haskell-prime/ticket/143
http://hackage.haskell.org/trac/haskell-prime/wiki/OpaqueText

Unfortunately I haven't had any time to work on this for the last week
and won't for 2 more weeks.
Your help is appreciated. I think the first step is to move list
functions into a separate module for the Text package to see if we can
get rid of name conflicts with the Prelude.

On Sat, Mar 31, 2012 at 11:49 PM, Colin Paul Adams
&amp;lt;colin-vnRo6g/zHhuHCRyBVyKX4rVCufUGDwFn&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:
&lt;/pre&gt;</description>
    <dc:creator>Greg Weber</dc:creator>
    <dc:date>2012-04-01T15:22:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3698">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3698</link>
    <description>&lt;pre&gt;
    Gabriel&amp;gt; On Mon, Mar 26, 2012 at 5:08 AM, Christian Siefkes

    Gabriel&amp;gt; It is not the precision of Char or char that is the issue
    Gabriel&amp;gt; here.  It has been clarified at several points that Char is
    Gabriel&amp;gt; not a Unicode character, but a Unicode code point. 

That's not what the standard says:

6.1.2 Characters and Strings

The character type Char is an enumeration whose values represent Unicode
characters [2]. 

[2]   Unicode Consortium. Unicode
standard. http://unicode.org/standard/standard.html. 

&lt;/pre&gt;</description>
    <dc:creator>Colin Paul Adams</dc:creator>
    <dc:date>2012-04-01T06:49:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3697">
    <title>Faça parte da minha rede no LinkedIn</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3697</link>
    <description>&lt;pre&gt;LinkedIn
------------



Eu gostaria de adicioná-lo à minha rede profissional no LinkedIn.
-Carlos Camarao

Carlos Camarao Figueiredo
Professor na UFMG
Belo Horizonte e Região, Brasil

Confirme que você conhece Carlos Camarao Figueiredo:
https://www.linkedin.com/e/g4afbk-h0e41yt6-n/isd/6485083729/t-WWDysg/?hs=false&amp;amp;tok=1Rt6jCLOCW0Bc1

--
Você está recebendo convites de conexão por e-mail. Clique aqui para parar de recebê-los:
http://www.linkedin.com/e/g4afbk-h0e41yt6-n/TxW8ibFUf804HWGRSSBmLzVTlbMbbXm3PVJ5g9-/goo/haskell-prime%40haskell%2Eorg/20061/I2249830483_1/?hs=false&amp;amp;tok=1uXcs9Xx6W0Bc1

(c) 2012 LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043 - EUA.

_______________________________________________
Haskell-prime mailing list
Haskell-prime-HC+Z4NTRIlBAfugRpC6u6w&amp;lt; at &amp;gt;public.gmane.org
http://www.haskell.org/mailman/listinfo/haskell-prime
&lt;/pre&gt;</description>
    <dc:creator>Carlos Camarao Figueiredo</dc:creator>
    <dc:date>2012-03-29T18:02:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3696">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3696</link>
    <description>&lt;pre&gt;
For the record, I have a more fundamental objection to
OverloadedStrings. When library authors write partial functions
for the fromString method - and we see in practice that
they do so - it creates the shocking situation in which
invalid syntax of a literal is only caught at run time.

Instead, Haskell' should provide a pragma, or other
syntactic mechanism, by which compilers can allow
specific types other than String for string literals at
*compile* time in a monomorphic context. The
implementation of that syntax would be compiler
dependent, of course. For GHC, Template Haskell
could help. Another approach would be for a
compiler to have a built-in way of embedding, say,
Text literals directly in object code.

For people who like OverloadedStrings despite this
problem, it could be available via a pragma. But
never by default - it should be possible to get
fundamental string types like Text and ByteString
for string literals without having to turn on
OverloadedStrings. In GHC, quasi-quoters are the
right w&lt;/pre&gt;</description>
    <dc:creator>Yitzchak Gale</dc:creator>
    <dc:date>2012-03-27T19:27:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3695">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3695</link>
    <description>&lt;pre&gt;
Definitely, I have ones that would need some :: sprinkled in.


Also me :)  I'd like that 'default' keyword back too, it's too useful
for variables names to waste on something so obscure.

That said, I like OverloadedStrings.
&lt;/pre&gt;</description>
    <dc:creator>Evan Laforge</dc:creator>
    <dc:date>2012-03-27T01:40:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3694">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3694</link>
    <description>&lt;pre&gt;

Agreed. Haskell-prime has in the past gone out of its way not to
standardize anything that hasn't actually been implemented somewhere.



I would agree that OverloadedStrings definitely needs to work with
defaulting better! I've been bitted by this in my own code.

In the past I have longed for a trivial class

class Defaulting a

which merely served to meet the conditions for extended default from

http://www.haskell.org/ghc/docs/6.6/html/users_guide/ch03s04.html#extended-default-rules
*
*



by adding Defaulting to the list of extra classes the language permits.

In the special case of ghc where we have polymorphic kinds now, the
Defaulting class could allow for defaulting  rules to then be applied
trivially for higher kinds, and when you have new classes you really want
defaulting to apply, like in this case IsString, you could just add
Defaulting as a superclass constraint.

A passing thought: nearly anything can be made an instance of


I don't like the idea of adding a toString to IsString. One of th&lt;/pre&gt;</description>
    <dc:creator>Edward Kmett</dc:creator>
    <dc:date>2012-03-26T22:19:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3693">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3693</link>
    <description>&lt;pre&gt;
Does this mean we've firmly established that there currently is *no*
completely satisfactory method of dealing with Unicode in existence
today? In that case, even if it /will be/ a good idea one day, can't
we agree that it's not the right time to deprecate String = [Char]?
The language has a good history, I understand, of not standardising
that which is not implemented and in common use, so if we'd like to
change Text before introducing it to the language, I say let's do that
separately.

No-one's yet argued against OverloadedStrings. I think there /is/ an
argument to be made, that it introduces ambiguity and could break
existing programs (probably we can extend defaulting to take care of
this, but I think there are people who'd be happier if we killed
defaulting too). Too much polymorphism /can/ be a bad thing. But I
think there's a serious chance we can make that happen, and make Text
a bit more pleasant to work with.

A passing thought: nearly anything can be made an instance of
IsString, via something r&lt;/pre&gt;</description>
    <dc:creator>Ben Millwood</dc:creator>
    <dc:date>2012-03-26T21:56:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3692">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3692</link>
    <description>&lt;pre&gt;On Mon, Mar 26, 2012 at 1:12 PM, Christian Siefkes
&amp;lt;christian&amp;lt; at &amp;gt;siefkes.net&amp;gt; wrote:

Unicode contains a set of precomposed characters, like ö, that can be
normalized to a single code point, but this is not true of every
combination of characters.

Prelude&amp;gt; "ā́"
"a\772\769"

As far as I know, there is no representation of ā́ which uses a single
code point.

&lt;/pre&gt;</description>
    <dc:creator>David Menendez</dc:creator>
    <dc:date>2012-03-26T20:24:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3691">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3691</link>
    <description>&lt;pre&gt;On Mon, Mar 26, 2012 at 11:42 AM, Christian Siefkes
&amp;lt;christian-0a8dUXqrJ1fR7s880joybQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:


The correctness problems isn't that a list is used to represent a sequence.
The problem is that that representational detail (and I agree with you
it is an implementation of sequence) is made part of the API on strings.

&lt;/pre&gt;</description>
    <dc:creator>Gabriel Dos Reis</dc:creator>
    <dc:date>2012-03-26T17:36:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3690">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3690</link>
    <description>&lt;pre&gt;Can the unicode experts here propose a Text API whose functions work
for all Unicode (start by removing list functions)? If there is such a
satisfactory API and it does not conflict with the Prelude we could
use it unqualified.

On Mon, Mar 26, 2012 at 10:21 AM, Johan Tibell &amp;lt;johan.tibell-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:
&lt;/pre&gt;</description>
    <dc:creator>Greg Weber</dc:creator>
    <dc:date>2012-03-26T17:26:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3689">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3689</link>
    <description>&lt;pre&gt;

I think we established earlier that the list-like operations on Text are a
backward compatibility wart.  Either they should go away, or they should be
modified to operate on some other level than codepoints.  Probably the way
the ecosystem should work is that [Char] (or possibly a packed version
thereof, sort of like lazy ByteStrings with Word32 instead of Word8 as the
fundamental unit) is the codepoint view and Text is the grapheme view; both
are necessary at various times, but the grapheme view is the more natural
one for text /per se/.

&lt;/pre&gt;</description>
    <dc:creator>Brandon Allbery</dc:creator>
    <dc:date>2012-03-26T17:23:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3688">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3688</link>
    <description>&lt;pre&gt;
We already covered this. Text inherited a list-based API, even if that
sometimes doesn't make sense.

To work with Unicode you need more specific functions for different
tasks. Text only implements a few so far, like case conversion and
case-less comparison, and asks you to use text-icu for the rest.

&lt;/pre&gt;</description>
    <dc:creator>Johan Tibell</dc:creator>
    <dc:date>2012-03-26T17:21:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3687">
    <title>Re: String != [Char]</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.haskell.prime/3687</link>
    <description>&lt;pre&gt;

I think we established earlier that the list-like operations on Text are a
backward compatibility wart.  Either they should go away, or they should be
modified to operate on some other level than codepoints.  Probably the way
the ecosystem should work is that [Char] (or possibly a packed version
thereof, sort of like lazy ByteStrings with Word32 instead of Word8 as the
fundamental unit) is the codepoint view and Text is the grapheme view; both
are necessary at various times, but the grapheme view is the more natural
one for text /per se/.

&lt;/pre&gt;</description>
    <dc:creator>Brandon Allbery</dc:creator>
    <dc:date>2012-03-26T17:21:26</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.haskell.prime">
    <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.prime</link>
  </textinput>
</rdf:RDF>

