@startmindmap
# Step 0: The REPL
## Main loop
### REP function
#### READ function
#### EVAL function
#### PRINT function
@endmindmap@startmindmap
# Step 1: Read and Print
## Reader
### Attributes
#### Tokens
#### Position
### Methods
#### NEXT
#### PEEK
### Functions
#### READ_STR
#### TOKENIZE
#### READ_FORM
#### READ_LIST
#### READ_ATOM
## Printer
### PR_STR function
## Data Types
### Integer
### Symbol
### Boolean
### String
### Nil
### Vector
### Hashmap
### Keyword
## Parentheses matching
## Comment support
@endmindmap@startmindmap
# Step 2: Eval
## REPL environment
### SUM function
### DIFFERENCE function
### MULTIPLICATION function
### DIVISION function
## EVAL debug function
## EVAL over Vectors
## EVAL over Hashmaps
@endmindmap@startmindmap
# Step 3: Environments
## Attributes
### outer
### data
## Methods
### set
### get
## Special Symbols
### def!
### let*
@endmindmap