mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-11 10:35:57 +03:00
This is for consistency with the `cmark` style. Now the blocks we still pretty-print ourselves will match the bulk of them that `cmark` produces.
90 lines
1.4 KiB
Markdown
90 lines
1.4 KiB
Markdown
``` ucm
|
|
scratch/main> builtins.merge
|
|
|
|
Done.
|
|
|
|
```
|
|
First, lets create two namespaces. `foo` and `bar`, and add some definitions.
|
|
|
|
``` unison
|
|
foo.x = 42
|
|
foo.y = 100
|
|
bar.z = x + y
|
|
```
|
|
|
|
``` ucm
|
|
|
|
Loading changes detected in scratch.u.
|
|
|
|
I found and typechecked these definitions in scratch.u. If you
|
|
do an `add` or `update`, here's how your codebase would
|
|
change:
|
|
|
|
⍟ These new definitions are ok to `add`:
|
|
|
|
bar.z : Nat
|
|
foo.x : Nat
|
|
foo.y : Nat
|
|
|
|
```
|
|
``` ucm
|
|
scratch/main> add
|
|
|
|
⍟ I've added these definitions:
|
|
|
|
bar.z : Nat
|
|
foo.x : Nat
|
|
foo.y : Nat
|
|
|
|
```
|
|
Let's see what we have created...
|
|
|
|
``` ucm
|
|
scratch/main> ls
|
|
|
|
1. bar/ (1 term)
|
|
2. builtin/ (469 terms, 74 types)
|
|
3. foo/ (2 terms)
|
|
|
|
```
|
|
Now, if we try deleting the namespace `foo`, we get an error, as expected.
|
|
|
|
``` ucm
|
|
scratch/main> delete.namespace foo
|
|
|
|
⚠️
|
|
|
|
I didn't delete the namespace because the following
|
|
definitions are still in use.
|
|
|
|
Dependency Referenced In
|
|
x 1. bar.z
|
|
|
|
y 2. bar.z
|
|
|
|
If you want to proceed anyways and leave those definitions
|
|
without names, use delete.namespace.force
|
|
|
|
```
|
|
Any numbered arguments should refer to `bar.z`.
|
|
|
|
``` ucm
|
|
scratch/main> debug.numberedArgs
|
|
|
|
1. bar.z
|
|
2. bar.z
|
|
|
|
```
|
|
We can then delete the dependent term, and then delete `foo`.
|
|
|
|
``` ucm
|
|
scratch/main> delete.term 1
|
|
|
|
Done.
|
|
|
|
scratch/main> delete.namespace foo
|
|
|
|
Done.
|
|
|
|
```
|