A simpler ORF
Roman Cheplyaka
roma at ro-che.info
Thu Jan 29 08:19:07 UTC 2015
> It's not possible in your proposal. One could even argue that it was a
> bad idea in the first place, as it may lead to partiality.
On a second thought, isn't your update partial as well?
In
C { e | f1 = e1, f2 = e2 }
what happens if e's constructor is not in fact C?
This makes me somewhat uncomfortable.
Roman
On 29/01/15 10:14, Roman Cheplyaka wrote:
> 1. I *love* the idea of not generating selector functions. It's worth
> implementing it as a separate extension regardless of this proposal's fate.
>
> 2. In H98, it is possible to do constructor-agnostic updates:
>
> data T = A { n :: Int } | B { n :: Int }
> f :: T -> T
> f x = x { n = 2 }
>
> It's not possible in your proposal. One could even argue that it was a
> bad idea in the first place, as it may lead to partiality.
>
> 3. Now that fields are not tied to selectors, do we need a separate
> mechanism/set of rules for exporting fields?
>
> Roman
>
> On 29/01/15 07:15, Iavor Diatchki wrote:
>> Hello,
>>
>> I've been following the various discussions about changes to Haskell's
>> record system, and I find that most of the current proposals are fairly
>> complex, especially for the benefit they provide.
>>
>> I use Haskell records a lot, and I've been wondering if there might be a
>> simpler alternative, one that:
>> 1. will allow us to reuse field names across records
>> 2. does not require any fancy types
>> 3. it will not preclude continued research on "the right" way to get
>> more type-based record resolution.
>>
>> Based on designs I've seen in the past, my experience with Haskell
>> records, and discussions with colleagues, I put together a document
>> describing a potential design that, I think, satisfies goals 1 to 3:
>>
>> https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/Simple
>>
>> I think the proposal should be fairly simple to implement, and I'd be
>> willing to do it, if there is enough support from the community.
>>
>> Let me know what you think!
>>
>> -Iavor
>>
>>
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://www.haskell.org/mailman/listinfo/ghc-devs
>>
>
More information about the ghc-devs
mailing list