unison/unison-src/transcripts/fix987.md

38 lines
645 B
Markdown
Raw Permalink Normal View History

2019-12-08 23:23:39 +03:00
```ucm:hide
scratch/main> builtins.merge
```
2019-12-08 23:23:39 +03:00
First we'll add a definition:
```unison
2021-08-24 21:33:27 +03:00
structural ability DeathStar where
2019-12-08 23:23:39 +03:00
attack : Text -> ()
spaceAttack1 x =
y = attack "saturn"
z = attack "neptune"
"All done"
```
Add it to the codebase:
```ucm
scratch/main> add
2019-12-08 23:23:39 +03:00
```
Now we'll try to add a different definition that runs the actions in a different order. This should work fine:
```unison
spaceAttack2 x =
z = attack "neptune"
y = attack "saturn"
"All done"
```
```ucm
scratch/main> add
2019-12-08 23:23:39 +03:00
```
Previously, this would fail because the hashing algorithm was being given one big let rec block whose binding order was normalized.