[darcs-users] Rebase [was: My current work on darcs]

Ben Franksen ben.franksen at online.de
Wed Sep 27 18:48:37 UTC 2017


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



More information about the darcs-users mailing list