Re: Rebase [was: My current work on darcs]

Ben Franksen <[email protected]>
Newsgroups gmane.comp.version-control.darcs.user
Message-ID <[email protected]>
Am 27.09.2017 um 20:41 schrieb Ben Franksen:
> Am 27.09.2017 um 17:02 schrieb Benjamin Franksen:
>> On 09/08/2017 01:58 PM, Ben Franksen wrote:
>>> There is also some fairly elaborated type machinery at work to
>>> distinguish repos with and without a rebase in progress.
>>
>> And this, by the way, further complicates things: we'd now have two
>> patch lists wich may not be compatible, since the 'rt' type parameter
>> does not match. And what if we also have a rebase locally? It is a
>> different rebase, of course, and we must avoid to mix both rebase
>> patches, else things go seriously wrong. Unfortunately, the type
>> machinery, elaborate as it is, cannot tell the difference between the
>> two, so it does not help us to avoid such a mistake.
> 
> Apropos. I have been wondering: it should be possible to use
> Data.Coerce.coerce instead of #unsafeCoerce when we type cast
> wintnesses, since these are purely phantom i.e. they don't occur in the
> implementation. However, it turns out this doesn't work as smoothly as I
> thought.

Sigh, again hit send when I meant to hit save (as draft). I wanted to
elaborate that the first problem one encounters is patch lists (FL, RL).
Their implementation is parametric in the patch type, and the type
checker can't know that all the types we want to pass it have this
property i.e. that the witness parameters are phantom. There is probably
a solution to that, perhaps by declaring their role. Stay tuned...

Cheers
Ben
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.