Skip to content

Commit eb0fee5

Browse files
committed
start documenting repository structure
1 parent ca14d99 commit eb0fee5

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,20 @@ Like any Rust project:
1111
* Clone
1212
* `cargo test --all`
1313

14-
<!-- TODO -->
15-
<!-- ## Structure of the repository -->
14+
## Layers of formality
15+
16+
Formality is structured into several layers. These layers are meant to also map
17+
fairly closely onto chalk and the eventual Rust trait solver implementation.
18+
Ideally, one should be able to map back and forth between formality and the code
19+
with ease.
20+
21+
* **formality-check**: *todo*
22+
* **formality-core**: *todo*
23+
* **formality-macros**: *todo*
24+
* **formality-prove**: *todo*
25+
* **formality-rust:** This is the "Rust declarations" layer, defining Rust
26+
"top-level items" and their semantics. This includes crates, structs, traits,
27+
impls, but excludes function bodies.
28+
* **formality-types:** This is the "types" layer, defining Rust types and
29+
functions for equating/relating them. The representation is meant to cover
30+
all Rust types, but is optimized for extracting their "essential properties".

0 commit comments

Comments
 (0)