[darcs-users] My current work on darcs...
Benjamin Franksen
ben.franksen at online.de
Wed Sep 27 15:27:30 UTC 2017
Please disregard, I hit the send button prematurely.
On 09/27/2017 05:24 PM, Benjamin Franksen wrote:
> On 09/14/2017 10:28 AM, Ben Franksen wrote:
>> Like I said last time, whether we operate on the tentative or the "real"
>> recorded state should not be visible outside the Repository layer. Thus,
>> we should not distinguish between them in the witnesses for the
>> Repository type. Instead, we should add a witness for the pending state.
>> (The repo type parameter should be kept as long as we mix rebase and
>> normal patches.) This gives us
>>
>> Repository rt p wR wP wU
>>
>> which should be understood to mean that when we read the complete repo
>> we get
>>
>> (recorded :> pending :> working)
>> :: PatchSet rt p Origin wR :> Pending p wR wP :> Working p wP wU
>
> I have been playing on and off with this idea. One problem I encountered
> regularly is that when we have a function that returns a patch or a
> patch list in such a way that we know that the starting and ending
> states do not change, then it should be possible to avoid sealing:
>
> do_some_internal_commutation :: (FL p) wX wY -> (FL p) wX wY
>
> But that fails to compile for the trivial case:
>
> do_some_internal_commutation NilFL = NilFL
>
> with an error could not deduce wX ~ wY
>
More information about the darcs-users
mailing list