.libv1> builtins.merge
test1: Nat -> Nat
test1 n = n + n
.libv1> add test1
Preparing v2, changing the signature of test1:
.> fork libv1 libv2
test1: Nat -> Nat -> Nat
test1 n m = n + n + m
.libv2> update
Using v1:
.myapp> builtins.merge
.myapp> fork .libv1 libv1
work: 'Nat
work _ = test1 10
> !work
.myapp> add work
Updating to v2:
.myapp> builtins.merge
.myapp> fork .libv2 libv2
.myapp> view.patch libv2.patch
.myapp> patch libv2.patch
.myapp> display work
.myapp> todo
Here is the output of the transcript with a bit of additional prose:
Preparing v2, changing the signature of test1:
Using v1:
Updating to v2:
We see that there is a
libv1.test1 -> libv2.test1
item in the patch, so we expect it to either automatically patch (which isn't really possible with the type signature change) or to result in atodo
item. But thetodo
list is empty andwork
hasn't been updated to referencelibv2.test1
.