diff --git a/README.md b/README.md
index bba21d34..6fd3d9f5 100644
--- a/README.md
+++ b/README.md
@@ -4,15 +4,152 @@
Sage advice for your coding conundrums!
-
-
+
+
-[***Here's a link to the online compiler with a builtin virtual machine interpreter!***](https://adam-mcdaniel.net/sage)
+[***Here's a link to the online compiler playground!***](https://adam-mcdaniel.net/sage)
## What is Sage?
+Sage is a programming language that tries to be maximally portable, expressive, and intuitive. It borrows some aspects of Rust, C, and Python. It currently has an x86 compiler backend, a C source backend, and an interpreter backend [which can run on the web](https://adam-mcdaniel.net/sage).
+
+
+
+
+
+
+
+
+
+## Why Sage?
+
+Sage is very portable -- run it on your thermostat! Here's the complete list of core virtual machine instructions, and their C equivalents:
+
+| Instruction | C Equivalent |
+| ----------- | --------------- |
+| `while` | `while (reg) {` |
+| `if` | `if (reg) {` |
+| `else` | `} else {` |
+| `end` | `}` |
+| `set N` | `reg = N;` |
+| `call` | `funs[reg]();` |
+| `ret` | `return;` |
+| `save` | `*tape_ptr = reg;` |
+| `res` | `reg = *tape_ptr;` |
+| `move N` | `tape_ptr += N;` |
+| `where` | `reg = tape_ptr;` |
+| `deref` | `push(tape_ptr); tape_ptr = *tape_ptr;` |
+| `refer` | `tape_ptr = pop();` |
+| `index` | `reg = (cell*)(reg) + *tape_ptr;` |
+| `add` | `reg += *tape_ptr;` |
+| `sub` | `reg -= *tape_ptr;` |
+| `mul` | `reg *= *tape_ptr;` |
+| `div` | `reg /= *tape_ptr;` |
+| `rem` | `reg %= *tape_ptr;` |
+| `gez` | `reg = reg >= 0;` |
+
+The compiler can target this limited instruction "core" set, with an expanded "standard" instruction set for floating point operations and foreign functions. The core instruction set is designed to be as simple as possible for anyone to implement their own backend. [Try to see if you can implement it yourself for your backend of choice!](https://github.com/adam-mcdaniel/sage/blob/main/src/targets/c.rs)
+
+## How useful is Sage?
+
+Sage is a very young project, and is not ready for production. It's still possible to write very useful programs in it, though.
+
+[SageOS is an operating system with a userspace written in Sage.](https://github.com/adam-mcdaniel/sage-os). The graphical shell and powerpoint presentation app (both written in Sage) use the FFI to draw to the screen, receive input from the mouse and keyboard, and interact with the filesystem. [You can look at the shell code here.](https://github.com/adam-mcdaniel/sage/tree/main/examples/sage-os/shell.sg)
+
+![Shell1](assets/shell1.png)
+![Shell2](assets/shell2.png)
+
+The presentation app parses PPM image files from the filesystem and renders them to the screen. [You can look at the presentation code here](https://github.com/adam-mcdaniel/sage/tree/main/examples/sage-os/presentation.sg)
+
+![Presentation](assets/presentation.png)
+
+Go to the [web-demo](https://adam-mcdaniel.net/sage) or the [examples/frontend](https://github.com/adam-mcdaniel/sage/tree/main/examples/) folder to see more code examples.
+
+## How do I use Sage?
+
+To start using sage, install it with cargo:
+
+```sh
+$ cargo install --git https://github.com/adam-mcdaniel/sage
+```
+
+Then, you can run a sage file with the `sage` command:
+
+```sh
+$ sage examples/frontend/interactive-calculator.sg
+```
+
+You can also compile a sage file to C with the `--target` flag:
+
+```sh
+$ sage examples/frontend/interactive-calculator.sg --target c
+$ # Or `-t c` for short
+$ sage examples/frontend/interactive-calculator.sg -tc
+$ gcc out.c -o out
+$ ./out
+```
+
+## Feature Roadmap
+
+- [x] Compiler Backends
+ - [x] x86 (semi-implemented and unoptimized)
+ - [ ] RISC-V
+ - [ ] ARM
+ - [ ] LLVM (highly desired!)
+ - [x] C (fully-implemented but unoptimized)
+ - [x] Interpreter (fully-implemented but unoptimized)
+ - [x] Web Backend
+ - [x] Interpreter
+ - [ ] Visual demo like the [web-demo](https://adam-mcdaniel.net/harbor) for [Harbor](https://github.com/adam-mcdaniel/harbor)
+- [x] Static variables and constant expressions
+- [x] Conditional compilation
+- [x] Polymorphic functions
+- [x] Mutability checks
+- [x] Rust-like `enum`s
+- [x] Pattern `match`ing
+- [x] Structural typing
+- [x] Recursive polymorphic types
+- [ ] Iterators and list/vector/array comprehensions
+- [ ] Hindley-Milner type inference
+- [ ] Typeclasses
+- [ ] Modules
+- [ ] A standard library
+ - [ ] Collections
+ - [ ] Networking
+ - [ ] Filesystem
+ - [ ] Graphics
+ - [ ] Audio
+ - [ ] GUI
+ - [ ] WebAssembly
+ - [ ] Foreign Function Interface
+ - [ ] Memory Management
+- [ ] A package manager
+- [ ] AST Macros
+
+## How do I contribute?
+
+If you want to contribute, you can open an issue or a pull request. [Adding backends for other architectures is a great way to contribute!](https://github.com/adam-mcdaniel/sage/blob/main/src/targets/c.rs)
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/code1.png b/assets/code1.png
new file mode 100644
index 00000000..10737461
Binary files /dev/null and b/assets/code1.png differ
diff --git a/assets/code2.png b/assets/code2.png
new file mode 100644
index 00000000..fecf45ae
Binary files /dev/null and b/assets/code2.png differ
diff --git a/assets/code3.png b/assets/code3.png
new file mode 100644
index 00000000..cb2d08d1
Binary files /dev/null and b/assets/code3.png differ
diff --git a/assets/presentation.png b/assets/presentation.png
new file mode 100644
index 00000000..8cf727e5
Binary files /dev/null and b/assets/presentation.png differ
diff --git a/assets/sage.png b/assets/sage.png
new file mode 100644
index 00000000..8a4f42af
Binary files /dev/null and b/assets/sage.png differ
diff --git a/assets/shell1.png b/assets/shell1.png
new file mode 100644
index 00000000..21b96fac
Binary files /dev/null and b/assets/shell1.png differ
diff --git a/assets/shell2.png b/assets/shell2.png
new file mode 100644
index 00000000..482cf9cf
Binary files /dev/null and b/assets/shell2.png differ
diff --git a/docs/implementors/core/default/trait.Default.js b/docs/implementors/core/default/trait.Default.js
index 77d1edd7..8dc939dd 100644
--- a/docs/implementors/core/default/trait.Default.js
+++ b/docs/implementors/core/default/trait.Default.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"sage":[["impl Default for C"],["impl Default for TestingDevice"],["impl Default for CoreInterpreter<StandardDevice>"],["impl Default for Env"],["impl Default for Mutability"],["impl Default for CoreProgram"],["impl Default for CoreProgram"],["impl Default for X86"],["impl Default for MyOS"],["impl Default for StandardInterpreter<StandardDevice>"],["impl Default for StandardProgram"],["impl Default for StandardProgram"],["impl Default for Globals"],["impl Default for StandardDevice"]]
+"sage":[["impl Default for C"],["impl Default for TestingDevice"],["impl Default for CoreInterpreter<StandardDevice>"],["impl Default for Env"],["impl Default for Mutability"],["impl Default for SageOS"],["impl Default for CoreProgram"],["impl Default for CoreProgram"],["impl Default for X86"],["impl Default for StandardInterpreter<StandardDevice>"],["impl Default for StandardProgram"],["impl Default for StandardProgram"],["impl Default for Globals"],["impl Default for StandardDevice"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/implementors/core/marker/trait.Freeze.js b/docs/implementors/core/marker/trait.Freeze.js
index 36c36e3a..c80f420e 100644
--- a/docs/implementors/core/marker/trait.Freeze.js
+++ b/docs/implementors/core/marker/trait.Freeze.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"sage":[["impl Freeze for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Freeze for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Freeze for Globals",1,["sage::asm::globals::Globals"]],["impl Freeze for Location",1,["sage::asm::location::Location"]],["impl Freeze for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Freeze for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Freeze for Error",1,["sage::asm::Error"]],["impl Freeze for Annotation",1,["sage::lir::annotate::Annotation"]],["impl Freeze for Env",1,["sage::lir::env::Env"]],["impl Freeze for Error",1,["sage::lir::error::Error"]],["impl Freeze for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl Freeze for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl Freeze for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Freeze for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Freeze for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Freeze for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl Freeze for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Freeze for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Freeze for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Freeze for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Freeze for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Freeze for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Freeze for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Freeze for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Freeze for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Freeze for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Freeze for And",1,["sage::lir::expr::ops::logic::And"]],["impl Freeze for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Freeze for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Freeze for New",1,["sage::lir::expr::ops::memory::New"]],["impl Freeze for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Freeze for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Freeze for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl Freeze for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Freeze for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Freeze for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Freeze for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl Freeze for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl Freeze for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Freeze for Mutability",1,["sage::lir::types::Mutability"]],["impl Freeze for Type",1,["sage::lir::types::Type"]],["impl Freeze for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Freeze for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Freeze for Axis",1,["sage::side_effects::io::Axis"]],["impl Freeze for Direction",1,["sage::side_effects::io::Direction"]],["impl Freeze for Color",1,["sage::side_effects::io::Color"]],["impl Freeze for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Freeze for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Freeze for Channel",1,["sage::side_effects::io::Channel"]],["impl Freeze for Input",1,["sage::side_effects::io::Input"]],["impl Freeze for Output",1,["sage::side_effects::io::Output"]],["impl Freeze for C",1,["sage::targets::c::C"]],["impl Freeze for MyOS",1,["sage::targets::my_os::MyOS"]],["impl Freeze for X86",1,["sage::targets::x86::X86"]],["impl Freeze for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Freeze for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Freeze for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Freeze for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Freeze for CoreInterpreter<T>where\n T: Freeze,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Freeze for StandardInterpreter<T>where\n T: Freeze,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Freeze for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Freeze for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Freeze for Error",1,["sage::vm::Error"]]]
+"sage":[["impl Freeze for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Freeze for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Freeze for Globals",1,["sage::asm::globals::Globals"]],["impl Freeze for Location",1,["sage::asm::location::Location"]],["impl Freeze for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Freeze for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Freeze for Error",1,["sage::asm::Error"]],["impl Freeze for Annotation",1,["sage::lir::annotate::Annotation"]],["impl Freeze for Env",1,["sage::lir::env::Env"]],["impl Freeze for Error",1,["sage::lir::error::Error"]],["impl Freeze for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl Freeze for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl Freeze for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Freeze for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Freeze for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Freeze for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl Freeze for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Freeze for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Freeze for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Freeze for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Freeze for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Freeze for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Freeze for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Freeze for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Freeze for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Freeze for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Freeze for And",1,["sage::lir::expr::ops::logic::And"]],["impl Freeze for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Freeze for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Freeze for New",1,["sage::lir::expr::ops::memory::New"]],["impl Freeze for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Freeze for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Freeze for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl Freeze for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Freeze for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Freeze for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Freeze for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl Freeze for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl Freeze for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Freeze for Mutability",1,["sage::lir::types::Mutability"]],["impl Freeze for Type",1,["sage::lir::types::Type"]],["impl Freeze for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Freeze for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Freeze for Axis",1,["sage::side_effects::io::Axis"]],["impl Freeze for Direction",1,["sage::side_effects::io::Direction"]],["impl Freeze for Color",1,["sage::side_effects::io::Color"]],["impl Freeze for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Freeze for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Freeze for Channel",1,["sage::side_effects::io::Channel"]],["impl Freeze for Input",1,["sage::side_effects::io::Input"]],["impl Freeze for Output",1,["sage::side_effects::io::Output"]],["impl Freeze for C",1,["sage::targets::c::C"]],["impl Freeze for SageOS",1,["sage::targets::sage_os::SageOS"]],["impl Freeze for X86",1,["sage::targets::x86::X86"]],["impl Freeze for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Freeze for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Freeze for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Freeze for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Freeze for CoreInterpreter<T>where\n T: Freeze,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Freeze for StandardInterpreter<T>where\n T: Freeze,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Freeze for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Freeze for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Freeze for Error",1,["sage::vm::Error"]]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/implementors/core/marker/trait.Send.js b/docs/implementors/core/marker/trait.Send.js
index 744b2e65..8fbb2d3b 100644
--- a/docs/implementors/core/marker/trait.Send.js
+++ b/docs/implementors/core/marker/trait.Send.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"sage":[["impl Send for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Send for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Send for Globals",1,["sage::asm::globals::Globals"]],["impl Send for Location",1,["sage::asm::location::Location"]],["impl Send for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Send for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Send for Error",1,["sage::asm::Error"]],["impl Send for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !Send for Env",1,["sage::lir::env::Env"]],["impl !Send for Error",1,["sage::lir::error::Error"]],["impl !Send for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !Send for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !Send for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Send for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Send for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Send for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !Send for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Send for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Send for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Send for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Send for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Send for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Send for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Send for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Send for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Send for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Send for And",1,["sage::lir::expr::ops::logic::And"]],["impl Send for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Send for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Send for New",1,["sage::lir::expr::ops::memory::New"]],["impl Send for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Send for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Send for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !Send for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Send for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Send for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Send for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !Send for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !Send for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Send for Mutability",1,["sage::lir::types::Mutability"]],["impl Send for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Send for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Send for Axis",1,["sage::side_effects::io::Axis"]],["impl Send for Direction",1,["sage::side_effects::io::Direction"]],["impl Send for Color",1,["sage::side_effects::io::Color"]],["impl Send for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Send for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Send for Channel",1,["sage::side_effects::io::Channel"]],["impl Send for Input",1,["sage::side_effects::io::Input"]],["impl Send for Output",1,["sage::side_effects::io::Output"]],["impl Send for C",1,["sage::targets::c::C"]],["impl Send for MyOS",1,["sage::targets::my_os::MyOS"]],["impl Send for X86",1,["sage::targets::x86::X86"]],["impl Send for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Send for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Send for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Send for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Send for CoreInterpreter<T>where\n T: Send,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Send for StandardInterpreter<T>where\n T: Send,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Send for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Send for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Send for Error",1,["sage::vm::Error"]],["impl Send for Type"]]
+"sage":[["impl Send for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Send for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Send for Globals",1,["sage::asm::globals::Globals"]],["impl Send for Location",1,["sage::asm::location::Location"]],["impl Send for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Send for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Send for Error",1,["sage::asm::Error"]],["impl Send for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !Send for Env",1,["sage::lir::env::Env"]],["impl !Send for Error",1,["sage::lir::error::Error"]],["impl !Send for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !Send for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !Send for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Send for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Send for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Send for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !Send for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Send for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Send for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Send for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Send for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Send for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Send for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Send for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Send for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Send for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Send for And",1,["sage::lir::expr::ops::logic::And"]],["impl Send for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Send for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Send for New",1,["sage::lir::expr::ops::memory::New"]],["impl Send for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Send for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Send for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !Send for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Send for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Send for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Send for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !Send for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !Send for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Send for Mutability",1,["sage::lir::types::Mutability"]],["impl Send for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Send for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Send for Axis",1,["sage::side_effects::io::Axis"]],["impl Send for Direction",1,["sage::side_effects::io::Direction"]],["impl Send for Color",1,["sage::side_effects::io::Color"]],["impl Send for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Send for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Send for Channel",1,["sage::side_effects::io::Channel"]],["impl Send for Input",1,["sage::side_effects::io::Input"]],["impl Send for Output",1,["sage::side_effects::io::Output"]],["impl Send for C",1,["sage::targets::c::C"]],["impl Send for SageOS",1,["sage::targets::sage_os::SageOS"]],["impl Send for X86",1,["sage::targets::x86::X86"]],["impl Send for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Send for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Send for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Send for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Send for CoreInterpreter<T>where\n T: Send,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Send for StandardInterpreter<T>where\n T: Send,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Send for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Send for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Send for Error",1,["sage::vm::Error"]],["impl Send for Type"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/implementors/core/marker/trait.Sync.js b/docs/implementors/core/marker/trait.Sync.js
index c23ff46a..94c830c8 100644
--- a/docs/implementors/core/marker/trait.Sync.js
+++ b/docs/implementors/core/marker/trait.Sync.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"sage":[["impl Sync for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Sync for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Sync for Globals",1,["sage::asm::globals::Globals"]],["impl Sync for Location",1,["sage::asm::location::Location"]],["impl Sync for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Sync for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Sync for Error",1,["sage::asm::Error"]],["impl Sync for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !Sync for Env",1,["sage::lir::env::Env"]],["impl !Sync for Error",1,["sage::lir::error::Error"]],["impl !Sync for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !Sync for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !Sync for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Sync for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Sync for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Sync for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !Sync for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Sync for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Sync for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Sync for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Sync for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Sync for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Sync for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Sync for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Sync for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Sync for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Sync for And",1,["sage::lir::expr::ops::logic::And"]],["impl Sync for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Sync for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Sync for New",1,["sage::lir::expr::ops::memory::New"]],["impl Sync for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Sync for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Sync for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !Sync for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Sync for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Sync for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Sync for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !Sync for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !Sync for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Sync for Mutability",1,["sage::lir::types::Mutability"]],["impl Sync for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Sync for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Sync for Axis",1,["sage::side_effects::io::Axis"]],["impl Sync for Direction",1,["sage::side_effects::io::Direction"]],["impl Sync for Color",1,["sage::side_effects::io::Color"]],["impl Sync for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Sync for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Sync for Channel",1,["sage::side_effects::io::Channel"]],["impl Sync for Input",1,["sage::side_effects::io::Input"]],["impl Sync for Output",1,["sage::side_effects::io::Output"]],["impl Sync for C",1,["sage::targets::c::C"]],["impl Sync for MyOS",1,["sage::targets::my_os::MyOS"]],["impl Sync for X86",1,["sage::targets::x86::X86"]],["impl Sync for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Sync for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Sync for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Sync for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Sync for CoreInterpreter<T>where\n T: Sync,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Sync for StandardInterpreter<T>where\n T: Sync,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Sync for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Sync for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Sync for Error",1,["sage::vm::Error"]],["impl Sync for Type"]]
+"sage":[["impl Sync for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Sync for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Sync for Globals",1,["sage::asm::globals::Globals"]],["impl Sync for Location",1,["sage::asm::location::Location"]],["impl Sync for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Sync for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Sync for Error",1,["sage::asm::Error"]],["impl Sync for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !Sync for Env",1,["sage::lir::env::Env"]],["impl !Sync for Error",1,["sage::lir::error::Error"]],["impl !Sync for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !Sync for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !Sync for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Sync for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Sync for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Sync for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !Sync for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Sync for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Sync for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Sync for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Sync for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Sync for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Sync for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Sync for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Sync for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Sync for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Sync for And",1,["sage::lir::expr::ops::logic::And"]],["impl Sync for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Sync for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Sync for New",1,["sage::lir::expr::ops::memory::New"]],["impl Sync for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Sync for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Sync for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !Sync for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Sync for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Sync for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Sync for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !Sync for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !Sync for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Sync for Mutability",1,["sage::lir::types::Mutability"]],["impl Sync for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Sync for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Sync for Axis",1,["sage::side_effects::io::Axis"]],["impl Sync for Direction",1,["sage::side_effects::io::Direction"]],["impl Sync for Color",1,["sage::side_effects::io::Color"]],["impl Sync for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Sync for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Sync for Channel",1,["sage::side_effects::io::Channel"]],["impl Sync for Input",1,["sage::side_effects::io::Input"]],["impl Sync for Output",1,["sage::side_effects::io::Output"]],["impl Sync for C",1,["sage::targets::c::C"]],["impl Sync for SageOS",1,["sage::targets::sage_os::SageOS"]],["impl Sync for X86",1,["sage::targets::x86::X86"]],["impl Sync for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Sync for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Sync for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Sync for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Sync for CoreInterpreter<T>where\n T: Sync,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Sync for StandardInterpreter<T>where\n T: Sync,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Sync for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Sync for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Sync for Error",1,["sage::vm::Error"]],["impl Sync for Type"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/implementors/core/marker/trait.Unpin.js b/docs/implementors/core/marker/trait.Unpin.js
index 0dba1bef..cbade463 100644
--- a/docs/implementors/core/marker/trait.Unpin.js
+++ b/docs/implementors/core/marker/trait.Unpin.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"sage":[["impl Unpin for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Unpin for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Unpin for Globals",1,["sage::asm::globals::Globals"]],["impl Unpin for Location",1,["sage::asm::location::Location"]],["impl Unpin for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Unpin for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Unpin for Error",1,["sage::asm::Error"]],["impl Unpin for Annotation",1,["sage::lir::annotate::Annotation"]],["impl Unpin for Env",1,["sage::lir::env::Env"]],["impl Unpin for Error",1,["sage::lir::error::Error"]],["impl Unpin for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl Unpin for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl Unpin for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Unpin for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Unpin for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Unpin for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl Unpin for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Unpin for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Unpin for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Unpin for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Unpin for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Unpin for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Unpin for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Unpin for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Unpin for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Unpin for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Unpin for And",1,["sage::lir::expr::ops::logic::And"]],["impl Unpin for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Unpin for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Unpin for New",1,["sage::lir::expr::ops::memory::New"]],["impl Unpin for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Unpin for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Unpin for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl Unpin for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Unpin for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Unpin for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Unpin for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl Unpin for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl Unpin for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Unpin for Mutability",1,["sage::lir::types::Mutability"]],["impl Unpin for Type",1,["sage::lir::types::Type"]],["impl Unpin for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Unpin for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Unpin for Axis",1,["sage::side_effects::io::Axis"]],["impl Unpin for Direction",1,["sage::side_effects::io::Direction"]],["impl Unpin for Color",1,["sage::side_effects::io::Color"]],["impl Unpin for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Unpin for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Unpin for Channel",1,["sage::side_effects::io::Channel"]],["impl Unpin for Input",1,["sage::side_effects::io::Input"]],["impl Unpin for Output",1,["sage::side_effects::io::Output"]],["impl Unpin for C",1,["sage::targets::c::C"]],["impl Unpin for MyOS",1,["sage::targets::my_os::MyOS"]],["impl Unpin for X86",1,["sage::targets::x86::X86"]],["impl Unpin for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Unpin for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Unpin for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Unpin for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Unpin for CoreInterpreter<T>where\n T: Unpin,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Unpin for StandardInterpreter<T>where\n T: Unpin,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Unpin for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Unpin for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Unpin for Error",1,["sage::vm::Error"]]]
+"sage":[["impl Unpin for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl Unpin for CoreOp",1,["sage::asm::core::CoreOp"]],["impl Unpin for Globals",1,["sage::asm::globals::Globals"]],["impl Unpin for Location",1,["sage::asm::location::Location"]],["impl Unpin for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl Unpin for StandardOp",1,["sage::asm::std::StandardOp"]],["impl Unpin for Error",1,["sage::asm::Error"]],["impl Unpin for Annotation",1,["sage::lir::annotate::Annotation"]],["impl Unpin for Env",1,["sage::lir::env::Env"]],["impl Unpin for Error",1,["sage::lir::error::Error"]],["impl Unpin for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl Unpin for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl Unpin for Expr",1,["sage::lir::expr::expression::Expr"]],["impl Unpin for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl Unpin for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl Unpin for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl Unpin for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl Unpin for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl Unpin for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl Unpin for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl Unpin for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl Unpin for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl Unpin for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl Unpin for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl Unpin for Get",1,["sage::lir::expr::ops::io::Get"]],["impl Unpin for Put",1,["sage::lir::expr::ops::io::Put"]],["impl Unpin for And",1,["sage::lir::expr::ops::logic::And"]],["impl Unpin for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl Unpin for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl Unpin for New",1,["sage::lir::expr::ops::memory::New"]],["impl Unpin for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl Unpin for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl Unpin for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl Unpin for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl Unpin for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl Unpin for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl Unpin for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl Unpin for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl Unpin for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl Unpin for Mutability",1,["sage::lir::types::Mutability"]],["impl Unpin for Type",1,["sage::lir::types::Type"]],["impl Unpin for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl Unpin for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl Unpin for Axis",1,["sage::side_effects::io::Axis"]],["impl Unpin for Direction",1,["sage::side_effects::io::Direction"]],["impl Unpin for Color",1,["sage::side_effects::io::Color"]],["impl Unpin for InputMode",1,["sage::side_effects::io::InputMode"]],["impl Unpin for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl Unpin for Channel",1,["sage::side_effects::io::Channel"]],["impl Unpin for Input",1,["sage::side_effects::io::Input"]],["impl Unpin for Output",1,["sage::side_effects::io::Output"]],["impl Unpin for C",1,["sage::targets::c::C"]],["impl Unpin for SageOS",1,["sage::targets::sage_os::SageOS"]],["impl Unpin for X86",1,["sage::targets::x86::X86"]],["impl Unpin for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl Unpin for CoreOp",1,["sage::vm::core::CoreOp"]],["impl Unpin for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl Unpin for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> Unpin for CoreInterpreter<T>where\n T: Unpin,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> Unpin for StandardInterpreter<T>where\n T: Unpin,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl Unpin for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl Unpin for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl Unpin for Error",1,["sage::vm::Error"]]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
index d81819dd..3117e4b3 100644
--- a/docs/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
+++ b/docs/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"sage":[["impl RefUnwindSafe for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl RefUnwindSafe for CoreOp",1,["sage::asm::core::CoreOp"]],["impl RefUnwindSafe for Globals",1,["sage::asm::globals::Globals"]],["impl RefUnwindSafe for Location",1,["sage::asm::location::Location"]],["impl RefUnwindSafe for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl RefUnwindSafe for StandardOp",1,["sage::asm::std::StandardOp"]],["impl RefUnwindSafe for Error",1,["sage::asm::Error"]],["impl RefUnwindSafe for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !RefUnwindSafe for Env",1,["sage::lir::env::Env"]],["impl !RefUnwindSafe for Error",1,["sage::lir::error::Error"]],["impl !RefUnwindSafe for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !RefUnwindSafe for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !RefUnwindSafe for Expr",1,["sage::lir::expr::expression::Expr"]],["impl RefUnwindSafe for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl RefUnwindSafe for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl RefUnwindSafe for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !RefUnwindSafe for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl RefUnwindSafe for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl RefUnwindSafe for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl RefUnwindSafe for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl RefUnwindSafe for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl RefUnwindSafe for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl RefUnwindSafe for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl RefUnwindSafe for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl RefUnwindSafe for Get",1,["sage::lir::expr::ops::io::Get"]],["impl RefUnwindSafe for Put",1,["sage::lir::expr::ops::io::Put"]],["impl RefUnwindSafe for And",1,["sage::lir::expr::ops::logic::And"]],["impl RefUnwindSafe for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl RefUnwindSafe for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl RefUnwindSafe for New",1,["sage::lir::expr::ops::memory::New"]],["impl RefUnwindSafe for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl RefUnwindSafe for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl RefUnwindSafe for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !RefUnwindSafe for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl !RefUnwindSafe for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl !RefUnwindSafe for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl !RefUnwindSafe for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !RefUnwindSafe for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !RefUnwindSafe for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl RefUnwindSafe for Mutability",1,["sage::lir::types::Mutability"]],["impl !RefUnwindSafe for Type",1,["sage::lir::types::Type"]],["impl RefUnwindSafe for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl RefUnwindSafe for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl RefUnwindSafe for Axis",1,["sage::side_effects::io::Axis"]],["impl RefUnwindSafe for Direction",1,["sage::side_effects::io::Direction"]],["impl RefUnwindSafe for Color",1,["sage::side_effects::io::Color"]],["impl RefUnwindSafe for InputMode",1,["sage::side_effects::io::InputMode"]],["impl RefUnwindSafe for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl RefUnwindSafe for Channel",1,["sage::side_effects::io::Channel"]],["impl RefUnwindSafe for Input",1,["sage::side_effects::io::Input"]],["impl RefUnwindSafe for Output",1,["sage::side_effects::io::Output"]],["impl RefUnwindSafe for C",1,["sage::targets::c::C"]],["impl RefUnwindSafe for MyOS",1,["sage::targets::my_os::MyOS"]],["impl RefUnwindSafe for X86",1,["sage::targets::x86::X86"]],["impl RefUnwindSafe for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl RefUnwindSafe for CoreOp",1,["sage::vm::core::CoreOp"]],["impl RefUnwindSafe for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl RefUnwindSafe for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> RefUnwindSafe for CoreInterpreter<T>where\n T: RefUnwindSafe,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> RefUnwindSafe for StandardInterpreter<T>where\n T: RefUnwindSafe,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl RefUnwindSafe for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl RefUnwindSafe for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl RefUnwindSafe for Error",1,["sage::vm::Error"]]]
+"sage":[["impl RefUnwindSafe for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl RefUnwindSafe for CoreOp",1,["sage::asm::core::CoreOp"]],["impl RefUnwindSafe for Globals",1,["sage::asm::globals::Globals"]],["impl RefUnwindSafe for Location",1,["sage::asm::location::Location"]],["impl RefUnwindSafe for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl RefUnwindSafe for StandardOp",1,["sage::asm::std::StandardOp"]],["impl RefUnwindSafe for Error",1,["sage::asm::Error"]],["impl RefUnwindSafe for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !RefUnwindSafe for Env",1,["sage::lir::env::Env"]],["impl !RefUnwindSafe for Error",1,["sage::lir::error::Error"]],["impl !RefUnwindSafe for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !RefUnwindSafe for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !RefUnwindSafe for Expr",1,["sage::lir::expr::expression::Expr"]],["impl RefUnwindSafe for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl RefUnwindSafe for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl RefUnwindSafe for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !RefUnwindSafe for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl RefUnwindSafe for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl RefUnwindSafe for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl RefUnwindSafe for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl RefUnwindSafe for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl RefUnwindSafe for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl RefUnwindSafe for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl RefUnwindSafe for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl RefUnwindSafe for Get",1,["sage::lir::expr::ops::io::Get"]],["impl RefUnwindSafe for Put",1,["sage::lir::expr::ops::io::Put"]],["impl RefUnwindSafe for And",1,["sage::lir::expr::ops::logic::And"]],["impl RefUnwindSafe for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl RefUnwindSafe for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl RefUnwindSafe for New",1,["sage::lir::expr::ops::memory::New"]],["impl RefUnwindSafe for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl RefUnwindSafe for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl RefUnwindSafe for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !RefUnwindSafe for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl !RefUnwindSafe for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl !RefUnwindSafe for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl !RefUnwindSafe for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !RefUnwindSafe for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !RefUnwindSafe for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl RefUnwindSafe for Mutability",1,["sage::lir::types::Mutability"]],["impl !RefUnwindSafe for Type",1,["sage::lir::types::Type"]],["impl RefUnwindSafe for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl RefUnwindSafe for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl RefUnwindSafe for Axis",1,["sage::side_effects::io::Axis"]],["impl RefUnwindSafe for Direction",1,["sage::side_effects::io::Direction"]],["impl RefUnwindSafe for Color",1,["sage::side_effects::io::Color"]],["impl RefUnwindSafe for InputMode",1,["sage::side_effects::io::InputMode"]],["impl RefUnwindSafe for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl RefUnwindSafe for Channel",1,["sage::side_effects::io::Channel"]],["impl RefUnwindSafe for Input",1,["sage::side_effects::io::Input"]],["impl RefUnwindSafe for Output",1,["sage::side_effects::io::Output"]],["impl RefUnwindSafe for C",1,["sage::targets::c::C"]],["impl RefUnwindSafe for SageOS",1,["sage::targets::sage_os::SageOS"]],["impl RefUnwindSafe for X86",1,["sage::targets::x86::X86"]],["impl RefUnwindSafe for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl RefUnwindSafe for CoreOp",1,["sage::vm::core::CoreOp"]],["impl RefUnwindSafe for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl RefUnwindSafe for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> RefUnwindSafe for CoreInterpreter<T>where\n T: RefUnwindSafe,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> RefUnwindSafe for StandardInterpreter<T>where\n T: RefUnwindSafe,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl RefUnwindSafe for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl RefUnwindSafe for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl RefUnwindSafe for Error",1,["sage::vm::Error"]]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
index e1258032..b0c6b041 100644
--- a/docs/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
+++ b/docs/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"sage":[["impl UnwindSafe for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl UnwindSafe for CoreOp",1,["sage::asm::core::CoreOp"]],["impl UnwindSafe for Globals",1,["sage::asm::globals::Globals"]],["impl UnwindSafe for Location",1,["sage::asm::location::Location"]],["impl UnwindSafe for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl UnwindSafe for StandardOp",1,["sage::asm::std::StandardOp"]],["impl UnwindSafe for Error",1,["sage::asm::Error"]],["impl UnwindSafe for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !UnwindSafe for Env",1,["sage::lir::env::Env"]],["impl !UnwindSafe for Error",1,["sage::lir::error::Error"]],["impl !UnwindSafe for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !UnwindSafe for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !UnwindSafe for Expr",1,["sage::lir::expr::expression::Expr"]],["impl UnwindSafe for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl UnwindSafe for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl UnwindSafe for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !UnwindSafe for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl UnwindSafe for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl UnwindSafe for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl UnwindSafe for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl UnwindSafe for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl UnwindSafe for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl UnwindSafe for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl UnwindSafe for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl UnwindSafe for Get",1,["sage::lir::expr::ops::io::Get"]],["impl UnwindSafe for Put",1,["sage::lir::expr::ops::io::Put"]],["impl UnwindSafe for And",1,["sage::lir::expr::ops::logic::And"]],["impl UnwindSafe for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl UnwindSafe for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl UnwindSafe for New",1,["sage::lir::expr::ops::memory::New"]],["impl UnwindSafe for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl UnwindSafe for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl UnwindSafe for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !UnwindSafe for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl !UnwindSafe for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl !UnwindSafe for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl !UnwindSafe for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !UnwindSafe for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !UnwindSafe for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl UnwindSafe for Mutability",1,["sage::lir::types::Mutability"]],["impl !UnwindSafe for Type",1,["sage::lir::types::Type"]],["impl UnwindSafe for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl UnwindSafe for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl UnwindSafe for Axis",1,["sage::side_effects::io::Axis"]],["impl UnwindSafe for Direction",1,["sage::side_effects::io::Direction"]],["impl UnwindSafe for Color",1,["sage::side_effects::io::Color"]],["impl UnwindSafe for InputMode",1,["sage::side_effects::io::InputMode"]],["impl UnwindSafe for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl UnwindSafe for Channel",1,["sage::side_effects::io::Channel"]],["impl UnwindSafe for Input",1,["sage::side_effects::io::Input"]],["impl UnwindSafe for Output",1,["sage::side_effects::io::Output"]],["impl UnwindSafe for C",1,["sage::targets::c::C"]],["impl UnwindSafe for MyOS",1,["sage::targets::my_os::MyOS"]],["impl UnwindSafe for X86",1,["sage::targets::x86::X86"]],["impl UnwindSafe for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl UnwindSafe for CoreOp",1,["sage::vm::core::CoreOp"]],["impl UnwindSafe for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl UnwindSafe for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> UnwindSafe for CoreInterpreter<T>where\n T: UnwindSafe,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> UnwindSafe for StandardInterpreter<T>where\n T: UnwindSafe,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl UnwindSafe for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl UnwindSafe for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl UnwindSafe for Error",1,["sage::vm::Error"]]]
+"sage":[["impl UnwindSafe for CoreProgram",1,["sage::asm::core::CoreProgram"]],["impl UnwindSafe for CoreOp",1,["sage::asm::core::CoreOp"]],["impl UnwindSafe for Globals",1,["sage::asm::globals::Globals"]],["impl UnwindSafe for Location",1,["sage::asm::location::Location"]],["impl UnwindSafe for StandardProgram",1,["sage::asm::std::StandardProgram"]],["impl UnwindSafe for StandardOp",1,["sage::asm::std::StandardOp"]],["impl UnwindSafe for Error",1,["sage::asm::Error"]],["impl UnwindSafe for Annotation",1,["sage::lir::annotate::Annotation"]],["impl !UnwindSafe for Env",1,["sage::lir::env::Env"]],["impl !UnwindSafe for Error",1,["sage::lir::error::Error"]],["impl !UnwindSafe for ConstExpr",1,["sage::lir::expr::const_expr::ConstExpr"]],["impl !UnwindSafe for Declaration",1,["sage::lir::expr::declaration::Declaration"]],["impl !UnwindSafe for Expr",1,["sage::lir::expr::expression::Expr"]],["impl UnwindSafe for Add",1,["sage::lir::expr::ops::arithmetic::addition::Add"]],["impl UnwindSafe for Negate",1,["sage::lir::expr::ops::arithmetic::negate::Negate"]],["impl UnwindSafe for Arithmetic",1,["sage::lir::expr::ops::arithmetic::Arithmetic"]],["impl !UnwindSafe for Assign",1,["sage::lir::expr::ops::assign::Assign"]],["impl UnwindSafe for BitwiseAnd",1,["sage::lir::expr::ops::bitwise::and::BitwiseAnd"]],["impl UnwindSafe for BitwiseNand",1,["sage::lir::expr::ops::bitwise::nand::BitwiseNand"]],["impl UnwindSafe for BitwiseNor",1,["sage::lir::expr::ops::bitwise::nor::BitwiseNor"]],["impl UnwindSafe for BitwiseNot",1,["sage::lir::expr::ops::bitwise::not::BitwiseNot"]],["impl UnwindSafe for BitwiseOr",1,["sage::lir::expr::ops::bitwise::or::BitwiseOr"]],["impl UnwindSafe for BitwiseXor",1,["sage::lir::expr::ops::bitwise::xor::BitwiseXor"]],["impl UnwindSafe for Comparison",1,["sage::lir::expr::ops::comparison::Comparison"]],["impl UnwindSafe for Get",1,["sage::lir::expr::ops::io::Get"]],["impl UnwindSafe for Put",1,["sage::lir::expr::ops::io::Put"]],["impl UnwindSafe for And",1,["sage::lir::expr::ops::logic::And"]],["impl UnwindSafe for Or",1,["sage::lir::expr::ops::logic::Or"]],["impl UnwindSafe for Not",1,["sage::lir::expr::ops::logic::Not"]],["impl UnwindSafe for New",1,["sage::lir::expr::ops::memory::New"]],["impl UnwindSafe for Delete",1,["sage::lir::expr::ops::memory::Delete"]],["impl UnwindSafe for Tag",1,["sage::lir::expr::ops::tagged_union::Tag"]],["impl UnwindSafe for Data",1,["sage::lir::expr::ops::tagged_union::Data"]],["impl !UnwindSafe for Pattern",1,["sage::lir::expr::pattern::Pattern"]],["impl !UnwindSafe for CoreBuiltin",1,["sage::lir::expr::procedure::builtin::CoreBuiltin"]],["impl !UnwindSafe for StandardBuiltin",1,["sage::lir::expr::procedure::builtin::StandardBuiltin"]],["impl !UnwindSafe for FFIProcedure",1,["sage::lir::expr::procedure::ffi::FFIProcedure"]],["impl !UnwindSafe for Procedure",1,["sage::lir::expr::procedure::mono::Procedure"]],["impl !UnwindSafe for PolyProcedure",1,["sage::lir::expr::procedure::poly::PolyProcedure"]],["impl UnwindSafe for Mutability",1,["sage::lir::types::Mutability"]],["impl !UnwindSafe for Type",1,["sage::lir::types::Type"]],["impl UnwindSafe for SourceCodeLocation",1,["sage::parse::SourceCodeLocation"]],["impl UnwindSafe for FFIBinding",1,["sage::side_effects::ffi::FFIBinding"]],["impl UnwindSafe for Axis",1,["sage::side_effects::io::Axis"]],["impl UnwindSafe for Direction",1,["sage::side_effects::io::Direction"]],["impl UnwindSafe for Color",1,["sage::side_effects::io::Color"]],["impl UnwindSafe for InputMode",1,["sage::side_effects::io::InputMode"]],["impl UnwindSafe for OutputMode",1,["sage::side_effects::io::OutputMode"]],["impl UnwindSafe for Channel",1,["sage::side_effects::io::Channel"]],["impl UnwindSafe for Input",1,["sage::side_effects::io::Input"]],["impl UnwindSafe for Output",1,["sage::side_effects::io::Output"]],["impl UnwindSafe for C",1,["sage::targets::c::C"]],["impl UnwindSafe for SageOS",1,["sage::targets::sage_os::SageOS"]],["impl UnwindSafe for X86",1,["sage::targets::x86::X86"]],["impl UnwindSafe for CoreProgram",1,["sage::vm::core::CoreProgram"]],["impl UnwindSafe for CoreOp",1,["sage::vm::core::CoreOp"]],["impl UnwindSafe for StandardProgram",1,["sage::vm::std::StandardProgram"]],["impl UnwindSafe for StandardOp",1,["sage::vm::std::StandardOp"]],["impl<T> UnwindSafe for CoreInterpreter<T>where\n T: UnwindSafe,",1,["sage::vm::interpreter::core::CoreInterpreter"]],["impl<T> UnwindSafe for StandardInterpreter<T>where\n T: UnwindSafe,",1,["sage::vm::interpreter::std::StandardInterpreter"]],["impl UnwindSafe for TestingDevice",1,["sage::vm::interpreter::TestingDevice"]],["impl UnwindSafe for StandardDevice",1,["sage::vm::interpreter::StandardDevice"]],["impl UnwindSafe for Error",1,["sage::vm::Error"]]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/sage/all.html b/docs/sage/all.html
index fc0e27e0..3b9707d7 100644
--- a/docs/sage/all.html
+++ b/docs/sage/all.html
@@ -1 +1 @@
-List of all items in this crate
\ No newline at end of file
diff --git a/docs/sage/constant.LOGO.html b/docs/sage/constant.LOGO.html
index 8bcfcb03..61e7ac3b 100644
--- a/docs/sage/constant.LOGO.html
+++ b/docs/sage/constant.LOGO.html
@@ -1,4 +1,4 @@
-LOGO in sage - Rust
I’ve chosen to use the smallest value that can be expressed by an 8-bit signed integer.
This is because I want to make sure that this works with 8-bit machines as well.
The value of this constant might change in the future though.
-(The sage compiler itself can be compiled to web assembly to be executed on the web. This allows a sage compiler + interpreter to be hosted on a static web page and run embded sage scripts. This web implementation compiles sage LIR code into sage virtual machine code, and then feeds it to a builtin virtual machine interpreter. The compiler can also switch to various backends, such as the C source code generator, or assembly output.)
+(The sage compiler itself can be compiled to web assembly to be executed on the web. This allows a sage compiler + interpreter to be hosted on a static web page and run embedded sage scripts. This web implementation compiles sage LIR code into sage virtual machine code, and then feeds it to a builtin virtual machine interpreter. The compiler can also switch to various backends, such as the C source code generator, or assembly output.)
This crate implements a compiler for the sage programming language
and its low level virtual machine.
as ASCII/UNICODE with `PutChar. A hardware specific implementation may
also choose to fail under unsupported targets to prevent use where
not intended.
-
Right now, this target only supports GCC due to a quirk
-with the way this implementation compiles functions.
-For some reason, Clang doesn’t like nested functions,
-even though the function’s addresses can still be known
-as labels at compile time. I’m really not sure why Clang
-chooses not to compile nested functions. This can be
-fixed by this implementations by just moving function definitions
-code outside of the main function, since the virtual machine
-does not depend on defining functions at runtime.
\ No newline at end of file
diff --git a/docs/sage/targets/sage_os/index.html b/docs/sage/targets/sage_os/index.html
new file mode 100644
index 00000000..1ec0c546
--- /dev/null
+++ b/docs/sage/targets/sage_os/index.html
@@ -0,0 +1,15 @@
+sage::targets::sage_os - Rust
Right now, this target only supports GCC due to a quirk
+with the way this implementation compiles functions.
+For some reason, Clang doesn’t like nested functions,
+even though the function’s addresses can still be known
+as labels at compile time. I’m really not sure why Clang
+chooses not to compile nested functions. This can be
+fixed by this implementations by just moving function definitions
+code outside of the main function, since the virtual machine
+does not depend on defining functions at runtime.
The type for the C target which implements the Target trait.
+This allows the compiler to target the C language.
\ No newline at end of file
diff --git a/docs/sage/targets/sage_os/sidebar-items.js b/docs/sage/targets/sage_os/sidebar-items.js
new file mode 100644
index 00000000..7ed8cdae
--- /dev/null
+++ b/docs/sage/targets/sage_os/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["SageOS"]};
\ No newline at end of file
diff --git a/docs/sage/targets/sage_os/struct.SageOS.html b/docs/sage/targets/sage_os/struct.SageOS.html
new file mode 100644
index 00000000..f75d762f
--- /dev/null
+++ b/docs/sage/targets/sage_os/struct.SageOS.html
@@ -0,0 +1,27 @@
+SageOS in sage::targets::sage_os - Rust
\ No newline at end of file
diff --git a/docs/sage/targets/sidebar-items.js b/docs/sage/targets/sidebar-items.js
index fba7f578..92302bb0 100644
--- a/docs/sage/targets/sidebar-items.js
+++ b/docs/sage/targets/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"mod":["c","my_os","x86"],"trait":["Architecture","CompiledTarget"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"mod":["c","sage_os","x86"],"trait":["Architecture","CompiledTarget"]};
\ No newline at end of file
diff --git a/docs/sage/targets/trait.Architecture.html b/docs/sage/targets/trait.Architecture.html
index 64ba0d17..08d93cea 100644
--- a/docs/sage/targets/trait.Architecture.html
+++ b/docs/sage/targets/trait.Architecture.html
@@ -41,4 +41,4 @@
\ No newline at end of file
diff --git a/docs/search-index.js b/docs/search-index.js
index f7390029..8b143916 100644
--- a/docs/search-index.js
+++ b/docs/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = JSON.parse('{\
-"sage":{"doc":"The Sage Programming Language","t":"RRRAAAAAAACICCCCCCECCCCCCCCCNNNNNNLLLLLAKLLLLLKALKALKLAKLLLLLNNNNNNNNNNNNNNEDNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMDLLLLLLLLLLLLLLLLLLLLLRNRRRRRRRNNENRRLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNEDNNNNLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMFDNNDNNNENNNNNNENNNNNNDININDDDDDDNNSSNNNNEINNNENNNDNNSDNNENNDNNNNNNNNNDNEENDNNNDIINNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNENSDNNDNNNNNNDNNNDENNNNNDNNNNDENNNNNSINNNDNNNNNNNNNNNSDNNINNNNNENNNINNNSINNNNNNNNNNNNNNNLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMDLLLLLMLLMLLLLLMMMFFFFLLLLLAADLLLLLLLLLLLMLMLMLLLLLLNNNNENNNNNNNNNNDNNENNNNNNNNNNENNNNNNNNDENNNNNNNNNNNNNNDENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIILLLLAKKKLAKKKKLLLLLKKKKKKADLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNDENDNNINNNNENNNNNNNNNNNNNNNNNNNNNNNNDDEDNNNDNNNINNLFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLMKLLLMLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLMLLLLLLLLLLLLLLLKLLMLLLLLLLKLLLKLLLKLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["LOGO","LOGO_WITH_COLOR","NULL","asm","frontend","lir","parse","side_effects","targets","vm","A","AssemblyProgram","B","C","CoreOp","CoreProgram","D","E","Error","F","FP","GP","Globals","Location","REGISTERS","SP","StandardOp","StandardProgram","UndefinedGlobal","UndefinedLabel","Unexpected","Unmatched","UnsupportedInstruction","VirtualMachineError","borrow","borrow_mut","clone","clone_into","comment","core","current_instruction","eq","fmt","fmt","from","from","get_op","globals","into","is_defined","location","log_instructions_after","op","partial_cmp","std","std_op","to_owned","to_string","try_from","try_into","type_id","Add","And","Array","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Call","CallLabel","Comment","Compare","Copy","CoreOp","CoreProgram","Dec","Div","DivRem","Else","End","Fn","Get","GetAddress","Global","If","Inc","Index","IsEqual","IsGreater","IsGreaterEqual","IsLess","IsLessEqual","IsNotEqual","Many","Move","Mul","Neg","Next","Not","Or","Pop","PopFrom","Prev","Push","PushTo","Put","Rem","Return","Set","SetLabel","Sub","Swap","While","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","code","current_instruction","default","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","get_op","hash","hash","into","into","is_defined","new","op","partial_cmp","partial_cmp","push_string","put_string","stack_alloc_string","std_op","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","a","a","a","a","a","a","a","addr","b","b","b","b","b","b","b","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","name","offset","size","size","size","size","sp","sp","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","Globals","add_global","borrow","borrow_mut","clone","clone_into","default","fmt","fmt","from","get_global","get_global_location","get_global_size","get_size","into","new","resolve","to_owned","to_string","try_from","try_into","type_id","A","Address","B","C","D","E","F","FP","GP","Global","Indirect","Location","Offset","REGISTERS","SP","borrow","borrow_mut","clone","clone_into","cmp","deref","eq","equivalent","fmt","fmt","from","hash","into","offset","partial_cmp","to_owned","to_string","try_from","try_into","type_id","ACos","ASin","ATan","Add","Alloc","Call","CoreOp","Cos","Div","Free","IsGreater","IsLess","Mul","Neg","Pow","Rem","Set","Sin","Sqrt","StandardOp","StandardProgram","Sub","Tan","ToFloat","ToInt","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","code","current_instruction","default","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_op","into","into","is_defined","new","op","partial_cmp","partial_cmp","std_op","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","a","a","b","b","dst","dst","dst","dst","dst","dst","dst","dst","src","src","src","src","src","src","parse","Add","Add","Alt","And","Annotated","Annotated","Annotated","Annotation","Any","Any","Apply","Apply","ApplyNonProc","ApplyNonTemplate","Arithmetic","Array","Array","Array","As","As","AssemblyError","Assign","AssignOp","AssignOp","BinaryOp","BinaryOp","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Bool","Bool","COMPILER_GENERATED","CONSTANT","Cell","Cell","Char","Char","Comparison","Compile","CompilePolyProc","CompilerGenerated","Const","ConstExpr","ConstExpr","ConstExpr","Constant","CoreBuiltin","CoreBuiltin","CouldntSimplify","DEAD_CODE","Data","DeadCode","Debug","Declaration","Declare","Declare","Delete","Deref","DerefMut","DerefNonPointer","Display","Divide","Enum","EnumUnion","EnumUnion","EnumUnion","Env","Equal","Error","Expr","ExternProc","FFIProcedure","FFIProcedure","Float","Float","Get","GetSize","GetType","GreaterThan","GreaterThanOrEqual","If","IfLet","Immutable","Impl","Index","Int","Int","InvalidAs","InvalidAssignOp","InvalidAssignOpTypes","InvalidBinaryOp","InvalidBinaryOpTypes","InvalidConstExpr","InvalidIndex","InvalidMatchExpr","InvalidMonomorphize","InvalidPatternForExpr","InvalidPatternForType","InvalidRefer","InvalidTemplateArgs","InvalidTernaryOp","InvalidTernaryOpTypes","InvalidUnaryOp","InvalidUnaryOpTypes","LIVE_CODE","LessThan","LessThanOrEqual","Let","Location","Many","Many","Many","Match","Member","Member","MemberNotFound","MismatchedMutability","MismatchedTypes","Monomorphize","Multiply","Mutability","Mutable","NONE","Negate","NegativeArrayLength","Never","New","NonExhaustivePatterns","NonIntegralConst","NonSymbol","None","None","None","Not","NotEqual","Null","Of","Or","Pattern","Pointer","Pointer","Poly","PolyProc","PolyProc","PolyProcedure","Power","Proc","Proc","Proc","Procedure","Put","RecursionDepthConst","RecursionDepthTypeEquality","Refer","Remainder","Return","SIMPLIFY_RECURSION_LIMIT","Simplify","SizeOfExpr","SizeOfTemplate","SizeOfType","StandardBuiltin","StandardBuiltin","StaticVar","Struct","Struct","Struct","Struct","Subtract","Symbol","Symbol","Symbol","SymbolNotDefined","TEMPORARY","Tag","Template","Temporary","TernaryOp","TernaryOp","Tuple","Tuple","Tuple","Tuple","Type","Type","Type","Type","TypeCheck","TypeNotDefined","TypeOf","TypeRedefined","USER_GENERATED","UnaryOp","UnaryOp","Union","Union","Union","Unit","UnsizedType","UnsupportedOperation","UnusedExpr","Var","VarPat","Variant","VariantNotFound","When","While","Wildcard","add","add","add_assign","add_associated_const","add_monomorphized_associated_consts","alt","and","annotate","annotate","annotate","app","app","apply","are_patterns_exhaustive","args","args","as_bool","as_float","as_int","as_symbol","as_type","as_type","assign","assign_op","bitand","bitnand","bitnor","bitnot","bitor","bitor","bitor_assign","bitxor","body","body","bool","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_cast_to","can_decay_to","can_decay_to","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile_expr","compile_expr","compile_expr","compile_expr","compile_expr","compile_expr","compile_expr","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","contains_symbol","debug","declare_let_bind","default","default","define_types","define_var","deref","deref_mut","display","display","display","display","display","display","display","display","display","div","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equals","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","field","field","float","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_mono","ge","get_all_associated_consts","get_args","get_associated_const","get_bindings","get_body","get_branch_result_type","get_common_name","get_mangled_name","get_method_call_mutability","get_monomorph_template_args","get_name","get_ret","get_self_param_mutability","get_size","get_size","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_template_params","get_type","get_type","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_of_associated_const","gt","has_associated_const","has_element_type","has_location","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","idx","if_let_pattern","if_then","int","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_atomic","is_compiler_generated","is_concrete","is_constant","is_dead_code","is_exhaustive","is_location","is_method_call","is_monomorph_of","is_mutable","is_none","is_poly","is_recursive","is_recursive_helper","is_self_param_reference","is_simple","is_temporary","le","let_bind","let_const","let_consts","let_proc","let_procs","let_type","let_types","let_var","let_vars","location","lt","match_pattern","monomorphize","monomorphize","mul","name","name","neg","neq","new","new","new","new","not","or","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","perform_template_applications","pointer","pow","proc","push_label","refer","rem","ret","ret","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","set_common_name","simplify","simplify_checked","simplify_checked","simplify_checked","simplify_until_atomic","simplify_until_concrete","simplify_until_has_members","simplify_until_has_variants","simplify_until_matches","simplify_until_poly","simplify_until_simple","simplify_until_type_checks","simplify_until_union","size_of","strip_template","struct_","structure","sub","substitute","substitute","substitute","substitute","substitute","substitute","substitute","substitute","substitute","substitute_types","substitute_types","sym","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","transform_method_call","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tup","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unop","var","variant_index","while_loop","wildcard","with","with","expected","expected","expr","expr","expr","found","found","patterns","SourceCodeLocation","borrow","borrow_mut","clone","clone_into","cmp","column","eq","equivalent","filename","fmt","from","get_code","hash","into","length","line","offset","parse_asm","parse_frontend","parse_lir","parse_vm","partial_cmp","to_owned","try_from","try_into","type_id","ffi","io","FFIBinding","borrow","borrow_mut","clone","clone_into","cmp","eq","equivalent","fmt","fmt","from","hash","input_cells","into","name","new","output_cells","partial_cmp","to_owned","to_string","try_from","try_into","type_id","Accelerometer","Altimeter","AnalogPin","AnalogPin","Axis","Barometer","Bell","Black","Blower","Blue","BlueLight","Brightness","Brightness","Button","Buzzer","Channel","ClearDisplay","Clock","Color","Compass","ConductivitySensor","Cooler","Custom","Custom","Cyan","DPad","DepthSensor","DigitalPin","DigitalPin","Direction","Down","Fan","FlowSensor","Green","GreenLight","Gyroscope","Heater","Humidity","Input","InputMode","JoyStick","Keyboard","Left","Magenta","Magnetometer","Microphone","MotorSpeed","MoveCursorDown","MoveCursorLeft","MoveCursorRight","MoveCursorUp","Note","Odometer","Orange","Output","OutputMode","PHSensor","Position","Pressure","PressureGauge","PrinterChar","PrinterFloat","PrinterInt","Proximity","Pump","RGB","RainGauge","Random","Red","RedLight","Right","Servo","SetCursorChar","SetCursorColumn","SetCursorPixel","SetCursorRow","Solenoid","SpeakerFrequency","SpeakerVolume","Speedometer","StderrChar","StderrFloat","StderrInt","StdinChar","StdinFloat","StdinInt","StdoutChar","StdoutFloat","StdoutInt","StepperMotor","Temperature","Thermometer","UVSensor","Up","UpdateDisplay","Valve","VolumeSensor","WeightSensor","White","WindDirection","WindSpeed","X","Y","Yellow","Z","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","channel","channel","clock","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","hash","hash","hash","hash","hash","hash","into","into","into","into","into","into","into","into","mode","mode","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","random","stderr_char","stderr_float","stderr_int","stdin_char","stdin_float","stdin_int","stdout_char","stdout_float","stdout_int","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","Architecture","CompiledTarget","build_core","build_op","build_std","build_std_op","c","declare_proc","end","get","indentation","my_os","name","op","peek","poke","post_funs","postlude","postop","pre_funs","prelude","put","std_op","supports_floats","supports_input","supports_output","version","x86","C","borrow","borrow_mut","declare_proc","default","end","from","get","into","name","op","peek","poke","post_funs","postlude","postop","prelude","put","std_op","supports_floats","supports_input","supports_output","try_from","try_into","type_id","version","MyOS","borrow","borrow_mut","declare_proc","default","end","from","get","into","name","op","peek","poke","post_funs","postlude","postop","prelude","put","std_op","supports_floats","supports_input","supports_output","try_from","try_into","type_id","version","X86","borrow","borrow_mut","declare_proc","default","end","from","get","into","name","op","peek","poke","post_funs","postlude","postop","prelude","put","std_op","supports_floats","supports_input","supports_output","try_from","try_into","type_id","version","ACos","ASin","ATan","Add","Add","Alloc","BitwiseNand","Call","Call","Comment","CoreInterpreter","CoreOp","CoreOp","CoreProgram","Cos","Deref","Device","Div","Div","Else","End","Error","ExpectedCore","Free","Function","Get","If","Index","IsNonNegative","IsNonNegative","Move","Mul","Mul","Peek","Poke","Pow","Put","Refer","Rem","Rem","Restore","Return","Save","Set","Set","Sin","StandardDevice","StandardInterpreter","StandardOp","StandardProgram","Sub","Sub","Tan","TestingDevice","ToFloat","ToInt","UnsupportedInstruction","VirtualMachineProgram","Where","While","add_binding","as_float","as_int","begin_else","begin_function","begin_if","begin_while","bitwise_nand","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","code","code","code","comment","default","default","default","default","default","default","deref","end","eq","eq","eq","eq","eq","equivalent","equivalent","ffi","ffi_call","ffi_call","ffi_call","ffi_call","ffi_channel","flatten","flatten","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get","get","get","get","get_functions","get_functions","get_main","get_main","get_main_and_functions","get_main_and_functions","hash","hash","index","input","into","into","into","into","into","into","into","into","into","is_non_negative","move_pointer","new","new","new","new_raw","op","op","op","output","output_str","output_vals","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","peek","peek","peek","peek","poke","poke","poke","poke","put","put","put","put","refer","restore","ret","run","run","save","set_register","std_op","std_op","std_op","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","where_is_pointer"],"q":[[0,"sage"],[10,"sage::asm"],[61,"sage::asm::core"],[163,"sage::asm::core::CoreOp"],[231,"sage::asm::globals"],[253,"sage::asm::location"],[288,"sage::asm::std"],[353,"sage::asm::std::StandardOp"],[371,"sage::frontend"],[372,"sage::lir"],[1551,"sage::lir::Error"],[1559,"sage::parse"],[1586,"sage::side_effects"],[1588,"sage::side_effects::ffi"],[1611,"sage::side_effects::io"],[1877,"sage::targets"],[1905,"sage::targets::c"],[1931,"sage::targets::my_os"],[1957,"sage::targets::x86"],[1983,"sage::vm"]],"d":["The UNICODE character art for the logo of the language.","The UNICODE character art for the logo of the language, …","The value of the NULL pointer constant.","Assembly Module","","LIR (Low Intermediate Representation) Module","Parsing Module","","Targets Module","Virtual Machine Module","","A frontend to both the CoreProgram and StandardProgram …","","","","","","","An error generated by assembling some assembly language …","","","","","","","","","","The given global was not defined.","The given label was not defined.","The given instruction was not expected, or cannot be used …","The given instruction did not have a matching “end”. …","Is this standard assembly operation supported by the …","An error generated by the virtual machine.","","","","","Insert a comment into the program.","Core Assembly Variant","Get the current instruction number.","","","","","Returns the argument unchanged.","Get the operation at the given instruction number.","","Calls U::from(self).","Is the given label defined yet in the operations? I.E., …","Assembly Memory Location","Log all the instructions after the given instruction …","Insert a core operation into the program.","","Standard Assembly Variant","Attempt to insert a standard operation into the program. …","","","","","","Add an integer value from a source location to a …","Logical “and” a destination with a source value.","Store a list of values at a source location. Then, store …","","","","","","","Get a value in memory and call it as a label ID.","Call a function with a given label.","","Store the comparison of “a” and “b” in a …","Copy a number of cells from a source referenced location …","A core instruction of the assembly language. These are …","An assembly program composed of core instructions, which …","Decrement the integer value of a location.","Divide a destination location by a source value.","Divide a destination location by a source value. Store the …","Add an “else” clause to an “if the value is not zero…","Terminate a function declaration, a while loop, an if …","Declare a new label.","Get a value from the input device / interface and store it …","Get the address of a location, and store it in a …","Declare a global variable.","Begin an “if the value is not zero” statement over a …","Increment the integer value of a location.","Get the address of a location indexed by an offset stored …","Perform dst = a == b.","Perform dst = a > b.","Perform dst = a >= b.","Perform dst = a < b.","Perform dst = a <= b.","Perform dst = a != b.","Many instructions to execute; conveniently grouped …","Copy a value from a source location to a destination …","Multiply a destination location by a source value.","Negate an integer.","Make this pointer point to the next cell (or the nth next …","Replace a value in memory with its boolean complement.","Logical “or” a destination with a source value.","Pop a number of cells from the stack and store it in a …","Pop a number of cells from a specified stack and store it …","Make this pointer point to the previous cell (or the nth …","Push a number of cells starting at a memory location on …","Push a number of cells starting at a memory location onto …","Put a value from a source register to the output device / …","Store the remainder of the destination modulus the source …","Return from the current function.","Set the value of a register, or any location in memory, to …","Set the value of a register, or any location in memory, to …","Subtract a source integer value from a destination …","Swap the values of two locations.","Begin a “while the value is not zero” loop over a …","Assemble a program of core assembly instructions into the …","","","","","","","","","","","The list of core assembly instructions in the program.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","Create a new program of core assembly instructions.","","","","Push a string literal as UTF-8 to the stack.","Put a string literal as UTF-8 to the output device.","Allocate a string on the stack, and store its address in a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A lookup for all the global variables in an assembly …","Add a global variable to the list of globals.","","","","","Create a new empty Globals lookup.","","","Returns the argument unchanged.","Get the location, and size of a global variable.","Get the location of a global variable.","Get the size of a global variable. This is the number of …","Get the size of the global variables. This is the number …","Calls U::from(self).","Create a new empty Globals lookup.","Resolve the global variables in a location to produce an …","","","","","","The “A” general purpose register.","A fixed position in the tape (a constant address known at …","The “B” general purpose register.","The “C” general purpose register.","The “D” general purpose register.","The “E” general purpose register.","The “F” general purpose register.","The frame pointer register.","The Global Pointer register. This is used to access global …","A global variable.","Use the value of a cell on the tape as an address. For …","A location in memory (on the tape of the virtual machine).","Go to a position in memory, and then move the pointer …","","The stack pointer register.","","","","","","Get the location of the value pointed to by this location.","","","","","Returns the argument unchanged.","","Calls U::from(self).","Get the location offset by a constant number of cells from …","","","","","","","Perform inverse Cos on a cell (float) and store the result …","Perform inverse Sin on a cell (float) and store the result …","Perform inverse Tan on a cell (float) and store the result …","Add the source cell (float) to the destination cell …","Take the value in the operand cell. Allocate that number …","Call a foreign function.","Execute a core instruction.","Perform Cos on a cell (float) and store the result in the …","Divide the destination cell (float) by the source cell …","Free the memory allocated at the address stored in the …","Perform dst = a > b.","Perform dst = a < b.","Multiply the source cell (float) by the destination cell …","Negate the value of a cell (float) and store the result in …","Raise a cell (float) to the power of another cell (float).","Perform the modulo operation on the destination cell …","Set the value of a cell to a constant float.","Perform Sin on a cell (float) and store the result in the …","Take the square root of a cell (float).","A standard instruction of the assembly language. These are …","A program composed of standard instructions, which can be …","Subtract the source cell (float) from the destination cell …","Perform Tan on a cell (float) and store the result in the …","Take the integer value stored in a cell and store the …","Take the float value stored in a cell and store the …","Assemble the program into a virtual machine program.","","","","","","","","","The list of standard assembly instructions in the program.","Get the current instruction number.","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Get the operation at the given instruction number.","Calls U::from(self).","Calls U::from(self).","Is the given label defined yet in the operations?","Create a new program of core assembly instructions.","Add a core operation to the program.","","","Add a standard operation to the program.","","","","","","","","","","","The first cell in the comparison (left hand side).","The first cell in the comparison (left hand side).","The second cell in the comparison (right hand side).","The second cell in the comparison (right hand side).","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The source cell.","The source cell.","The source cell.","The source cell.","The source cell.","The source cell.","","","","","A boolean “And” operation between two values.","An error with some annotation about the source code that …","","An expression along with data about its source code …","An annotation for metadata about an LIR expression. This …","Unchecked access to a value. This is used to override …","A type reserved by the compiler. This type is equal to any …","Apply a function with some arguments.","A type that constructs a concrete type from a polymorphic …","Tried to apply a non-procedure to some arguments.","Tried to apply a non-template type to some arguments.","An arithmetic operation.","An array of constant values.","An array of expressions.","An array of a given type, with a constant size.","Cast a constant expression to another type.","Cast an expression to another type.","An error caused by trying to assemble invalid code …","An assignment operation. This is used to implement …","A trait used to implemented an assignment operation.","Perform an assignment operation on two expressions.","A trait used to implement a binary operation.","Perform a binary operation on two expressions.","A boolean “BitwiseAnd” operation between two values.","A boolean “BitwiseNand” operation between two values.","A boolean “BitwiseNor” operation between two values.","","A boolean “BitwiseOr” operation between two values.","A boolean “BitwiseXor” operation between two values.","A constant boolean value.","The type of a boolean value.","An annotation for compiler-generated code.","An annotation for a constant.","A constant integer value representing a cell on the tape.","The type of the most basic unit of memory.","A constant chararacter.","The type of a character.","A comparison operation between two values.","A trait which allows an LIR expression to be compiled to …","Tried to compile a polymorphic procedure without …","Is this expression compiler-generated?","A constant expression.","A compiletime expression.","A constant expression.","","Is this expression a constant?","A builtin pseudo-procedure implemented in the core …","A builtin implemented in handwritten core assembly.","Recursion depth exceeded when trying to confirm a type’s …","An annotation for dead code.","Get the Union data associated with a tagged union …","Is this expression dead code?","","A declaration of a variable, function, type, etc.","Bind a list of types in a constant expression.","Declare any number of variables, procedures, types, or …","","Dereference this expression (i.e. get the value it points …","Store an expression to an address (a pointer).","Tried to dereference a non-pointer.","","","An enumeration of a list of possible named values. A …","A tagged union of constant values.","A tagged union: a typechecked union of different variants. …","An enumeration of a list of possible types. This is a sum …","An environment under which expressions and types are …","","An LIR compilation error.","TODO: Add variants for LetProc, LetVar, etc. to support …","A foreign function declaration.","A typed procedure which calls a foreign function. This is …","A foreign function interface binding.","A constant floating point value.","The floating-point number type.","","Get the size of something in memory (number of cells).","Get the type associated with a value under a given …","","","An if-then-else expression.","An if-let expression.","Immutable access to a value. This is the default way to …","Declare associated constants and procedures for a type.","Index an array or pointer with an expression that …","A constant integer value.","The integer type.","Invalid type casting expression.","Invalid assignment operation (assign, add_assign, …","Invalid assign op types (incorrect types).","Invalid binary operation (add, subtract, and, or) …","Invalid binary op types (incorrect types).","Invalid constant expression.","Invalid Index expression (incorrect types).","Tried to match over an expression that cannot be matched …","Cannot monomorphize a constant expression.","Tried to use a pattern that is not valid for the given …","Tried to use a pattern that is not valid for the given …","Invalid Refer expression. The compiler was not able to …","Invalid number of template arguments to a type.","Invalid ternary operation (if) expression (incorrect …","Invalid ternary op types (incorrect types).","Invalid unary operation (negate, not) expression …","Invalid unary op types (incorrect types).","An annotation for live code.","","","Bind a type to a name in a temporary scope.","The source code location of the expression.","Many annotations can be attached to an expression. This is …","Many declarations.","A block of expressions. The last expression in the block …","A match expression.","Get an attribute of a constant expression.","Get a field or member from a structure, union, or tuple. …","Tried to access an undefined member of a tuple, struct, or …","Mismatched mutability","Mismatched types","Monomorphize a constant expression with some type …","","Mutability of a pointer. This is used to provide type …","Mutable access to a value.","A constant expression that evaluates to None. This …","","Tried to create an array with a negative length.","The type of an expression that will never return, or doesn…","","Invalid pattern for a match expression.","Got another type when expecting an integer, bool, or char.","Expected a symbol, but got something else.","No annotation.","The unit, or “void” instance.","The type of void expressions.","A boolean “Not” operation on a value.","","The null pointer constant.","A constant enum variant.","A boolean “Or” operation between two values.","A pattern which can be matched against an expression.","","A pointer to another type.","A polymorphic, parametric type. This type is used with the …","A polymorphic procedure.","A polymorphic procedure declaration.","A polymorphic procedure of LIR code which can be applied …","","A procedure.","A procedure declaration.","A procedure with a list of parameters and a return type.","A monomorphic procedure of LIR code which can be applied …","Print a value to a given output.","Recursion depth exceeded when trying to evaluate a …","Recursion depth exceeded when trying to confirm a type’s …","Reference this expression (i.e. get a pointer to it).","","Return a value from a function.","This is the maximum number of times a type will be …","Simplify an expression while maintaining structural …","Get the size of an expression’s type (in cells) as a …","Tried to get the size of a template type.","Get the size of a type (in cells) as a constant int.","A builtin pseudo-procedure implemented in the standard …","A builtin implemented in handwritten standard assembly.","A static variable declaration.","A structure of constant values.","A structure of fields to expressions.","","A tuple with named members. This is a product type.","","A named constant.","","A named type.","A symbol was used, but not defined.","An annotation for a temporary.","Get the Enum value of the tag associated with a tagged …","","Is this expression a temporary?","A trait used to implement a ternary operation.","Perform a ternary operation on three expressions.","A tuple of constant values.","A tuple of expressions.","","A heterogenous collection of types. This is a product type.","The representation of a type in the LIR type system.","A type as a constant expression.","A type declaration.","A trait object. This is internally represented as an …","A trait used to enforce type checking.","A type was used, but not defined.","Get the type of an expression. (as an array of chars)","Tried to define a type that already exists.","An annotation for user-generated code.","A trait used to implement a unary operation.","Perform a unary operation on two expressions.","A union of constant values.","A union: a collection of named fields. The Type value is …","A union of a list of possible types mapped to named …","This type is identified by its name. Most types are …","Tried to instantiate a type that cannot be sized. This is …","Expression uses an operation unsupported by the target.","Unused expression returned a non-None value.","A variable declaration.","A variable declaration with a pattern.","","The variant of an enum is not defined.","A constant, compile time if-then-else expression.","Create a while loop: while the first expression evaluates …","","","Add this expression to another.","","","","Construct a new pattern which binds to several alternate …","Logical and this expression with another.","Annotate an error with some metadata.","Annotate this constant expression with a source code …","An annotated expression with some metadata.","Apply this procedure or builtin to a list of expressions …","Apply this expression as a procedure to some arguments.","","This associated function returns whether or not a set of …","The arguments of the builtin. These will be typechecked …","The arguments of the builtin. These will be typechecked …","Try to get this constant expression as a boolean value.","Try to get this constant expression as a float.","Try to get this constant expression as an integer.","Try to get this constant expression as a symbol (like in …","Cast an expression as another type.","Cast an expression as another type.","Perform an AssignOp on this expression.","Perform an AssignOp on this expression.","BitwiseAnd this expression with another.","BitwiseOr this expression with another.","BitwiseAnd this expression with another.","BitwiseAnd this expression with another.","","BitwiseOr this expression with another.","","Bitwise this expression with another.","The list of assembly instructions to be pasted into the …","The list of assembly instructions to be pasted into the …","Construct a new pattern which matches a constant boolean.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Checks if the operation can be applied to the given types.","Checks if the operation can be applied to the given type.","Checks if the operation can be applied to the given types.","Checks if the operation can be applied to the given types.","","","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Can this type be cast to another type?","Can a pointer of this mutability decay to a pointer of …","Can this type decay into another type?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Clones the operation into a boxed trait object.","Clones the operation into a boxed trait object.","Clones the operation into a boxed trait object.","Clones the operation into a boxed trait object.","","","","Clone this operation into a trait object.","Clone this binary operation into a box.","Clone this binary operation into a box.","Clone this binary operation into a box.","","Clone this binary operation into a box.","Clone this binary operation into a box.","","Clone this operation into a box.","Clone this operation into a box.","Clone this binary operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Compile the expression into an assembly program.","Compile the expression into an assembly program.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expression.","Compiles the operation on the given expression.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compile the assignment operation.","","","","","","","","Compiles the operation on the given types. (Generates the …","Compiles the operation on the given type. (Generates the …","Compiles the operation on the given types. (Generates the …","Compiles the operation on the given types. (Generates the …","","","Compile the binary operation.","Compile the assignment operation.","Compile the binary operation.","Compile the binary operation.","Compile the binary operation.","","Compile the binary operation.","Compile the binary operation.","Compile the binary operation.","Compile the unary operation.","Compile the unary operation.","Compile the binary operation.","Compile the binary operation.","Compile the unary operation.","Compile the unary operation.","Compile the unary operation.","Compile the unary operation.","Compile the unary operation.","Does this type contain a symbol with the given name? This …","","Let-bind the pattern to the given expression. This will …","","","Define multiple types with the given names under this …","Define a variable in the current scope. This will …","Dereference this expression (i.e. get the value it points …","Dereference this expression (i.e. get the value it points …","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","","Divide this expression by another.","","","","","","","","","Is this expression greater than another?","","","","","","","","","","","","","","","","","","","","","","","","","Are two types structurally equal?","","","","","","","","","","","","","","","","","","","","","","","","","","","Evaluates the operation on the given constant expressions.","Evaluates the operation on the given constant expression.","Evaluates the operation on the given constant expressions.","Evaluates the operation on the given constant expressions.","Evaluate this constant expression at compile time, and get …","","","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Get a field from a structure, union, or tuple.","Get a field from a structure, union, or tuple.","Construct a new pattern which matches a constant float.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Is this expression greater than or equal to another?","","Get the arguments of the procedure.","","Get the map of new variables and their types which are …","Get the body of the procedure.","Get the type of a branch with a given expression matched …","Get the name of the procedure known to the LIR front-end.","Get the mangled name of the procedure. The procedure’s …","","","Get the name of this polymorphic procedure. This is not …","Get the return type of the procedure.","Get the first argument’s mutability (if it is a pointer)","Get the size of something in memory (number of cells).","Get the size of something in memory (number of cells).","Get the size of something in memory, but limit the number …","","","","","","","","","","Get the type associated with a value under a given …","Get the type associated with a value under a given …","Get the type of a value under a given environment and check","","","","","","","","Get the type of an associated constant of a type.","Is this expression greater than another?","","Does this type have an element type matching the supplied …","Does this annotation have a location?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Index an array or pointer with an expression that …","Generate an if letexpression, which matches a given expr, …","Create an if-then-else statement with this expression as …","Construct a new pattern which matches a constant integer.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Is this type an irreducible, atomic type?","Is this compiler-generated?","","Is this data protected against mutation?","Is this dead code?","Is this pattern exhaustive?","Is this annotation a location?","","","Can this data be accessed mutably?","Is this annotation none?","","","","Is first argument of function a reference?","Is this type in a simple form? A simple form is a form …","Is this a temporary?","Is this expression less than or equal to another?","Create a let-bound type.","Create a let binding for a constant expression.","Create several const bindings at onces.","Create a proc binding for a procedure.","Create several proc bindings at onces.","Create a let binding for an type.","Create several type bindings at onces.","Create a let binding for an expression.","Create a let binding for an expression, and define …","Get the location of this annotation.","Is this expression less than another?","Generate an expression which evaluates a match expression, …","","Take some type arguments and produce a monomorphized …","Multiply this expression by another.","The name of the builtin. This isn’t used in compilation, …","The name of the builtin. This isn’t used in compilation, …","Get the remainder of this expression divided by another.","Is this expression greater than or equal to another?","Create a new assignment operation.","Create a new FFI procedure.","Construct a new procedure with a given list of arguments …","Construct a new polymorphic procedure with type …","Logical not this expression.","Logical or this expression with another.","","","","","","","","","","","","","","","","","","","","","","","Perform type applications if possible.","Construct a new pattern which matches a pointer.","Get the power of this expression to another.","Construct a procedure.","Push this procedure’s label to the stack.","Reference this expression (i.e. get a pointer to it).","Get the remainder of this expression divided by another.","The return value the builtin will leave on the stack after …","The return value the builtin will leave on the stack after …","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expression.","Gets the type of the operation on the given expression.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","","","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","This is just for debugging purposes. This sets the common …","Simplify an expression while maintaining structural …","Simplify an expression while maintaining structural …","","","","Simplify until the type is concrete.","Simplify a type until you can get its members.","Simplify a type until you can get its variants.","Simplify an expression until it matches a given function …","Simplify until the type is a polymorphic type.","","Simplify until the type passes the type checker.","Simplify a type until it’s a union.","Get the size of an expression.","","Construct a new pattern which matches a struct with a …","Create a structure of fields to expressions.","Subtract an expression from this expression.","Substitute a type for a given name in the environment.","","Substitute a type in a given expression.","","","","","","Substitute all occurences of a symbol with another type. …","","","Construct a new pattern which matches a symbol with a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct a new pattern which matches a tuple of patterns.","Type check the expression.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expression.","Typechecks the operation on the given expression.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","","","","Type-check a pattern match of an expression against this …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Apply a unary operation to this expression.","Evaluate a variable in the current scope.","Calculate the integral value of a variant in an enum.","Create a while statement with this expression as the …","Construct a new pattern which matches any expression.","Return this expression, but with a given declaration in …","Return this expression, but with a given declaration in …","","","","","","","","","A struct representing a location in the source code. This …","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","Parse Core and Standard variants of assembly source code. …","Parse frontend sage code into an LIR expression.","Parse LIR code as an LIR expression.","Parse Core and Standard variants of virtual machine source …","","","","","","","","This is an FFI binding, which is used to call a foreign …","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","Create a new FFI binding.","","","","","","","","Input from an accelerometer (in meters per second per …","Input from altitude sensor (in meters)","Electrical device input modes (These should typically be …","Electrical device output modes Set the voltage of a given …","The different axes an input or output might use.","Input from a barometer (pressure in atmospheres)","Ring a bell (in hertz)","Black","Set the pressure of a given blower (in atmospheres)","Blue","Blue light intensity (in lux)","Input from a light sensor (in lux)","Lighting device output modes Set the brightness of a given …","Input from a button (0=not pressed, 1=pressed)","Sound output modes Ring a given buzzer (in hertz)","The channel to use for a given I/O mode.","Clear the display","Physical sensor input modes (These should typically be …","The different output colors a program might use.","Input from a compass (degrees)","Input from a conductivity sensor (in siemens per meter)","Turn a cooler on or off (0=off, 1=on)","Custom output modes A custom input mode (for use with a …","Custom output modes A custom output mode (for use with a …","Cyan","User input modes (These should typically be used for games …","Input from depth sensor (in meters)","Input from a digital input (0=low, 1=high)","Set the state of a given digital output (0=low, 1=high)","The different directions a D-Pad a might use.","","Set the pressure of a given fan (in atmospheres)","Input from a flow sensor (in liters per second)","Green","Green light intensity (in lux)","Input from a gyroscope (in degrees per second) around a …","Turn a heater on or off (0=off, 1=on)","Input from a humidity sensor (in percent)","An input source for a program.","The different types of input modes a program might use.","Input from a JoyStick the degree of displacement in a …","Input from keyboard (ASCII character)","","Magenta","Input from a magnetometer (in teslas) in a given axis","Input from a microphone (frequency in hertz)","Set the speed of a given motor (in revolutions per minute)","Move the cursor down on the display","Move the cursor left on the display","Move the cursor right on the display","Move the cursor up on the display","Play a given note (in hertz)","Input from an odometer (in meters)","Orange","An output destination for a program.","The different types of output modes a program might use.","Input from a pH sensor (in pH)","Input from a position sensor in a given axis (x, y, z)","Set the pressure of a given vacuum/pressurizer …","Engineering / Science sensor input modes Input from a …","Alternative output modes for standard output Printer …","Printer (float)","Printer (integer)","Input from a distance sensor (in meters)","Set the pressure of a given pump (in atmospheres)","RGB ","Input from a rain gauge (in millimeters)","Special input modes A random number","Red","Environment sensor input modes (These should typically be …","","Set the position of a given servo (in radians)","Write a character to the display","Set the cursor column on the display","Set the color of a given pixel on the display","Set the cursor row on the display","Set the polarity of a solenoid (0=off, 1=on)","Set the frequency of a given speaker (in hertz)","Set the volume of a given speaker (in percent)","Navigation input modes (These should typically be …","Standard error (ASCII character)","Standard error (float)","Standard error (integer)","Standard input modes (The standard interface is typically …","Standard input (float)","Standard input (integer)","Standard output modes Standard output (ASCII character)","Standard output (float)","Standard output (integer)","Robotics device output modes Set the position of a given …","Set the temperature of a given heating/cooling device …","Input from a thermometer (degrees K)","Input from a UV sensor (in watts per square meter)","","Display output modes Update the display","Set the position of a given valve (0=closed, 1=open)","Input from a volume sensor (in liters)","Input from a weight sensor (in kilograms)","White","Input from a wind direction sensor (in degrees)","Input from a wind speed sensor (in meters per second)","","","Yellow","","","","","","","","","","","","","","","","","","The channel to use for the input.","The channel to use for the output.","The time (in seconds) since the program started","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The mode of the input.","The mode of the output.","Create a new input source.","Create a new output destination.","","","","","","","","","A random number","Output to STDERR (ASCII character)","Output to STDERR (float)","Output to STDERR (integer)","Input from STDIN (ASCII character)","Input from STDIN (float)","Input from STDIN (integer)","Output to STDOUT (ASCII character)","Output to STDOUT (float)","Output to STDOUT (integer)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A trait for a target architecture to be compiled to.","Implement a compiler for the given target.","Compile the core variant of the machine code (must be …","","Compile the standard variant of the machine code (should …","","C Target","Compile the declaration of a procedure.","Compile an End instruction (with the matching If or While …","Get a value from the given input stream (mode + channel).","The string used for indentation.","C Target","The name of the target architecture.","Compile a CoreOp instruction.","Peek a value from the device connected to the program.","Poke a value to the device connected to the program.","The code after the function definitions.","The code after the program ends.","The code after each instruction.","The code before the function definitions.","The code before the program starts.","Put a value to the given output stream (mode + channel).","Compile a StandardOp instruction.","Whether or not the target architecture supports floating …","Whether or not the target architecture supports the given …","Whether or not the target architecture supports the given …","The version of the target architecture.","x86 Target","The type for the C target which implements the Target …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","The type for the C target which implements the Target …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","The type for the x86 target which implements the Target …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Store the inverse-cosine of the register (as a float) into …","Store the inverse-sine of the register (as a float) into …","Store the inverse-tangent of the register (as a float) …","Add the value pointed to on the tape to the register.","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Perform bitwise nand on the cell and the value pointed to …","Calls the nth function defined in the program, where n is …","Call a foreign function interface function.","A comment in the machine code (not in the compiled output).","The interpreter which runs the virtual machine program.","An individual core virtual machine instruction.","Execute a core instruction.","A program of only core virtual machine instructions.","Store the cosine of the register (as a float) into the …","The pointer is made equal to the value pointed to on the …","Create an input / output device for the virtual machine …","Divide the register by the value pointed to on the tape.","Divide the register by the value pointed to on the tape …","Begin an “else” conditional.","End a conditional.","An error generated by the virtual machine.","When the virtual machine attempts to get the program as …","Free the memory pointed to by the register.","Create a new function.","Get a value from an input source and store it in the …","Begin an “if the register is not zero” conditional.","Interpret the register’s value as a pointer to a cell. …","Make the register equal to 1 if the register is …","Make the register equal to the integer 1 if the register …","Move the pointer on the tape by a number of cells.","Multiply the register by the value pointed to on the tape.","Multiply the register by the value pointed to on the tape …","Get a value from the input interface / device and store it …","Write the value of the register to the output interface / …","Store the value of the register (as a float) to the power …","Write the value of the register to an output source.","The last “deref” operation is undone; the pointer is …","Store the remainder of the register and the value pointed …","Store the remainder of the register and the value pointed …","Store the value pointed to on the tape to the register.","Return from the current function.","Store the register to the value pointed to on the tape.","Set the register equal to a constant value.","Set the register equal to a constant floating point value.","Store the sine of the register (as a float) into the …","A device used for standard input and output. This simply …","The interpreter which runs the standard variant of virtual …","An individual standard virtual machine instruction.","A program of core and standard virtual machine …","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Store the tangent of the register (as a float) into the …","A device used for testing the compiler. This simply keeps …","Convert the register from an integer to a float.","Convert the register from a float to an integer.","When an instruction is unsupported for a given …","An interface to conveniently create virtual machine …","Store the value of the pointer to the register.","Begin a “while the register is not zero” loop.","","A function to reinterpret the bits of an integer as a …","A function to reinterpret the bits of a float as an …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FFI call to the device. This will get the FFI binding for …","","","","","Flatten a core program so that all of its functions are …","Flatten a core program so that all of its functions are …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the next input (from a given input source).","","","","Get the code for each function.","Get the code for each function.","Get the code outside of any functions.","Get the code outside of any functions.","Get the code outside of any functions, and the code for …","Get the code outside of any functions, and the code for …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","Create a new testing device with some given sample input.","","","","","","Get the output of the testing device as a string (ascii).","","","","","","","Peek at the next value in the FFI buffer for the FFI …","","","","Poke a value into the FFI buffer for the FFI function …","","","","Put the given value to the given output destination.","","","","","","","Run a core program using this interpreter and its device.","Run a core program using this interpreter and its device.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,71,0,71,1,1,1,1,1,71,0,1,71,0,71,71,1,0,71,1,1,1,1,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,15,15,8,15,8,15,8,15,8,15,8,15,15,15,15,8,15,8,15,15,8,8,15,8,15,15,8,15,8,15,15,15,15,8,8,8,8,15,15,8,15,8,15,8,15,8,15,8,96,97,98,99,100,101,102,103,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,96,97,98,99,100,101,102,116,117,118,119,120,121,122,106,122,105,123,115,123,115,104,105,106,107,108,109,110,111,112,113,114,123,116,117,118,119,120,121,116,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,21,0,0,0,0,0,0,0,21,21,0,21,0,0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,9,9,9,9,24,24,9,24,9,24,9,24,9,24,24,24,24,9,24,24,9,9,24,24,9,24,24,9,24,24,24,24,9,24,24,9,24,9,24,9,24,9,24,9,124,125,124,125,126,127,128,129,130,131,124,125,126,127,128,129,130,131,0,0,42,33,0,32,31,26,0,60,30,26,30,32,32,0,31,26,30,31,26,32,0,0,26,0,26,0,0,0,0,0,0,31,30,34,34,31,30,31,30,0,0,32,34,27,0,26,33,34,0,31,32,34,0,34,52,0,31,26,0,26,26,32,52,42,30,31,26,30,0,50,0,0,27,0,31,31,30,0,0,0,50,50,26,26,60,27,26,31,30,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,50,50,30,34,34,27,26,26,31,26,32,32,32,31,42,0,60,26,0,32,30,0,32,32,32,34,31,30,0,50,31,31,0,0,33,30,30,31,27,0,42,31,27,30,0,0,32,32,26,42,26,30,0,31,32,31,0,31,27,31,26,33,30,42,31,33,30,32,34,0,31,34,0,26,31,26,33,30,0,31,27,30,0,32,31,32,34,0,26,31,26,30,30,32,32,32,27,27,33,32,26,26,33,27,26,27,29,30,33,26,32,31,26,31,26,30,33,61,62,31,31,31,31,31,26,26,26,26,26,26,26,34,26,34,26,61,62,33,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,38,38,66,66,67,67,68,68,30,60,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,34,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,60,132,132,38,38,66,66,67,67,68,68,40,43,132,31,26,61,62,63,64,38,66,67,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,30,52,33,29,60,29,29,26,26,38,38,66,66,67,67,68,68,52,26,38,66,67,68,34,31,27,26,26,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,33,61,62,63,64,65,60,30,30,34,31,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,31,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,31,26,33,34,29,29,32,32,31,31,27,27,26,26,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,33,33,61,61,62,62,63,63,64,64,65,65,60,60,30,30,34,34,29,32,32,31,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,26,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,60,30,65,26,29,64,29,33,64,33,64,64,26,30,65,64,30,133,133,133,31,26,61,62,63,64,65,30,30,134,134,134,31,26,61,62,63,64,65,29,26,29,30,34,34,31,27,26,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,33,61,62,63,64,65,60,30,26,33,26,33,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,30,34,30,60,34,33,34,26,30,60,34,30,30,30,30,30,34,26,30,26,26,26,26,26,26,26,26,34,26,33,31,65,26,61,62,26,26,43,63,64,65,26,26,38,66,67,68,34,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,60,30,33,26,31,64,26,26,61,62,38,38,66,66,67,67,68,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,64,135,135,31,30,30,30,30,30,30,30,30,30,30,26,30,33,26,26,134,31,26,61,62,63,64,65,30,134,134,33,31,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,26,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,33,136,38,38,66,66,67,67,68,68,31,27,26,33,61,62,63,64,65,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,26,26,30,26,33,31,26,137,138,137,138,139,137,138,139,0,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,0,0,0,0,72,72,72,72,72,0,0,0,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,82,82,82,83,0,82,83,81,83,81,82,82,83,82,83,0,83,82,0,82,82,83,82,83,81,82,82,82,83,0,80,83,82,81,82,82,83,82,0,0,82,82,80,81,82,82,83,83,83,83,83,83,82,81,0,0,82,82,83,82,83,83,83,82,83,81,82,82,81,82,80,83,83,83,83,83,83,83,83,82,83,83,83,82,82,82,83,83,83,83,83,82,82,80,83,83,82,82,81,82,82,79,79,81,79,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,78,20,78,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,79,80,80,81,81,82,82,83,83,84,84,78,78,20,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,78,20,78,20,79,80,81,82,83,84,78,20,78,20,20,20,78,78,78,20,20,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,0,0,140,140,140,140,0,141,141,141,141,0,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,0,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,0,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,0,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,86,86,86,85,86,86,85,85,86,85,0,0,86,0,86,85,0,85,86,85,85,0,7,86,85,85,85,85,85,86,85,85,86,86,86,86,85,85,85,86,85,85,85,85,86,86,0,0,0,0,85,86,86,0,86,86,7,0,85,85,91,0,0,142,142,142,142,142,92,93,16,85,25,86,94,91,7,92,93,16,85,25,86,94,91,7,142,16,85,25,86,91,7,16,85,25,86,91,7,16,85,142,16,25,142,92,93,16,25,94,91,142,142,16,85,25,86,7,16,85,94,95,142,94,91,94,16,25,16,85,85,25,86,86,94,91,7,7,92,93,16,85,25,25,86,94,91,7,95,142,94,91,16,25,16,25,16,25,16,85,142,94,92,93,16,85,25,86,94,91,7,142,142,92,93,94,94,142,16,25,94,94,94,16,85,25,86,7,95,142,94,91,95,142,94,91,95,142,94,91,142,142,142,92,93,142,142,142,16,25,16,85,25,86,91,7,16,85,25,86,7,92,93,16,85,25,86,94,91,7,92,93,16,85,25,86,94,91,7,92,93,16,85,25,86,94,91,7,142],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[1,1],[[]],[2],0,[[],3],[[1,1],4],[[1,5],6],[[1,5],6],[7,1],[[]],[3,[[11,[[10,[8,9]]]]]],0,[[]],[12,4],0,[[12,12,3]],[8],[[1,1],[[11,[13]]]],0,[9,[[10,[1]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[15,3],[[10,[16,1]]]],[[]],[[]],[[]],[[]],[15,15],[8,8],[[]],[[]],[[15,15],13],[[8,8],13],0,[15,3],[[],15],[[15,15],4],[[8,8],4],[[],4],[[],4],[[15,5],6],[[15,5],6],[[8,5],6],[[8,5],6],[[]],[[]],[[15,3],[[11,[[10,[8,9]]]]]],[[15,17]],[[8,17]],[[]],[[]],[[15,12],4],[[[18,[8]]],15],[[15,8]],[[15,15],[[11,[13]]]],[[8,8],[[11,[13]]]],[19,8],[[19,20],8],[[21,19],8],[[15,9],[[10,[1]]]],[[]],[[]],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[22,2,3],21],[[]],[[]],[22,22],[[]],[[],22],[[22,5],6],[[22,5],6],[[]],[[22,12],11],[[22,12],[[11,[21]]]],[[22,12],[[11,[3]]]],[22,3],[[]],[[],22],[[22,21],[[10,[21,1]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[21,21],[[]],[[21,21],13],[21,21],[[21,21],4],[[],4],[[21,5],6],[[21,5],6],[[]],[[21,17]],[[]],[[21,23],21],[[21,21],[[11,[13]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[24,3],[[10,[25,1]]]],[[]],[[]],[[]],[[]],[24,24],[9,9],[[]],[[]],0,[24,3],[[],24],[[24,24],4],[[9,9],4],[[24,5],6],[[24,5],6],[[9,5],6],[[9,5],6],[[]],[15,24],[[]],[[24,3],[[11,[[10,[8,9]]]]]],[[]],[[]],[[24,12],4],[[[18,[9]]],24],[[24,8]],[[24,24],[[11,[13]]]],[[9,9],[[11,[13]]]],[[24,9],[[10,[1]]]],[[]],[[]],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[19,[11,[12]]],[[10,[26,2]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[27,[28,[27]]]],[[26,[28,[26]]],26],[[27,[28,[27]]]],[[29,30,19,31],[[10,[32]]]],[[30,29],[[10,[32]]]],[[[18,[33]]],33],[[26,[28,[26]]],26],[[32,34],32],[[31,34],31],[[26,[28,[34]]],26],[[31,[18,[26]]],26],[[26,[18,[26]]],26],[[30,[18,[30]]],30],[[26,[35,[33]],30,29],[[10,[4,32]]]],0,0,[[31,29],[[10,[4,32]]]],[[31,29],[[10,[36,32]]]],[[31,29],[[10,[37,32]]]],[[31,29],[[10,[2,32]]]],[[31,30],31],[[26,30],26],[[26,[39,[38]],[28,[26]]],26],[[26,38,[28,[26]]],26],[[26,[28,[26]]],26],[[26,[28,[26]]],26],[[26,[28,[26]]],26],[26,26],[[34,34]],[[26,[28,[26]]],26],[[34,34]],[[26,[28,[26]]],26],0,0,[4,33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[30,30,29],[[10,[4,32]]]],[[30,29],[[10,[4,32]]]],[[30,30,29],[[10,[4,32]]]],[[30,30,30,29],[[10,[4,32]]]],[[40,30,30,29],[[10,[4,32]]]],[[41,30,29],[[10,[4,32]]]],[[42,30,30,29],[[10,[4,32]]]],[[43,30,30,29],[[10,[4,32]]]],[[44,30,30,29],[[10,[4,32]]]],[[45,30,30,29],[[10,[4,32]]]],[[46,30,30,29],[[10,[4,32]]]],[[47,30,29],[[10,[4,32]]]],[[48,30,30,29],[[10,[4,32]]]],[[49,30,30,29],[[10,[4,32]]]],[[50,30,30,29],[[10,[4,32]]]],[[51,30,29],[[10,[4,32]]]],[[52,30,29],[[10,[4,32]]]],[[53,30,30,29],[[10,[4,32]]]],[[54,30,30,29],[[10,[4,32]]]],[[55,30,29],[[10,[4,32]]]],[[56,30,29],[[10,[4,32]]]],[[57,30,29],[[10,[4,32]]]],[[58,30,29],[[10,[4,32]]]],[[59,30,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,29],[[10,[4,32]]]],[[26,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,26,26,29],[[10,[4,32]]]],[[26,26,26,29],[[10,[4,32]]]],[[30,30,29],[[10,[4,32]]]],[[60,60],4],[[30,30,29],[[10,[4,32]]]],[34,34],[29,29],[32,32],[31,31],[27,27],[26,26],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[46,46],[47,47],[48,48],[49,49],[50,50],[51,51],[52,52],[53,53],[54,54],[55,55],[56,56],[57,57],[58,58],[59,59],[33,33],[61,61],[62,62],[63,63],[64,64],[65,65],[60,60],[30,30],[[],[[39,[38]]]],[[],[[39,[66]]]],[[],[[39,[67]]]],[[],[[39,[68]]]],[40,[[39,[67]]]],[41,[[39,[66]]]],[42,[[39,[67]]]],[43,[[39,[38]]]],[44,[[39,[67]]]],[45,[[39,[67]]]],[46,[[39,[67]]]],[47,[[39,[66]]]],[48,[[39,[67]]]],[49,[[39,[67]]]],[50,[[39,[67]]]],[51,[[39,[66]]]],[52,[[39,[66]]]],[53,[[39,[67]]]],[54,[[39,[67]]]],[55,[[39,[66]]]],[56,[[39,[66]]]],[57,[[39,[66]]]],[58,[[39,[66]]]],[59,[[39,[66]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[38,38],13],[[66,66],13],[[67,67],13],[[68,68],13],[[34,34],13],[[40,40],13],[[41,41],13],[[44,44],13],[[45,45],13],[[46,46],13],[[47,47],13],[[48,48],13],[[49,49],13],[[50,50],13],[[51,51],13],[[52,52],13],[[53,53],13],[[56,56],13],[[57,57],13],[[58,58],13],[[59,59],13],[[60,60],13],[[[0,[69,70]]],[[10,[[10,[15,24]],32]]]],[[[0,[69,70]]],[[10,[[10,[15,24]],32]]]],[[26,26,29,71],[[10,[32]]]],[[26,26,29,71],[[10,[32]]]],[[26,29,71],[[10,[32]]]],[[26,29,71],[[10,[32]]]],[[26,26,29,71],[[10,[32]]]],[[26,26,29,71],[[10,[32]]]],[[26,26,26,29,71],[[10,[32]]]],[[26,26,26,29,71],[[10,[32]]]],[[40,26,26,29,71],[[10,[32]]]],[[43,26,26,29,71],[[10,[32]]]],[[29,71],[[10,[32]]]],[[31,29,71],[[10,[32]]]],[[26,29,71],[[10,[32]]]],[[61,29,71],[[10,[32]]]],[[62,29,71],[[10,[32]]]],[[63,29,71],[[10,[32]]]],[[64,29,71],[[10,[32]]]],[[30,30,29,71],[[10,[32]]]],[[30,29,71],[[10,[32]]]],[[30,30,29,71],[[10,[32]]]],[[30,30,30,29,71],[[10,[32]]]],[[40,30,30,29,71],[[10,[32]]]],[[41,30,29,71],[[10,[32]]]],[[42,30,30,29,71],[[10,[32]]]],[[43,30,30,29,71],[[10,[32]]]],[[44,30,30,29,71],[[10,[32]]]],[[45,30,30,29,71],[[10,[32]]]],[[46,30,30,29,71],[[10,[32]]]],[[47,30,29,71],[[10,[32]]]],[[48,30,30,29,71],[[10,[32]]]],[[49,30,30,29,71],[[10,[32]]]],[[50,30,30,29,71],[[10,[32]]]],[[51,30,29,71],[[10,[32]]]],[[52,30,29,71],[[10,[32]]]],[[53,30,30,29,71],[[10,[32]]]],[[54,30,30,29,71],[[10,[32]]]],[[55,30,29,71],[[10,[32]]]],[[56,30,29,71],[[10,[32]]]],[[57,30,29,71],[[10,[32]]]],[[58,30,29,71],[[10,[32]]]],[[59,30,29,71],[[10,[32]]]],[[30,12],4],[[21,30,29,71],[[10,[32]]]],[[33,26,30,29],[[10,[32]]]],[[],29],[[],60],[[29,18]],[[29,19,60,30],[[10,[23,32]]]],[26,26],[[26,[28,[26]]],26],[[26,26],2],[[26,26],2],[26,2],[26,2],[[26,26],2],[[26,26],2],[[26,26,26],2],[[26,26,26],2],[[21,30,29,71],[[10,[32]]]],[[26,[28,[26]]],26],[[38,38],4],[[66,66],4],[[67,67],4],[[68,68],4],[[34,34],4],[[31,31],4],[[27,27],4],[[26,26],4],[[26,[28,[26]]],26],[[40,40],4],[[41,41],4],[[44,44],4],[[45,45],4],[[46,46],4],[[47,47],4],[[48,48],4],[[49,49],4],[[50,50],4],[[51,51],4],[[52,52],4],[[53,53],4],[[56,56],4],[[57,57],4],[[58,58],4],[[59,59],4],[[33,33],4],[[61,61],4],[[62,62],4],[[63,63],4],[[64,64],4],[[65,65],4],[[60,60],4],[[30,30],4],[[30,30,29],[[10,[4,32]]]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[31,31,29],[[10,[31,32]]]],[[31,29],[[10,[31,32]]]],[[31,31,29],[[10,[31,32]]]],[[31,31,31,29],[[10,[31,32]]]],[[31,29],[[10,[31,32]]]],[[40,31,31,29],[[10,[31,32]]]],[[41,31,29],[[10,[31,32]]]],[[42,31,31,29],[[10,[31,32]]]],[[43,31,31,29],[[10,[31,32]]]],[[44,31,31,29],[[10,[31,32]]]],[[45,31,31,29],[[10,[31,32]]]],[[46,31,31,29],[[10,[31,32]]]],[[47,31,29],[[10,[31,32]]]],[[48,31,31,29],[[10,[31,32]]]],[[49,31,31,29],[[10,[31,32]]]],[[50,31,31,29],[[10,[31,32]]]],[[51,31,29],[[10,[31,32]]]],[[52,31,29],[[10,[31,32]]]],[[53,31,31,29],[[10,[31,32]]]],[[54,31,31,29],[[10,[31,32]]]],[[55,31,29],[[10,[31,32]]]],[[56,31,29],[[10,[31,32]]]],[[57,31,29],[[10,[31,32]]]],[[58,31,29],[[10,[31,32]]]],[[59,31,29],[[10,[31,32]]]],[[31,31],31],[[26,31],26],[36,33],[[34,5],6],[[29,5],6],[[29,5],6],[[32,5],6],[[32,5],6],[[31,5],6],[[31,5],6],[[27,5],6],[[27,5],6],[[26,5],6],[[26,5],6],[[40,5],6],[[40,5],6],[[41,5],6],[[41,5],6],[[42,5],6],[[42,5],6],[[43,5],6],[[43,5],6],[[44,5],6],[[44,5],6],[[45,5],6],[[45,5],6],[[46,5],6],[[46,5],6],[[47,5],6],[[47,5],6],[[48,5],6],[[48,5],6],[[49,5],6],[[49,5],6],[[50,5],6],[[50,5],6],[[51,5],6],[[51,5],6],[[52,5],6],[[52,5],6],[[53,5],6],[[53,5],6],[[54,5],6],[[54,5],6],[[55,5],6],[[55,5],6],[[56,5],6],[[56,5],6],[[57,5],6],[[57,5],6],[[58,5],6],[[58,5],6],[[59,5],6],[[59,5],6],[[33,5],6],[[33,5],6],[[61,5],6],[[61,5],6],[[62,5],6],[[62,5],6],[[63,5],6],[[63,5],6],[[64,5],6],[[64,5],6],[[65,5],6],[[65,5],6],[[60,5],6],[[60,5],6],[[30,5],6],[[30,5],6],[[]],[72,34],[[]],[1,32],[[]],[[]],[[[39,[27]]],27],[73,27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[[18,[[28,[27]]]]],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[31,26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[4,60],[[]],[[64,[18,[2]]],65],[[26,[28,[26]]],26],[[29,30],18],[64,35],[[29,30,12],11],[[33,26,30,29],[[10,[[74,[2]],32]]]],[64,26],[[33,26,26,29],[[10,[30,32]]]],[64,[[11,[12]]]],[64,12],[[26,29],[[10,[[11,[60]],32]]]],[[30,30,[74,[2,30]],[75,[2]],29],[[10,[32]]]],[65,12],[64,30],[[30,29],[[11,[60]]]],[29,[[10,[3,32]]]],[29,[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[30,29,3],[[10,[3,32]]]],[[30,29],[[18,[2]]]],[29,[[10,[30,32]]]],[29,[[10,[30,32]]]],[[29,3],[[10,[30,32]]]],[[31,29,3],[[10,[30,32]]]],[[26,29,3],[[10,[30,32]]]],[[61,29,3],[[10,[30,32]]]],[[62,29,3],[[10,[30,32]]]],[[63,29,3],[[10,[30,32]]]],[[64,29,3],[[10,[30,32]]]],[[65,29,3],[[10,[30,32]]]],[[29,30,12],[[11,[30]]]],[[26,[28,[26]]],26],[[29,30,12],4],[[30,30,29],[[10,[4,32]]]],[34,4],[[34,17]],[[31,17]],[[27,17]],[[26,17]],[[40,17]],[[41,17]],[[44,17]],[[45,17]],[[46,17]],[[47,17]],[[48,17]],[[49,17]],[[50,17]],[[51,17]],[[52,17]],[[53,17]],[[56,17]],[[57,17]],[[58,17]],[[59,17]],[[33,17]],[[61,17]],[[62,17]],[[63,17]],[[64,17]],[[65,17]],[[60,17]],[[30,17]],[[26,[28,[26]]],26],[[33,26,26,26,29],[[10,[26,32]]]],[[26,[28,[26]],[28,[26]]],26],[37,33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[30,4],[34,4],[30,4],[60,4],[34,4],[[33,26,30,29],[[10,[4,32]]]],[34,4],[[26,29],[[10,[4,32]]]],[[30,30,29],[[10,[4,32]]]],[60,4],[34,4],[30,4],[[30,29],[[10,[4,32]]]],[[30,[75,[2]],29],[[10,[4,32]]]],[[30,29],[[10,[4,32]]]],[30,4],[34,4],[[26,[28,[26]]],26],[[12,30,30],30],[[19,31,[28,[26]]],26],[[18,[28,[26]]],26],[[19,64,[28,[26]]],26],[[[73,[12,64]],[28,[26]]],26],[[19,30,[28,[26]]],26],[[18,[28,[26]]],26],[[19,[28,[60]],[11,[30]],[28,[26]],[28,[26]]],26],[[18,[28,[26]]],26],[34,[[11,[72]]]],[[26,[28,[26]]],26],[[26,35,29],[[10,[26,32]]]],[[31,[18,[30]]],31],[[65,[18,[30]],29],[[10,[64,32]]]],[[26,[28,[26]]],26],0,0,[26,26],[[26,[28,[26]]],26],[67,43],[[2,[18,[30]],30],63],[[[11,[2]],18,30,[28,[26]]],64],[[2,[18,[2]],18,30,[28,[26]]],65],[26,26],[[26,[28,[26]]],26],[[38,38],[[11,[13]]]],[[66,66],[[11,[13]]]],[[67,67],[[11,[13]]]],[[68,68],[[11,[13]]]],[[34,34],[[11,[13]]]],[[40,40],[[11,[13]]]],[[41,41],[[11,[13]]]],[[44,44],[[11,[13]]]],[[45,45],[[11,[13]]]],[[46,46],[[11,[13]]]],[[47,47],[[11,[13]]]],[[48,48],[[11,[13]]]],[[49,49],[[11,[13]]]],[[50,50],[[11,[13]]]],[[51,51],[[11,[13]]]],[[52,52],[[11,[13]]]],[[53,53],[[11,[13]]]],[[56,56],[[11,[13]]]],[[57,57],[[11,[13]]]],[[58,58],[[11,[13]]]],[[59,59],[[11,[13]]]],[[60,60],[[11,[13]]]],[[30,29,[74,[30]]],[[10,[30,32]]]],[33,33],[[26,[28,[26]]],26],[[[11,[2]],18,30,[28,[26]]],31],[[64,71]],[[26,[28,[60]]],26],[[26,[28,[26]]],26],0,0,[[26,26,29],[[10,[30,32]]]],[[26,26,29],[[10,[30,32]]]],[[26,29],[[10,[30,32]]]],[[26,29],[[10,[30,32]]]],[[26,26,29],[[10,[30,32]]]],[[26,26,29],[[10,[30,32]]]],[[26,26,26,29],[[10,[30,32]]]],[[26,26,26,29],[[10,[30,32]]]],[[40,26,26,29],[[10,[30,32]]]],[[41,26,29],[[10,[30,32]]]],[[42,26,26,29],[[10,[30,32]]]],[[43,26,26,29],[[10,[30,32]]]],[[44,26,26,29],[[10,[30,32]]]],[[45,26,26,29],[[10,[30,32]]]],[[46,26,26,29],[[10,[30,32]]]],[[47,26,29],[[10,[30,32]]]],[[48,26,26,29],[[10,[30,32]]]],[[49,26,26,29],[[10,[30,32]]]],[[50,26,26,29],[[10,[30,32]]]],[[51,26,29],[[10,[30,32]]]],[[52,26,29],[[10,[30,32]]]],[[53,26,26,29],[[10,[30,32]]]],[[54,26,26,29],[[10,[30,32]]]],[[55,26,29],[[10,[30,32]]]],[[56,26,29],[[10,[30,32]]]],[[57,26,29],[[10,[30,32]]]],[[58,26,29],[[10,[30,32]]]],[[59,26,29],[[10,[30,32]]]],[[64,19]],[29,[[10,[32]]]],[[29,3],[[10,[32]]]],[[31,29,3],[[10,[31,32]]]],[[30,29,3],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29,30,76],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[26,26],[[30,29],30],[[[73,[2,33]]],33],[[[73,[12,26]]],26],[[26,[28,[26]]],26],[[12,30]],[[31,12,30]],[[26,12,30]],[[61,12,30]],[[62,12,30]],[[63,12,30]],[[64,12,30]],[[65,12,30]],[[30,12,30],30],[[[35,[2]],[35,[30]]]],[[[35,[2]],[35,[30]]]],[[[28,[60]],19],33],[[31,[18,[2]]],31],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[26,29],[[10,[26,32]]]],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[[18,[33]]],33],[29,[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,29],[[10,[32]]]],[[26,29],[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,26,26,29],[[10,[32]]]],[[26,26,26,29],[[10,[32]]]],[[31,29],[[10,[32]]]],[[27,29],[[10,[32]]]],[[26,29],[[10,[32]]]],[[33,26,26,29],[[10,[32]]]],[[61,29],[[10,[32]]]],[[62,29],[[10,[32]]]],[[63,29],[[10,[32]]]],[[64,29],[[10,[32]]]],[[65,29],[[10,[32]]]],[[30,29],[[10,[32]]]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[26,66],26],[19,26],[[[35,[2]],2],[[11,[3]]]],[[26,[28,[26]]],26],[[],33],[[31,[28,[27]]],31],[[26,[28,[27]]],26],0,0,0,0,0,0,0,0,0,[[]],[[]],[72,72],[[]],[[72,72],13],0,[[72,72],4],[[],4],0,[[72,5],6],[[]],[[72,12],2],[[72,17]],[[]],0,0,0,[19,[[10,[[10,[15,24]],2]]]],[[19,[11,[12]]],[[10,[26,2]]]],[19,[[10,[26,2]]]],[19,[[10,[[10,[16,25]],2]]]],[[72,72],[[11,[13]]]],[[]],[[],10],[[],10],[[],14],0,0,0,[[]],[[]],[77,77],[[]],[[77,77],13],[[77,77],4],[[],4],[[77,5],6],[[77,5],6],[[]],[[77,17]],0,[[]],0,[[2,3,3],77],0,[[77,77],[[11,[13]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],78],[79,79],[80,80],[81,81],[82,82],[83,83],[84,84],[78,78],[20,20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[79,79],13],[[80,80],13],[[81,81],13],[[82,82],13],[[83,83],13],[[84,84],13],[[78,78],13],[[20,20],13],[[79,79],4],[[80,80],4],[[81,81],4],[[82,82],4],[[83,83],4],[[84,84],4],[[78,78],4],[[20,20],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[79,5],6],[[79,5],6],[[80,5],6],[[80,5],6],[[81,5],6],[[81,5],6],[[82,5],6],[[82,5],6],[[83,5],6],[[83,5],6],[[84,5],6],[[84,5],6],[[78,5],6],[[78,5],6],[[20,5],6],[[20,5],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[79,17]],[[80,17]],[[81,17]],[[82,17]],[[83,17]],[[84,17]],[[78,17]],[[20,17]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[82,3],78],[[83,3],20],[[79,79],[[11,[13]]]],[[80,80],[[11,[13]]]],[[81,81],[[11,[13]]]],[[82,82],[[11,[13]]]],[[83,83],[[11,[13]]]],[[84,84],[[11,[13]]]],[[78,78],[[11,[13]]]],[[20,20],[[11,[13]]]],[[],78],[[],20],[[],20],[[],20],[[],78],[[],78],[[],78],[[],20],[[],20],[[],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],0,0,[16,[[10,[2,2]]]],[[85,[18,[85]],[18,[3]],3,3],[[10,[2,2]]]],[25,[[10,[2,2]]]],[[86,[18,[85]],[18,[3]],3,3],[[10,[2,2]]]],0,[3,2],[[85,[11,[3]]],2],[78,[[10,[2,2]]]],[[],[[11,[2]]]],0,[[],12],[85,2],[[],[[10,[2,2]]]],[[],[[10,[2,2]]]],[[[18,[87]]],[[11,[2]]]],[4,[[11,[2]]]],[[],[[11,[2]]]],[[[18,[87]]],[[11,[2]]]],[4,[[11,[2]]]],[20,[[10,[2,2]]]],[86,[[10,[2,2]]]],[[],4],[78,4],[20,4],[[],12],0,0,[[]],[[]],[[88,3],2],[[],88],[[88,85,[11,[3]]],2],[[]],[[88,78],[[10,[2,2]]]],[[]],[88,12],[[88,85],2],[88,[[10,[2,2]]]],[88,[[10,[2,2]]]],[[88,[18,[87]]],[[11,[2]]]],[[88,4],[[11,[2]]]],[88,[[11,[2]]]],[[88,4],[[11,[2]]]],[[88,20],[[10,[2,2]]]],[[88,86],[[10,[2,2]]]],[88,4],[[88,78],4],[[88,20],4],[[],10],[[],10],[[],14],[88,12],0,[[]],[[]],[[89,3],2],[[],89],[[89,85,[11,[3]]],2],[[]],[[89,78],[[10,[2,2]]]],[[]],[89,12],[[89,85],2],[89,[[10,[2,2]]]],[89,[[10,[2,2]]]],[[89,[18,[87]]],[[11,[2]]]],[[89,4],[[11,[2]]]],[89,[[11,[2]]]],[[89,4],[[11,[2]]]],[[89,20],[[10,[2,2]]]],[[89,86],[[10,[2,2]]]],[89,4],[[89,78],4],[[89,20],4],[[],10],[[],10],[[],14],[89,12],0,[[]],[[]],[[90,3],2],[[],90],[[90,85,[11,[3]]],2],[[]],[[90,78],[[10,[2,2]]]],[[]],[90,12],[[90,85],2],[90,[[10,[2,2]]]],[90,[[10,[2,2]]]],[[90,[18,[87]]],[[11,[2]]]],[[90,4],[[11,[2]]]],[90,[[11,[2]]]],[[90,4],[[11,[2]]]],[[90,20],[[10,[2,2]]]],[[90,86],[[10,[2,2]]]],[90,4],[[90,78],4],[[90,20],4],[[],10],[[],10],[[],14],[90,12],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[91,77]],[37,36],[36,37],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[16,16],[85,85],[25,25],[86,86],[91,91],[7,7],[[]],[[]],[[]],[[]],[[]],[[]],[[16,16],13],[[85,85],13],[[],[[10,[16,25]]]],[16,[[10,[16,25]]]],[25,[[10,[16,25]]]],[12],[[],[[92,[91]]]],[[],[[93,[91]]]],[[],16],[[],25],[[],94],[[],91],[[]],[[]],[[16,16],4],[[85,85],4],[[25,25],4],[[86,86],4],[[7,7],4],[[],4],[[],4],0,[[77,[11,[[18,[37]]]]],[[10,[2]]]],[77,[[10,[7]]]],[[94,77,[11,[[18,[37]]]]],[[10,[2]]]],[[91,77,[11,[[18,[37]]]]],[[10,[2]]]],0,[16,16],[25,25],[[16,5],6],[[85,5],6],[[85,5],6],[[25,5],6],[[86,5],6],[[86,5],6],[[94,5],6],[[91,5],6],[[7,5],6],[[7,5],6],[[]],[[]],[[]],[[]],[[]],[16,25],[[]],[[]],[[]],[[]],[78,[[10,[37,2]]]],[78],[[94,78],[[10,[37,2]]]],[[91,78],[[10,[37,2]]]],[16,[[74,[87,[18,[85]]]]]],[25,[[74,[87,[18,[86]]]]]],[16,[[18,[85]]]],[25,[[18,[86]]]],[16],[25],[[16,17]],[[85,17]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[23],[95,[[92,[95]]]],[95,[[93,[95]]]],[19,94],[[[18,[37]]],94],[85],[[16,85]],[[25,85]],0,[94,2],[94,[[18,[37]]]],[[16,16],[[11,[13]]]],[[85,85],[[11,[13]]]],[[25,25],[[11,[13]]]],[[86,86],[[11,[13]]]],[[7,7],[[11,[13]]]],[[],[[10,[37,2]]]],[[],[[10,[7]]]],[94,[[10,[37,2]]]],[91,[[10,[37,2]]]],[37,[[10,[2]]]],[[],[[10,[7]]]],[[94,37],[[10,[2]]]],[[91,37],[[10,[2]]]],[[37,20],[[10,[2]]]],[20],[[94,37,20],[[10,[2]]]],[[91,37,20],[[10,[2]]]],[[]],[[]],[[]],[[[92,[95]],16],[[10,[95,2]]]],[[[93,[95]],25],[[10,[95,2]]]],[[]],[37],[86,[[10,[7]]]],[[16,86],[[10,[7]]]],[[25,86],[[10,[7]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[]]],"c":[],"p":[[4,"Error"],[3,"String"],[15,"usize"],[15,"bool"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"CoreOp"],[4,"StandardOp"],[4,"Result"],[4,"Option"],[15,"str"],[4,"Ordering"],[3,"TypeId"],[3,"CoreProgram"],[3,"CoreProgram"],[8,"Hasher"],[3,"Vec"],[8,"ToString"],[3,"Output"],[4,"Location"],[3,"Globals"],[15,"isize"],[3,"StandardProgram"],[3,"StandardProgram"],[4,"Expr"],[4,"Declaration"],[8,"Into"],[3,"Env"],[4,"Type"],[4,"ConstExpr"],[4,"Error"],[4,"Pattern"],[4,"Annotation"],[15,"slice"],[15,"f64"],[15,"i64"],[8,"AssignOp"],[3,"Box"],[3,"Add"],[3,"Negate"],[4,"Arithmetic"],[3,"Assign"],[3,"BitwiseAnd"],[3,"BitwiseNand"],[3,"BitwiseNor"],[3,"BitwiseNot"],[3,"BitwiseOr"],[3,"BitwiseXor"],[4,"Comparison"],[3,"Get"],[4,"Put"],[3,"And"],[3,"Or"],[3,"Not"],[3,"New"],[3,"Delete"],[3,"Tag"],[3,"Data"],[4,"Mutability"],[3,"CoreBuiltin"],[3,"StandardBuiltin"],[3,"FFIProcedure"],[3,"Procedure"],[3,"PolyProcedure"],[8,"UnaryOp"],[8,"BinaryOp"],[8,"TernaryOp"],[8,"Sized"],[8,"Clone"],[8,"AssemblyProgram"],[3,"SourceCodeLocation"],[3,"BTreeMap"],[3,"HashMap"],[3,"HashSet"],[8,"Fn"],[3,"FFIBinding"],[3,"Input"],[4,"Axis"],[4,"Direction"],[4,"Color"],[4,"InputMode"],[4,"OutputMode"],[3,"Channel"],[4,"CoreOp"],[4,"StandardOp"],[15,"i32"],[3,"C"],[3,"MyOS"],[3,"X86"],[3,"StandardDevice"],[3,"CoreInterpreter"],[3,"StandardInterpreter"],[3,"TestingDevice"],[8,"Device"],[13,"Compare"],[13,"IsGreater"],[13,"IsGreaterEqual"],[13,"IsLess"],[13,"IsLessEqual"],[13,"IsEqual"],[13,"IsNotEqual"],[13,"GetAddress"],[13,"Move"],[13,"Copy"],[13,"Index"],[13,"Add"],[13,"Sub"],[13,"Mul"],[13,"Div"],[13,"Rem"],[13,"DivRem"],[13,"And"],[13,"Or"],[13,"PopFrom"],[13,"Array"],[13,"BitwiseNand"],[13,"BitwiseXor"],[13,"BitwiseOr"],[13,"BitwiseNor"],[13,"BitwiseAnd"],[13,"Global"],[13,"PushTo"],[13,"IsGreater"],[13,"IsLess"],[13,"Pow"],[13,"Add"],[13,"Sub"],[13,"Mul"],[13,"Div"],[13,"Rem"],[8,"Compile"],[8,"GetSize"],[8,"GetType"],[8,"Simplify"],[8,"TypeCheck"],[13,"MismatchedTypes"],[13,"MismatchedMutability"],[13,"NonExhaustivePatterns"],[8,"CompiledTarget"],[8,"Architecture"],[8,"VirtualMachineProgram"]]}\
+"sage":{"doc":"The Sage Programming Language","t":"RRRAAAAAAACICCCCCCECCCCCCCCCNNNNNNLLLLLAKLLLLLKALKALKLAKLLLLLNNNNNNNNNNNNNNEDNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMDLLLLLLLLLLLLLLLLLLLLLRNRRRRRRRNNENRRLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNEDNNNNLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMFDNNDNNNENNNNNNENNNNNNDININDDDDDDNNSSNNNNEINNNENNNDNNSDNNENNDNNNNNNNNNDNEENDNNNDIINNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNENSDNNDNNNNNNDNNNDENNNNNDNNNNDENNNNNSINNNDNNNNNNNNNNNSDNNINNNNNENNNINNNSINNNNNNNNNNNNNNNLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMDLLLLLMLLMLLLLLMMMFFFFLLLLLAADLLLLLLLLLLLMLMLMLLLLLLNNNNENNNNNNNNNNDNNENNNNNNNNNNENNNNNNNNDENNNNNNNNNNNNNNDENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIILLLLAKKKLKKKKLLLLLKAKKKKKADLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNDENDNNINNNNENNNNNNNNNNNNNNNNNNNNNNNNDDEDNNNDNNNINNLFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLMKLLLMLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLMLLLLLLLLLLLLLLLKLLMLLLLLLLKLLLKLLLKLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["LOGO","LOGO_WITH_COLOR","NULL","asm","frontend","lir","parse","side_effects","targets","vm","A","AssemblyProgram","B","C","CoreOp","CoreProgram","D","E","Error","F","FP","GP","Globals","Location","REGISTERS","SP","StandardOp","StandardProgram","UndefinedGlobal","UndefinedLabel","Unexpected","Unmatched","UnsupportedInstruction","VirtualMachineError","borrow","borrow_mut","clone","clone_into","comment","core","current_instruction","eq","fmt","fmt","from","from","get_op","globals","into","is_defined","location","log_instructions_after","op","partial_cmp","std","std_op","to_owned","to_string","try_from","try_into","type_id","Add","And","Array","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Call","CallLabel","Comment","Compare","Copy","CoreOp","CoreProgram","Dec","Div","DivRem","Else","End","Fn","Get","GetAddress","Global","If","Inc","Index","IsEqual","IsGreater","IsGreaterEqual","IsLess","IsLessEqual","IsNotEqual","Many","Move","Mul","Neg","Next","Not","Or","Pop","PopFrom","Prev","Push","PushTo","Put","Rem","Return","Set","SetLabel","Sub","Swap","While","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","code","current_instruction","default","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","get_op","hash","hash","into","into","is_defined","new","op","partial_cmp","partial_cmp","push_string","put_string","stack_alloc_string","std_op","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","a","a","a","a","a","a","a","addr","b","b","b","b","b","b","b","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","name","offset","size","size","size","size","sp","sp","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","Globals","add_global","borrow","borrow_mut","clone","clone_into","default","fmt","fmt","from","get_global","get_global_location","get_global_size","get_size","into","new","resolve","to_owned","to_string","try_from","try_into","type_id","A","Address","B","C","D","E","F","FP","GP","Global","Indirect","Location","Offset","REGISTERS","SP","borrow","borrow_mut","clone","clone_into","cmp","deref","eq","equivalent","fmt","fmt","from","hash","into","offset","partial_cmp","to_owned","to_string","try_from","try_into","type_id","ACos","ASin","ATan","Add","Alloc","Call","CoreOp","Cos","Div","Free","IsGreater","IsLess","Mul","Neg","Pow","Rem","Set","Sin","Sqrt","StandardOp","StandardProgram","Sub","Tan","ToFloat","ToInt","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","code","current_instruction","default","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_op","into","into","is_defined","new","op","partial_cmp","partial_cmp","std_op","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","a","a","b","b","dst","dst","dst","dst","dst","dst","dst","dst","src","src","src","src","src","src","parse","Add","Add","Alt","And","Annotated","Annotated","Annotated","Annotation","Any","Any","Apply","Apply","ApplyNonProc","ApplyNonTemplate","Arithmetic","Array","Array","Array","As","As","AssemblyError","Assign","AssignOp","AssignOp","BinaryOp","BinaryOp","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Bool","Bool","COMPILER_GENERATED","CONSTANT","Cell","Cell","Char","Char","Comparison","Compile","CompilePolyProc","CompilerGenerated","Const","ConstExpr","ConstExpr","ConstExpr","Constant","CoreBuiltin","CoreBuiltin","CouldntSimplify","DEAD_CODE","Data","DeadCode","Debug","Declaration","Declare","Declare","Delete","Deref","DerefMut","DerefNonPointer","Display","Divide","Enum","EnumUnion","EnumUnion","EnumUnion","Env","Equal","Error","Expr","ExternProc","FFIProcedure","FFIProcedure","Float","Float","Get","GetSize","GetType","GreaterThan","GreaterThanOrEqual","If","IfLet","Immutable","Impl","Index","Int","Int","InvalidAs","InvalidAssignOp","InvalidAssignOpTypes","InvalidBinaryOp","InvalidBinaryOpTypes","InvalidConstExpr","InvalidIndex","InvalidMatchExpr","InvalidMonomorphize","InvalidPatternForExpr","InvalidPatternForType","InvalidRefer","InvalidTemplateArgs","InvalidTernaryOp","InvalidTernaryOpTypes","InvalidUnaryOp","InvalidUnaryOpTypes","LIVE_CODE","LessThan","LessThanOrEqual","Let","Location","Many","Many","Many","Match","Member","Member","MemberNotFound","MismatchedMutability","MismatchedTypes","Monomorphize","Multiply","Mutability","Mutable","NONE","Negate","NegativeArrayLength","Never","New","NonExhaustivePatterns","NonIntegralConst","NonSymbol","None","None","None","Not","NotEqual","Null","Of","Or","Pattern","Pointer","Pointer","Poly","PolyProc","PolyProc","PolyProcedure","Power","Proc","Proc","Proc","Procedure","Put","RecursionDepthConst","RecursionDepthTypeEquality","Refer","Remainder","Return","SIMPLIFY_RECURSION_LIMIT","Simplify","SizeOfExpr","SizeOfTemplate","SizeOfType","StandardBuiltin","StandardBuiltin","StaticVar","Struct","Struct","Struct","Struct","Subtract","Symbol","Symbol","Symbol","SymbolNotDefined","TEMPORARY","Tag","Template","Temporary","TernaryOp","TernaryOp","Tuple","Tuple","Tuple","Tuple","Type","Type","Type","Type","TypeCheck","TypeNotDefined","TypeOf","TypeRedefined","USER_GENERATED","UnaryOp","UnaryOp","Union","Union","Union","Unit","UnsizedType","UnsupportedOperation","UnusedExpr","Var","VarPat","Variant","VariantNotFound","When","While","Wildcard","add","add","add_assign","add_associated_const","add_monomorphized_associated_consts","alt","and","annotate","annotate","annotate","app","app","apply","are_patterns_exhaustive","args","args","as_bool","as_float","as_int","as_symbol","as_type","as_type","assign","assign_op","bitand","bitnand","bitnor","bitnot","bitor","bitor","bitor_assign","bitxor","body","body","bool","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_apply_exprs","can_cast_to","can_decay_to","can_decay_to","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_box","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile","compile_expr","compile_expr","compile_expr","compile_expr","compile_expr","compile_expr","compile_expr","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","compile_types","contains_symbol","debug","declare_let_bind","default","default","define_types","define_var","deref","deref_mut","display","display","display","display","display","display","display","display","display","div","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equals","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","eval","field","field","float","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_mono","ge","get_all_associated_consts","get_args","get_associated_const","get_bindings","get_body","get_branch_result_type","get_common_name","get_mangled_name","get_method_call_mutability","get_monomorph_template_args","get_name","get_ret","get_self_param_mutability","get_size","get_size","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_size_checked","get_template_params","get_type","get_type","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_checked","get_type_of_associated_const","gt","has_associated_const","has_element_type","has_location","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","idx","if_let_pattern","if_then","int","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_atomic","is_compiler_generated","is_concrete","is_constant","is_dead_code","is_exhaustive","is_location","is_method_call","is_monomorph_of","is_mutable","is_none","is_poly","is_recursive","is_recursive_helper","is_self_param_reference","is_simple","is_temporary","le","let_bind","let_const","let_consts","let_proc","let_procs","let_type","let_types","let_var","let_vars","location","lt","match_pattern","monomorphize","monomorphize","mul","name","name","neg","neq","new","new","new","new","not","or","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","perform_template_applications","pointer","pow","proc","push_label","refer","rem","ret","ret","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","return_type","set_common_name","simplify","simplify_checked","simplify_checked","simplify_checked","simplify_until_atomic","simplify_until_concrete","simplify_until_has_members","simplify_until_has_variants","simplify_until_matches","simplify_until_poly","simplify_until_simple","simplify_until_type_checks","simplify_until_union","size_of","strip_template","struct_","structure","sub","substitute","substitute","substitute","substitute","substitute","substitute","substitute","substitute","substitute","substitute_types","substitute_types","sym","template","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","transform_method_call","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tup","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_check","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unop","var","variant_index","while_loop","wildcard","with","with","expected","expected","expr","expr","expr","found","found","patterns","SourceCodeLocation","borrow","borrow_mut","clone","clone_into","cmp","column","eq","equivalent","filename","fmt","from","get_code","hash","into","length","line","offset","parse_asm","parse_frontend","parse_lir","parse_vm","partial_cmp","to_owned","try_from","try_into","type_id","ffi","io","FFIBinding","borrow","borrow_mut","clone","clone_into","cmp","eq","equivalent","fmt","fmt","from","hash","input_cells","into","name","new","output_cells","partial_cmp","to_owned","to_string","try_from","try_into","type_id","Accelerometer","Altimeter","AnalogPin","AnalogPin","Axis","Barometer","Bell","Black","Blower","Blue","BlueLight","Brightness","Brightness","Button","Buzzer","Channel","ClearDisplay","Clock","Color","Compass","ConductivitySensor","Cooler","Custom","Custom","Cyan","DPad","DepthSensor","DigitalPin","DigitalPin","Direction","Down","Fan","FlowSensor","Green","GreenLight","Gyroscope","Heater","Humidity","Input","InputMode","JoyStick","Keyboard","Left","Magenta","Magnetometer","Microphone","MotorSpeed","MoveCursorDown","MoveCursorLeft","MoveCursorRight","MoveCursorUp","Note","Odometer","Orange","Output","OutputMode","PHSensor","Position","Pressure","PressureGauge","PrinterChar","PrinterFloat","PrinterInt","Proximity","Pump","RGB","RainGauge","Random","Red","RedLight","Right","Servo","SetCursorChar","SetCursorColumn","SetCursorPixel","SetCursorRow","Solenoid","SpeakerFrequency","SpeakerVolume","Speedometer","StderrChar","StderrFloat","StderrInt","StdinChar","StdinFloat","StdinInt","StdoutChar","StdoutFloat","StdoutInt","StepperMotor","Temperature","Thermometer","UVSensor","Up","UpdateDisplay","Valve","VolumeSensor","WeightSensor","White","WindDirection","WindSpeed","X","Y","Yellow","Z","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","channel","channel","clock","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hash","hash","hash","hash","hash","hash","hash","hash","into","into","into","into","into","into","into","into","mode","mode","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","random","stderr_char","stderr_float","stderr_int","stdin_char","stdin_float","stdin_int","stdout_char","stdout_float","stdout_int","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","Architecture","CompiledTarget","build_core","build_op","build_std","build_std_op","c","declare_proc","end","get","indentation","name","op","peek","poke","post_funs","postlude","postop","pre_funs","prelude","put","sage_os","std_op","supports_floats","supports_input","supports_output","version","x86","C","borrow","borrow_mut","declare_proc","default","end","from","get","into","name","op","peek","poke","post_funs","postlude","postop","prelude","put","std_op","supports_floats","supports_input","supports_output","try_from","try_into","type_id","version","SageOS","borrow","borrow_mut","declare_proc","default","end","from","get","into","name","op","peek","poke","post_funs","postlude","postop","prelude","put","std_op","supports_floats","supports_input","supports_output","try_from","try_into","type_id","version","X86","borrow","borrow_mut","declare_proc","default","end","from","get","into","name","op","peek","poke","post_funs","postlude","postop","prelude","put","std_op","supports_floats","supports_input","supports_output","try_from","try_into","type_id","version","ACos","ASin","ATan","Add","Add","Alloc","BitwiseNand","Call","Call","Comment","CoreInterpreter","CoreOp","CoreOp","CoreProgram","Cos","Deref","Device","Div","Div","Else","End","Error","ExpectedCore","Free","Function","Get","If","Index","IsNonNegative","IsNonNegative","Move","Mul","Mul","Peek","Poke","Pow","Put","Refer","Rem","Rem","Restore","Return","Save","Set","Set","Sin","StandardDevice","StandardInterpreter","StandardOp","StandardProgram","Sub","Sub","Tan","TestingDevice","ToFloat","ToInt","UnsupportedInstruction","VirtualMachineProgram","Where","While","add_binding","as_float","as_int","begin_else","begin_function","begin_if","begin_while","bitwise_nand","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","code","code","code","comment","default","default","default","default","default","default","deref","end","eq","eq","eq","eq","eq","equivalent","equivalent","ffi","ffi_call","ffi_call","ffi_call","ffi_call","ffi_channel","flatten","flatten","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get","get","get","get","get_functions","get_functions","get_main","get_main","get_main_and_functions","get_main_and_functions","hash","hash","index","input","into","into","into","into","into","into","into","into","into","is_non_negative","move_pointer","new","new","new","new_raw","op","op","op","output","output_str","output_vals","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","peek","peek","peek","peek","poke","poke","poke","poke","put","put","put","put","refer","restore","ret","run","run","save","set_register","std_op","std_op","std_op","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","where_is_pointer"],"q":[[0,"sage"],[10,"sage::asm"],[61,"sage::asm::core"],[163,"sage::asm::core::CoreOp"],[231,"sage::asm::globals"],[253,"sage::asm::location"],[288,"sage::asm::std"],[353,"sage::asm::std::StandardOp"],[371,"sage::frontend"],[372,"sage::lir"],[1551,"sage::lir::Error"],[1559,"sage::parse"],[1586,"sage::side_effects"],[1588,"sage::side_effects::ffi"],[1611,"sage::side_effects::io"],[1877,"sage::targets"],[1905,"sage::targets::c"],[1931,"sage::targets::sage_os"],[1957,"sage::targets::x86"],[1983,"sage::vm"]],"d":["The UNICODE character art for the logo of the language.","The UNICODE character art for the logo of the language, …","The value of the NULL pointer constant.","Assembly Module","","LIR (Low Intermediate Representation) Module","Parsing Module","","Targets Module","Virtual Machine Module","","A frontend to both the CoreProgram and StandardProgram …","","","","","","","An error generated by assembling some assembly language …","","","","","","","","","","The given global was not defined.","The given label was not defined.","The given instruction was not expected, or cannot be used …","The given instruction did not have a matching “end”. …","Is this standard assembly operation supported by the …","An error generated by the virtual machine.","","","","","Insert a comment into the program.","Core Assembly Variant","Get the current instruction number.","","","","","Returns the argument unchanged.","Get the operation at the given instruction number.","","Calls U::from(self).","Is the given label defined yet in the operations? I.E., …","Assembly Memory Location","Log all the instructions after the given instruction …","Insert a core operation into the program.","","Standard Assembly Variant","Attempt to insert a standard operation into the program. …","","","","","","Add an integer value from a source location to a …","Logical “and” a destination with a source value.","Store a list of values at a source location. Then, store …","","","","","","","Get a value in memory and call it as a label ID.","Call a function with a given label.","","Store the comparison of “a” and “b” in a …","Copy a number of cells from a source referenced location …","A core instruction of the assembly language. These are …","An assembly program composed of core instructions, which …","Decrement the integer value of a location.","Divide a destination location by a source value.","Divide a destination location by a source value. Store the …","Add an “else” clause to an “if the value is not zero…","Terminate a function declaration, a while loop, an if …","Declare a new label.","Get a value from the input device / interface and store it …","Get the address of a location, and store it in a …","Declare a global variable.","Begin an “if the value is not zero” statement over a …","Increment the integer value of a location.","Get the address of a location indexed by an offset stored …","Perform dst = a == b.","Perform dst = a > b.","Perform dst = a >= b.","Perform dst = a < b.","Perform dst = a <= b.","Perform dst = a != b.","Many instructions to execute; conveniently grouped …","Copy a value from a source location to a destination …","Multiply a destination location by a source value.","Negate an integer.","Make this pointer point to the next cell (or the nth next …","Replace a value in memory with its boolean complement.","Logical “or” a destination with a source value.","Pop a number of cells from the stack and store it in a …","Pop a number of cells from a specified stack and store it …","Make this pointer point to the previous cell (or the nth …","Push a number of cells starting at a memory location on …","Push a number of cells starting at a memory location onto …","Put a value from a source register to the output device / …","Store the remainder of the destination modulus the source …","Return from the current function.","Set the value of a register, or any location in memory, to …","Set the value of a register, or any location in memory, to …","Subtract a source integer value from a destination …","Swap the values of two locations.","Begin a “while the value is not zero” loop over a …","Assemble a program of core assembly instructions into the …","","","","","","","","","","","The list of core assembly instructions in the program.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","Create a new program of core assembly instructions.","","","","Push a string literal as UTF-8 to the stack.","Put a string literal as UTF-8 to the output device.","Allocate a string on the stack, and store its address in a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A lookup for all the global variables in an assembly …","Add a global variable to the list of globals.","","","","","Create a new empty Globals lookup.","","","Returns the argument unchanged.","Get the location, and size of a global variable.","Get the location of a global variable.","Get the size of a global variable. This is the number of …","Get the size of the global variables. This is the number …","Calls U::from(self).","Create a new empty Globals lookup.","Resolve the global variables in a location to produce an …","","","","","","The “A” general purpose register.","A fixed position in the tape (a constant address known at …","The “B” general purpose register.","The “C” general purpose register.","The “D” general purpose register.","The “E” general purpose register.","The “F” general purpose register.","The frame pointer register.","The Global Pointer register. This is used to access global …","A global variable.","Use the value of a cell on the tape as an address. For …","A location in memory (on the tape of the virtual machine).","Go to a position in memory, and then move the pointer …","","The stack pointer register.","","","","","","Get the location of the value pointed to by this location.","","","","","Returns the argument unchanged.","","Calls U::from(self).","Get the location offset by a constant number of cells from …","","","","","","","Perform inverse Cos on a cell (float) and store the result …","Perform inverse Sin on a cell (float) and store the result …","Perform inverse Tan on a cell (float) and store the result …","Add the source cell (float) to the destination cell …","Take the value in the operand cell. Allocate that number …","Call a foreign function.","Execute a core instruction.","Perform Cos on a cell (float) and store the result in the …","Divide the destination cell (float) by the source cell …","Free the memory allocated at the address stored in the …","Perform dst = a > b.","Perform dst = a < b.","Multiply the source cell (float) by the destination cell …","Negate the value of a cell (float) and store the result in …","Raise a cell (float) to the power of another cell (float).","Perform the modulo operation on the destination cell …","Set the value of a cell to a constant float.","Perform Sin on a cell (float) and store the result in the …","Take the square root of a cell (float).","A standard instruction of the assembly language. These are …","A program composed of standard instructions, which can be …","Subtract the source cell (float) from the destination cell …","Perform Tan on a cell (float) and store the result in the …","Take the integer value stored in a cell and store the …","Take the float value stored in a cell and store the …","Assemble the program into a virtual machine program.","","","","","","","","","The list of standard assembly instructions in the program.","Get the current instruction number.","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Get the operation at the given instruction number.","Calls U::from(self).","Calls U::from(self).","Is the given label defined yet in the operations?","Create a new program of core assembly instructions.","Add a core operation to the program.","","","Add a standard operation to the program.","","","","","","","","","","","The first cell in the comparison (left hand side).","The first cell in the comparison (left hand side).","The second cell in the comparison (right hand side).","The second cell in the comparison (right hand side).","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The destination cell.","The source cell.","The source cell.","The source cell.","The source cell.","The source cell.","The source cell.","","","","","A boolean “And” operation between two values.","An error with some annotation about the source code that …","","An expression along with data about its source code …","An annotation for metadata about an LIR expression. This …","Unchecked access to a value. This is used to override …","A type reserved by the compiler. This type is equal to any …","Apply a function with some arguments.","A type that constructs a concrete type from a polymorphic …","Tried to apply a non-procedure to some arguments.","Tried to apply a non-template type to some arguments.","An arithmetic operation.","An array of constant values.","An array of expressions.","An array of a given type, with a constant size.","Cast a constant expression to another type.","Cast an expression to another type.","An error caused by trying to assemble invalid code …","An assignment operation. This is used to implement …","A trait used to implemented an assignment operation.","Perform an assignment operation on two expressions.","A trait used to implement a binary operation.","Perform a binary operation on two expressions.","A boolean “BitwiseAnd” operation between two values.","A boolean “BitwiseNand” operation between two values.","A boolean “BitwiseNor” operation between two values.","","A boolean “BitwiseOr” operation between two values.","A boolean “BitwiseXor” operation between two values.","A constant boolean value.","The type of a boolean value.","An annotation for compiler-generated code.","An annotation for a constant.","A constant integer value representing a cell on the tape.","The type of the most basic unit of memory.","A constant chararacter.","The type of a character.","A comparison operation between two values.","A trait which allows an LIR expression to be compiled to …","Tried to compile a polymorphic procedure without …","Is this expression compiler-generated?","A constant expression.","A compiletime expression.","A constant expression.","","Is this expression a constant?","A builtin pseudo-procedure implemented in the core …","A builtin implemented in handwritten core assembly.","Recursion depth exceeded when trying to confirm a type’s …","An annotation for dead code.","Get the Union data associated with a tagged union …","Is this expression dead code?","","A declaration of a variable, function, type, etc.","Bind a list of types in a constant expression.","Declare any number of variables, procedures, types, or …","","Dereference this expression (i.e. get the value it points …","Store an expression to an address (a pointer).","Tried to dereference a non-pointer.","","","An enumeration of a list of possible named values. A …","A tagged union of constant values.","A tagged union: a typechecked union of different variants. …","An enumeration of a list of possible types. This is a sum …","An environment under which expressions and types are …","","An LIR compilation error.","TODO: Add variants for LetProc, LetVar, etc. to support …","A foreign function declaration.","A typed procedure which calls a foreign function. This is …","A foreign function interface binding.","A constant floating point value.","The floating-point number type.","","Get the size of something in memory (number of cells).","Get the type associated with a value under a given …","","","An if-then-else expression.","An if-let expression.","Immutable access to a value. This is the default way to …","Declare associated constants and procedures for a type.","Index an array or pointer with an expression that …","A constant integer value.","The integer type.","Invalid type casting expression.","Invalid assignment operation (assign, add_assign, …","Invalid assign op types (incorrect types).","Invalid binary operation (add, subtract, and, or) …","Invalid binary op types (incorrect types).","Invalid constant expression.","Invalid Index expression (incorrect types).","Tried to match over an expression that cannot be matched …","Cannot monomorphize a constant expression.","Tried to use a pattern that is not valid for the given …","Tried to use a pattern that is not valid for the given …","Invalid Refer expression. The compiler was not able to …","Invalid number of template arguments to a type.","Invalid ternary operation (if) expression (incorrect …","Invalid ternary op types (incorrect types).","Invalid unary operation (negate, not) expression …","Invalid unary op types (incorrect types).","An annotation for live code.","","","Bind a type to a name in a temporary scope.","The source code location of the expression.","Many annotations can be attached to an expression. This is …","Many declarations.","A block of expressions. The last expression in the block …","A match expression.","Get an attribute of a constant expression.","Get a field or member from a structure, union, or tuple. …","Tried to access an undefined member of a tuple, struct, or …","Mismatched mutability","Mismatched types","Monomorphize a constant expression with some type …","","Mutability of a pointer. This is used to provide type …","Mutable access to a value.","A constant expression that evaluates to None. This …","","Tried to create an array with a negative length.","The type of an expression that will never return, or doesn…","","Invalid pattern for a match expression.","Got another type when expecting an integer, bool, or char.","Expected a symbol, but got something else.","No annotation.","The unit, or “void” instance.","The type of void expressions.","A boolean “Not” operation on a value.","","The null pointer constant.","A constant enum variant.","A boolean “Or” operation between two values.","A pattern which can be matched against an expression.","","A pointer to another type.","A polymorphic, parametric type. This type is used with the …","A polymorphic procedure.","A polymorphic procedure declaration.","A polymorphic procedure of LIR code which can be applied …","","A procedure.","A procedure declaration.","A procedure with a list of parameters and a return type.","A monomorphic procedure of LIR code which can be applied …","Print a value to a given output.","Recursion depth exceeded when trying to evaluate a …","Recursion depth exceeded when trying to confirm a type’s …","Reference this expression (i.e. get a pointer to it).","","Return a value from a function.","This is the maximum number of times a type will be …","Simplify an expression while maintaining structural …","Get the size of an expression’s type (in cells) as a …","Tried to get the size of a template type.","Get the size of a type (in cells) as a constant int.","A builtin pseudo-procedure implemented in the standard …","A builtin implemented in handwritten standard assembly.","A static variable declaration.","A structure of constant values.","A structure of fields to expressions.","","A tuple with named members. This is a product type.","","A named constant.","","A named type.","A symbol was used, but not defined.","An annotation for a temporary.","Get the Enum value of the tag associated with a tagged …","","Is this expression a temporary?","A trait used to implement a ternary operation.","Perform a ternary operation on three expressions.","A tuple of constant values.","A tuple of expressions.","","A heterogenous collection of types. This is a product type.","The representation of a type in the LIR type system.","A type as a constant expression.","A type declaration.","A trait object. This is internally represented as an …","A trait used to enforce type checking.","A type was used, but not defined.","Get the type of an expression. (as an array of chars)","Tried to define a type that already exists.","An annotation for user-generated code.","A trait used to implement a unary operation.","Perform a unary operation on two expressions.","A union of constant values.","A union: a collection of named fields. The Type value is …","A union of a list of possible types mapped to named …","This type is identified by its name. Most types are …","Tried to instantiate a type that cannot be sized. This is …","Expression uses an operation unsupported by the target.","Unused expression returned a non-None value.","A variable declaration.","A variable declaration with a pattern.","","The variant of an enum is not defined.","A constant, compile time if-then-else expression.","Create a while loop: while the first expression evaluates …","","","Add this expression to another.","","","","Construct a new pattern which binds to several alternate …","Logical and this expression with another.","Annotate an error with some metadata.","Annotate this constant expression with a source code …","An annotated expression with some metadata.","Apply this procedure or builtin to a list of expressions …","Apply this expression as a procedure to some arguments.","","This associated function returns whether or not a set of …","The arguments of the builtin. These will be typechecked …","The arguments of the builtin. These will be typechecked …","Try to get this constant expression as a boolean value.","Try to get this constant expression as a float.","Try to get this constant expression as an integer.","Try to get this constant expression as a symbol (like in …","Cast an expression as another type.","Cast an expression as another type.","Perform an AssignOp on this expression.","Perform an AssignOp on this expression.","BitwiseAnd this expression with another.","BitwiseOr this expression with another.","BitwiseAnd this expression with another.","BitwiseAnd this expression with another.","","BitwiseOr this expression with another.","","Bitwise this expression with another.","The list of assembly instructions to be pasted into the …","The list of assembly instructions to be pasted into the …","Construct a new pattern which matches a constant boolean.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Checks if the operation can be applied to the given types.","Checks if the operation can be applied to the given type.","Checks if the operation can be applied to the given types.","Checks if the operation can be applied to the given types.","","","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this binary operation be applied to the given types?","Can this binary operation be applied to the given types?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Can this unary operation be applied to the given type?","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Checks if the operation can be applied to the given …","Can this type be cast to another type?","Can a pointer of this mutability decay to a pointer of …","Can this type decay into another type?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Clones the operation into a boxed trait object.","Clones the operation into a boxed trait object.","Clones the operation into a boxed trait object.","Clones the operation into a boxed trait object.","","","","Clone this operation into a trait object.","Clone this binary operation into a box.","Clone this binary operation into a box.","Clone this binary operation into a box.","","Clone this binary operation into a box.","Clone this binary operation into a box.","","Clone this operation into a box.","Clone this operation into a box.","Clone this binary operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","Clone this operation into a box.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Compile the expression into an assembly program.","Compile the expression into an assembly program.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expression.","Compiles the operation on the given expression.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compiles the operation on the given expressions.","Compile the assignment operation.","","","","","","","","Compiles the operation on the given types. (Generates the …","Compiles the operation on the given type. (Generates the …","Compiles the operation on the given types. (Generates the …","Compiles the operation on the given types. (Generates the …","","","Compile the binary operation.","Compile the assignment operation.","Compile the binary operation.","Compile the binary operation.","Compile the binary operation.","","Compile the binary operation.","Compile the binary operation.","Compile the binary operation.","Compile the unary operation.","Compile the unary operation.","Compile the binary operation.","Compile the binary operation.","Compile the unary operation.","Compile the unary operation.","Compile the unary operation.","Compile the unary operation.","Compile the unary operation.","Does this type contain a symbol with the given name? This …","","Let-bind the pattern to the given expression. This will …","","","Define multiple types with the given names under this …","Define a variable in the current scope. This will …","Dereference this expression (i.e. get the value it points …","Dereference this expression (i.e. get the value it points …","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","Formats the operation for display.","","Divide this expression by another.","","","","","","","","","Is this expression greater than another?","","","","","","","","","","","","","","","","","","","","","","","","","Are two types structurally equal?","","","","","","","","","","","","","","","","","","","","","","","","","","","Evaluates the operation on the given constant expressions.","Evaluates the operation on the given constant expression.","Evaluates the operation on the given constant expressions.","Evaluates the operation on the given constant expressions.","Evaluate this constant expression at compile time, and get …","","","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this binary operation on the given constant …","Evaluate this binary operation on the given constant …","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Evaluate this unary operation on the given constant values.","Get a field from a structure, union, or tuple.","Get a field from a structure, union, or tuple.","Construct a new pattern which matches a constant float.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Is this expression greater than or equal to another?","","Get the arguments of the procedure.","","Get the map of new variables and their types which are …","Get the body of the procedure.","Get the type of a branch with a given expression matched …","Get the name of the procedure known to the LIR front-end.","Get the mangled name of the procedure. The procedure’s …","","","Get the name of this polymorphic procedure. This is not …","Get the return type of the procedure.","Get the first argument’s mutability (if it is a pointer)","Get the size of something in memory (number of cells).","Get the size of something in memory (number of cells).","Get the size of something in memory, but limit the number …","","","","","","","","","","Get the type associated with a value under a given …","Get the type associated with a value under a given …","Get the type of a value under a given environment and check","","","","","","","","Get the type of an associated constant of a type.","Is this expression greater than another?","","Does this type have an element type matching the supplied …","Does this annotation have a location?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Index an array or pointer with an expression that …","Generate an if letexpression, which matches a given expr, …","Create an if-then-else statement with this expression as …","Construct a new pattern which matches a constant integer.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Is this type an irreducible, atomic type?","Is this compiler-generated?","","Is this data protected against mutation?","Is this dead code?","Is this pattern exhaustive?","Is this annotation a location?","","","Can this data be accessed mutably?","Is this annotation none?","","","","Is first argument of function a reference?","Is this type in a simple form? A simple form is a form …","Is this a temporary?","Is this expression less than or equal to another?","Create a let-bound type.","Create a let binding for a constant expression.","Create several const bindings at onces.","Create a proc binding for a procedure.","Create several proc bindings at onces.","Create a let binding for an type.","Create several type bindings at onces.","Create a let binding for an expression.","Create a let binding for an expression, and define …","Get the location of this annotation.","Is this expression less than another?","Generate an expression which evaluates a match expression, …","","Take some type arguments and produce a monomorphized …","Multiply this expression by another.","The name of the builtin. This isn’t used in compilation, …","The name of the builtin. This isn’t used in compilation, …","Get the remainder of this expression divided by another.","Is this expression greater than or equal to another?","Create a new assignment operation.","Create a new FFI procedure.","Construct a new procedure with a given list of arguments …","Construct a new polymorphic procedure with type …","Logical not this expression.","Logical or this expression with another.","","","","","","","","","","","","","","","","","","","","","","","Perform type applications if possible.","Construct a new pattern which matches a pointer.","Get the power of this expression to another.","Construct a procedure.","Push this procedure’s label to the stack.","Reference this expression (i.e. get a pointer to it).","Get the remainder of this expression divided by another.","The return value the builtin will leave on the stack after …","The return value the builtin will leave on the stack after …","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expression.","Gets the type of the operation on the given expression.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","Gets the type of the operation on the given expressions.","","","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this binary …","Get the type of the result of applying this binary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","Get the type of the result of applying this unary …","This is just for debugging purposes. This sets the common …","Simplify an expression while maintaining structural …","Simplify an expression while maintaining structural …","","","","Simplify until the type is concrete.","Simplify a type until you can get its members.","Simplify a type until you can get its variants.","Simplify an expression until it matches a given function …","Simplify until the type is a polymorphic type.","","Simplify until the type passes the type checker.","Simplify a type until it’s a union.","Get the size of an expression.","","Construct a new pattern which matches a struct with a …","Create a structure of fields to expressions.","Subtract an expression from this expression.","Substitute a type for a given name in the environment.","","Substitute a type in a given expression.","","","","","","Substitute all occurences of a symbol with another type. …","","","Construct a new pattern which matches a symbol with a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Construct a new pattern which matches a tuple of patterns.","Type check the expression.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expression.","Typechecks the operation on the given expression.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","Typechecks the operation on the given expressions.","","","","Type-check a pattern match of an expression against this …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Apply a unary operation to this expression.","Evaluate a variable in the current scope.","Calculate the integral value of a variant in an enum.","Create a while statement with this expression as the …","Construct a new pattern which matches any expression.","Return this expression, but with a given declaration in …","Return this expression, but with a given declaration in …","","","","","","","","","A struct representing a location in the source code. This …","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","Parse Core and Standard variants of assembly source code. …","Parse frontend sage code into an LIR expression.","Parse LIR code as an LIR expression.","Parse Core and Standard variants of virtual machine source …","","","","","","","","This is an FFI binding, which is used to call a foreign …","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","Create a new FFI binding.","","","","","","","","Input from an accelerometer (in meters per second per …","Input from altitude sensor (in meters)","Electrical device input modes (These should typically be …","Electrical device output modes Set the voltage of a given …","The different axes an input or output might use.","Input from a barometer (pressure in atmospheres)","Ring a bell (in hertz)","Black","Set the pressure of a given blower (in atmospheres)","Blue","Blue light intensity (in lux)","Input from a light sensor (in lux)","Lighting device output modes Set the brightness of a given …","Input from a button (0=not pressed, 1=pressed)","Sound output modes Ring a given buzzer (in hertz)","The channel to use for a given I/O mode.","Clear the display","Physical sensor input modes (These should typically be …","The different output colors a program might use.","Input from a compass (degrees)","Input from a conductivity sensor (in siemens per meter)","Turn a cooler on or off (0=off, 1=on)","Custom output modes A custom input mode (for use with a …","Custom output modes A custom output mode (for use with a …","Cyan","User input modes (These should typically be used for games …","Input from depth sensor (in meters)","Input from a digital input (0=low, 1=high)","Set the state of a given digital output (0=low, 1=high)","The different directions a D-Pad a might use.","","Set the pressure of a given fan (in atmospheres)","Input from a flow sensor (in liters per second)","Green","Green light intensity (in lux)","Input from a gyroscope (in degrees per second) around a …","Turn a heater on or off (0=off, 1=on)","Input from a humidity sensor (in percent)","An input source for a program.","The different types of input modes a program might use.","Input from a JoyStick the degree of displacement in a …","Input from keyboard (ASCII character)","","Magenta","Input from a magnetometer (in teslas) in a given axis","Input from a microphone (frequency in hertz)","Set the speed of a given motor (in revolutions per minute)","Move the cursor down on the display","Move the cursor left on the display","Move the cursor right on the display","Move the cursor up on the display","Play a given note (in hertz)","Input from an odometer (in meters)","Orange","An output destination for a program.","The different types of output modes a program might use.","Input from a pH sensor (in pH)","Input from a position sensor in a given axis (x, y, z)","Set the pressure of a given vacuum/pressurizer …","Engineering / Science sensor input modes Input from a …","Alternative output modes for standard output Printer …","Printer (float)","Printer (integer)","Input from a distance sensor (in meters)","Set the pressure of a given pump (in atmospheres)","RGB ","Input from a rain gauge (in millimeters)","Special input modes A random number","Red","Environment sensor input modes (These should typically be …","","Set the position of a given servo (in radians)","Write a character to the display","Set the cursor column on the display","Set the color of a given pixel on the display","Set the cursor row on the display","Set the polarity of a solenoid (0=off, 1=on)","Set the frequency of a given speaker (in hertz)","Set the volume of a given speaker (in percent)","Navigation input modes (These should typically be …","Standard error (ASCII character)","Standard error (float)","Standard error (integer)","Standard input modes (The standard interface is typically …","Standard input (float)","Standard input (integer)","Standard output modes Standard output (ASCII character)","Standard output (float)","Standard output (integer)","Robotics device output modes Set the position of a given …","Set the temperature of a given heating/cooling device …","Input from a thermometer (degrees K)","Input from a UV sensor (in watts per square meter)","","Display output modes Update the display","Set the position of a given valve (0=closed, 1=open)","Input from a volume sensor (in liters)","Input from a weight sensor (in kilograms)","White","Input from a wind direction sensor (in degrees)","Input from a wind speed sensor (in meters per second)","","","Yellow","","","","","","","","","","","","","","","","","","The channel to use for the input.","The channel to use for the output.","The time (in seconds) since the program started","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The mode of the input.","The mode of the output.","Create a new input source.","Create a new output destination.","","","","","","","","","A random number","Output to STDERR (ASCII character)","Output to STDERR (float)","Output to STDERR (integer)","Input from STDIN (ASCII character)","Input from STDIN (float)","Input from STDIN (integer)","Output to STDOUT (ASCII character)","Output to STDOUT (float)","Output to STDOUT (integer)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A trait for a target architecture to be compiled to.","Implement a compiler for the given target.","Compile the core variant of the machine code (must be …","","Compile the standard variant of the machine code (should …","","C Target","Compile the declaration of a procedure.","Compile an End instruction (with the matching If or While …","Get a value from the given input stream (mode + channel).","The string used for indentation.","The name of the target architecture.","Compile a CoreOp instruction.","Peek a value from the device connected to the program.","Poke a value to the device connected to the program.","The code after the function definitions.","The code after the program ends.","The code after each instruction.","The code before the function definitions.","The code before the program starts.","Put a value to the given output stream (mode + channel).","C Target","Compile a StandardOp instruction.","Whether or not the target architecture supports floating …","Whether or not the target architecture supports the given …","Whether or not the target architecture supports the given …","The version of the target architecture.","x86 Target","The type for the C target which implements the Target …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","The type for the C target which implements the Target …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","The type for the x86 target which implements the Target …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Store the inverse-cosine of the register (as a float) into …","Store the inverse-sine of the register (as a float) into …","Store the inverse-tangent of the register (as a float) …","Add the value pointed to on the tape to the register.","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Perform bitwise nand on the cell and the value pointed to …","Calls the nth function defined in the program, where n is …","Call a foreign function interface function.","A comment in the machine code (not in the compiled output).","The interpreter which runs the virtual machine program.","An individual core virtual machine instruction.","Execute a core instruction.","A program of only core virtual machine instructions.","Store the cosine of the register (as a float) into the …","The pointer is made equal to the value pointed to on the …","Create an input / output device for the virtual machine …","Divide the register by the value pointed to on the tape.","Divide the register by the value pointed to on the tape …","Begin an “else” conditional.","End a conditional.","An error generated by the virtual machine.","When the virtual machine attempts to get the program as …","Free the memory pointed to by the register.","Create a new function.","Get a value from an input source and store it in the …","Begin an “if the register is not zero” conditional.","Interpret the register’s value as a pointer to a cell. …","Make the register equal to 1 if the register is …","Make the register equal to the integer 1 if the register …","Move the pointer on the tape by a number of cells.","Multiply the register by the value pointed to on the tape.","Multiply the register by the value pointed to on the tape …","Get a value from the input interface / device and store it …","Write the value of the register to the output interface / …","Store the value of the register (as a float) to the power …","Write the value of the register to an output source.","The last “deref” operation is undone; the pointer is …","Store the remainder of the register and the value pointed …","Store the remainder of the register and the value pointed …","Store the value pointed to on the tape to the register.","Return from the current function.","Store the register to the value pointed to on the tape.","Set the register equal to a constant value.","Set the register equal to a constant floating point value.","Store the sine of the register (as a float) into the …","A device used for standard input and output. This simply …","The interpreter which runs the standard variant of virtual …","An individual standard virtual machine instruction.","A program of core and standard virtual machine …","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Store the tangent of the register (as a float) into the …","A device used for testing the compiler. This simply keeps …","Convert the register from an integer to a float.","Convert the register from a float to an integer.","When an instruction is unsupported for a given …","An interface to conveniently create virtual machine …","Store the value of the pointer to the register.","Begin a “while the register is not zero” loop.","","A function to reinterpret the bits of an integer as a …","A function to reinterpret the bits of a float as an …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FFI call to the device. This will get the FFI binding for …","","","","","Flatten a core program so that all of its functions are …","Flatten a core program so that all of its functions are …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the next input (from a given input source).","","","","Get the code for each function.","Get the code for each function.","Get the code outside of any functions.","Get the code outside of any functions.","Get the code outside of any functions, and the code for …","Get the code outside of any functions, and the code for …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","Create a new testing device with some given sample input.","","","","","","Get the output of the testing device as a string (ascii).","","","","","","","Peek at the next value in the FFI buffer for the FFI …","","","","Poke a value into the FFI buffer for the FFI function …","","","","Put the given value to the given output destination.","","","","","","","Run a core program using this interpreter and its device.","Run a core program using this interpreter and its device.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,71,0,71,1,1,1,1,1,71,0,1,71,0,71,71,1,0,71,1,1,1,1,1,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,15,15,8,15,8,15,8,15,8,15,8,15,15,15,15,8,15,8,15,15,8,8,15,8,15,15,8,15,8,15,15,15,15,8,8,8,8,15,15,8,15,8,15,8,15,8,15,8,96,97,98,99,100,101,102,103,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,96,97,98,99,100,101,102,116,117,118,119,120,121,122,106,122,105,123,115,123,115,104,105,106,107,108,109,110,111,112,113,114,123,116,117,118,119,120,121,116,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,21,0,0,0,0,0,0,0,21,21,0,21,0,0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,9,9,9,9,24,24,9,24,9,24,9,24,9,24,24,24,24,9,24,24,9,9,24,24,9,24,24,9,24,24,24,24,9,24,24,9,24,9,24,9,24,9,24,9,124,125,124,125,126,127,128,129,130,131,124,125,126,127,128,129,130,131,0,0,42,33,0,32,31,26,0,60,30,26,30,32,32,0,31,26,30,31,26,32,0,0,26,0,26,0,0,0,0,0,0,31,30,34,34,31,30,31,30,0,0,32,34,27,0,26,33,34,0,31,32,34,0,34,52,0,31,26,0,26,26,32,52,42,30,31,26,30,0,50,0,0,27,0,31,31,30,0,0,0,50,50,26,26,60,27,26,31,30,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,50,50,30,34,34,27,26,26,31,26,32,32,32,31,42,0,60,26,0,32,30,0,32,32,32,34,31,30,0,50,31,31,0,0,33,30,30,31,27,0,42,31,27,30,0,0,32,32,26,42,26,30,0,31,32,31,0,31,27,31,26,33,30,42,31,33,30,32,34,0,31,34,0,26,31,26,33,30,0,31,27,30,0,32,31,32,34,0,26,31,26,30,30,32,32,32,27,27,33,32,26,26,33,27,26,27,29,30,33,26,32,31,26,31,26,30,33,61,62,31,31,31,31,31,26,26,26,26,26,26,26,34,26,34,26,61,62,33,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,38,38,66,66,67,67,68,68,30,60,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,34,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,60,132,132,38,38,66,66,67,67,68,68,40,43,132,31,26,61,62,63,64,38,66,67,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,30,52,33,29,60,29,29,26,26,38,38,66,66,67,67,68,68,52,26,38,66,67,68,34,31,27,26,26,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,33,61,62,63,64,65,60,30,30,34,31,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,33,61,62,63,64,65,60,30,38,66,67,68,31,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,31,26,33,34,29,29,32,32,31,31,27,27,26,26,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,33,33,61,61,62,62,63,63,64,64,65,65,60,60,30,30,34,34,29,32,32,31,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,26,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,60,30,65,26,29,64,29,33,64,33,64,64,26,30,65,64,30,133,133,133,31,26,61,62,63,64,65,30,30,134,134,134,31,26,61,62,63,64,65,29,26,29,30,34,34,31,27,26,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,33,61,62,63,64,65,60,30,26,33,26,33,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,30,34,30,60,34,33,34,26,30,60,34,30,30,30,30,30,34,26,30,26,26,26,26,26,26,26,26,34,26,33,31,65,26,61,62,26,26,43,63,64,65,26,26,38,66,67,68,34,40,41,44,45,46,47,48,49,50,51,52,53,56,57,58,59,60,30,33,26,31,64,26,26,61,62,38,38,66,66,67,67,68,68,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,64,135,135,31,30,30,30,30,30,30,30,30,30,30,26,30,33,26,26,134,31,26,61,62,63,64,65,30,134,134,33,31,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,26,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,33,136,38,38,66,66,67,67,68,68,31,27,26,33,61,62,63,64,65,30,34,29,32,31,27,26,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,33,61,62,63,64,65,60,30,26,26,30,26,33,31,26,137,138,137,138,139,137,138,139,0,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,0,0,0,0,72,72,72,72,72,0,0,0,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,82,82,82,83,0,82,83,81,83,81,82,82,83,82,83,0,83,82,0,82,82,83,82,83,81,82,82,82,83,0,80,83,82,81,82,82,83,82,0,0,82,82,80,81,82,82,83,83,83,83,83,83,82,81,0,0,82,82,83,82,83,83,83,82,83,81,82,82,81,82,80,83,83,83,83,83,83,83,83,82,83,83,83,82,82,82,83,83,83,83,83,82,82,80,83,83,82,82,81,82,82,79,79,81,79,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,78,20,78,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,79,80,80,81,81,82,82,83,83,84,84,78,78,20,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,78,20,78,20,79,80,81,82,83,84,78,20,78,20,20,20,78,78,78,20,20,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,79,80,81,82,83,84,78,20,0,0,140,140,140,140,0,141,141,141,141,141,141,141,141,141,141,141,141,141,141,0,141,141,141,141,141,0,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,0,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,0,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,86,86,86,85,86,86,85,85,86,85,0,0,86,0,86,85,0,85,86,85,85,0,7,86,85,85,85,85,85,86,85,85,86,86,86,86,85,85,85,86,85,85,85,85,86,86,0,0,0,0,85,86,86,0,86,86,7,0,85,85,91,0,0,142,142,142,142,142,92,93,16,85,25,86,94,91,7,92,93,16,85,25,86,94,91,7,142,16,85,25,86,91,7,16,85,25,86,91,7,16,85,142,16,25,142,92,93,16,25,94,91,142,142,16,85,25,86,7,16,85,94,95,142,94,91,94,16,25,16,85,85,25,86,86,94,91,7,7,92,93,16,85,25,25,86,94,91,7,95,142,94,91,16,25,16,25,16,25,16,85,142,94,92,93,16,85,25,86,94,91,7,142,142,92,93,94,94,142,16,25,94,94,94,16,85,25,86,7,95,142,94,91,95,142,94,91,95,142,94,91,142,142,142,92,93,142,142,142,16,25,16,85,25,86,91,7,16,85,25,86,7,92,93,16,85,25,86,94,91,7,92,93,16,85,25,86,94,91,7,92,93,16,85,25,86,94,91,7,142],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[1,1],[[]],[2],0,[[],3],[[1,1],4],[[1,5],6],[[1,5],6],[7,1],[[]],[3,[[11,[[10,[8,9]]]]]],0,[[]],[12,4],0,[[12,12,3]],[8],[[1,1],[[11,[13]]]],0,[9,[[10,[1]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[15,3],[[10,[16,1]]]],[[]],[[]],[[]],[[]],[15,15],[8,8],[[]],[[]],[[15,15],13],[[8,8],13],0,[15,3],[[],15],[[15,15],4],[[8,8],4],[[],4],[[],4],[[15,5],6],[[15,5],6],[[8,5],6],[[8,5],6],[[]],[[]],[[15,3],[[11,[[10,[8,9]]]]]],[[15,17]],[[8,17]],[[]],[[]],[[15,12],4],[[[18,[8]]],15],[[15,8]],[[15,15],[[11,[13]]]],[[8,8],[[11,[13]]]],[19,8],[[19,20],8],[[21,19],8],[[15,9],[[10,[1]]]],[[]],[[]],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[22,2,3],21],[[]],[[]],[22,22],[[]],[[],22],[[22,5],6],[[22,5],6],[[]],[[22,12],11],[[22,12],[[11,[21]]]],[[22,12],[[11,[3]]]],[22,3],[[]],[[],22],[[22,21],[[10,[21,1]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[21,21],[[]],[[21,21],13],[21,21],[[21,21],4],[[],4],[[21,5],6],[[21,5],6],[[]],[[21,17]],[[]],[[21,23],21],[[21,21],[[11,[13]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[24,3],[[10,[25,1]]]],[[]],[[]],[[]],[[]],[24,24],[9,9],[[]],[[]],0,[24,3],[[],24],[[24,24],4],[[9,9],4],[[24,5],6],[[24,5],6],[[9,5],6],[[9,5],6],[[]],[15,24],[[]],[[24,3],[[11,[[10,[8,9]]]]]],[[]],[[]],[[24,12],4],[[[18,[9]]],24],[[24,8]],[[24,24],[[11,[13]]]],[[9,9],[[11,[13]]]],[[24,9],[[10,[1]]]],[[]],[[]],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[19,[11,[12]]],[[10,[26,2]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[27,[28,[27]]]],[[26,[28,[26]]],26],[[27,[28,[27]]]],[[29,30,19,31],[[10,[32]]]],[[30,29],[[10,[32]]]],[[[18,[33]]],33],[[26,[28,[26]]],26],[[32,34],32],[[31,34],31],[[26,[28,[34]]],26],[[31,[18,[26]]],26],[[26,[18,[26]]],26],[[30,[18,[30]]],30],[[26,[35,[33]],30,29],[[10,[4,32]]]],0,0,[[31,29],[[10,[4,32]]]],[[31,29],[[10,[36,32]]]],[[31,29],[[10,[37,32]]]],[[31,29],[[10,[2,32]]]],[[31,30],31],[[26,30],26],[[26,[39,[38]],[28,[26]]],26],[[26,38,[28,[26]]],26],[[26,[28,[26]]],26],[[26,[28,[26]]],26],[[26,[28,[26]]],26],[26,26],[[34,34]],[[26,[28,[26]]],26],[[34,34]],[[26,[28,[26]]],26],0,0,[4,33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[30,30,29],[[10,[4,32]]]],[[30,29],[[10,[4,32]]]],[[30,30,29],[[10,[4,32]]]],[[30,30,30,29],[[10,[4,32]]]],[[40,30,30,29],[[10,[4,32]]]],[[41,30,29],[[10,[4,32]]]],[[42,30,30,29],[[10,[4,32]]]],[[43,30,30,29],[[10,[4,32]]]],[[44,30,30,29],[[10,[4,32]]]],[[45,30,30,29],[[10,[4,32]]]],[[46,30,30,29],[[10,[4,32]]]],[[47,30,29],[[10,[4,32]]]],[[48,30,30,29],[[10,[4,32]]]],[[49,30,30,29],[[10,[4,32]]]],[[50,30,30,29],[[10,[4,32]]]],[[51,30,29],[[10,[4,32]]]],[[52,30,29],[[10,[4,32]]]],[[53,30,30,29],[[10,[4,32]]]],[[54,30,30,29],[[10,[4,32]]]],[[55,30,29],[[10,[4,32]]]],[[56,30,29],[[10,[4,32]]]],[[57,30,29],[[10,[4,32]]]],[[58,30,29],[[10,[4,32]]]],[[59,30,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,29],[[10,[4,32]]]],[[26,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,26,29],[[10,[4,32]]]],[[26,26,26,29],[[10,[4,32]]]],[[26,26,26,29],[[10,[4,32]]]],[[30,30,29],[[10,[4,32]]]],[[60,60],4],[[30,30,29],[[10,[4,32]]]],[34,34],[29,29],[32,32],[31,31],[27,27],[26,26],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[46,46],[47,47],[48,48],[49,49],[50,50],[51,51],[52,52],[53,53],[54,54],[55,55],[56,56],[57,57],[58,58],[59,59],[33,33],[61,61],[62,62],[63,63],[64,64],[65,65],[60,60],[30,30],[[],[[39,[38]]]],[[],[[39,[66]]]],[[],[[39,[67]]]],[[],[[39,[68]]]],[40,[[39,[67]]]],[41,[[39,[66]]]],[42,[[39,[67]]]],[43,[[39,[38]]]],[44,[[39,[67]]]],[45,[[39,[67]]]],[46,[[39,[67]]]],[47,[[39,[66]]]],[48,[[39,[67]]]],[49,[[39,[67]]]],[50,[[39,[67]]]],[51,[[39,[66]]]],[52,[[39,[66]]]],[53,[[39,[67]]]],[54,[[39,[67]]]],[55,[[39,[66]]]],[56,[[39,[66]]]],[57,[[39,[66]]]],[58,[[39,[66]]]],[59,[[39,[66]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[38,38],13],[[66,66],13],[[67,67],13],[[68,68],13],[[34,34],13],[[40,40],13],[[41,41],13],[[44,44],13],[[45,45],13],[[46,46],13],[[47,47],13],[[48,48],13],[[49,49],13],[[50,50],13],[[51,51],13],[[52,52],13],[[53,53],13],[[56,56],13],[[57,57],13],[[58,58],13],[[59,59],13],[[60,60],13],[[[0,[69,70]]],[[10,[[10,[15,24]],32]]]],[[[0,[69,70]]],[[10,[[10,[15,24]],32]]]],[[26,26,29,71],[[10,[32]]]],[[26,26,29,71],[[10,[32]]]],[[26,29,71],[[10,[32]]]],[[26,29,71],[[10,[32]]]],[[26,26,29,71],[[10,[32]]]],[[26,26,29,71],[[10,[32]]]],[[26,26,26,29,71],[[10,[32]]]],[[26,26,26,29,71],[[10,[32]]]],[[40,26,26,29,71],[[10,[32]]]],[[43,26,26,29,71],[[10,[32]]]],[[29,71],[[10,[32]]]],[[31,29,71],[[10,[32]]]],[[26,29,71],[[10,[32]]]],[[61,29,71],[[10,[32]]]],[[62,29,71],[[10,[32]]]],[[63,29,71],[[10,[32]]]],[[64,29,71],[[10,[32]]]],[[30,30,29,71],[[10,[32]]]],[[30,29,71],[[10,[32]]]],[[30,30,29,71],[[10,[32]]]],[[30,30,30,29,71],[[10,[32]]]],[[40,30,30,29,71],[[10,[32]]]],[[41,30,29,71],[[10,[32]]]],[[42,30,30,29,71],[[10,[32]]]],[[43,30,30,29,71],[[10,[32]]]],[[44,30,30,29,71],[[10,[32]]]],[[45,30,30,29,71],[[10,[32]]]],[[46,30,30,29,71],[[10,[32]]]],[[47,30,29,71],[[10,[32]]]],[[48,30,30,29,71],[[10,[32]]]],[[49,30,30,29,71],[[10,[32]]]],[[50,30,30,29,71],[[10,[32]]]],[[51,30,29,71],[[10,[32]]]],[[52,30,29,71],[[10,[32]]]],[[53,30,30,29,71],[[10,[32]]]],[[54,30,30,29,71],[[10,[32]]]],[[55,30,29,71],[[10,[32]]]],[[56,30,29,71],[[10,[32]]]],[[57,30,29,71],[[10,[32]]]],[[58,30,29,71],[[10,[32]]]],[[59,30,29,71],[[10,[32]]]],[[30,12],4],[[21,30,29,71],[[10,[32]]]],[[33,26,30,29],[[10,[32]]]],[[],29],[[],60],[[29,18]],[[29,19,60,30],[[10,[23,32]]]],[26,26],[[26,[28,[26]]],26],[[26,26],2],[[26,26],2],[26,2],[26,2],[[26,26],2],[[26,26],2],[[26,26,26],2],[[26,26,26],2],[[21,30,29,71],[[10,[32]]]],[[26,[28,[26]]],26],[[38,38],4],[[66,66],4],[[67,67],4],[[68,68],4],[[34,34],4],[[31,31],4],[[27,27],4],[[26,26],4],[[26,[28,[26]]],26],[[40,40],4],[[41,41],4],[[44,44],4],[[45,45],4],[[46,46],4],[[47,47],4],[[48,48],4],[[49,49],4],[[50,50],4],[[51,51],4],[[52,52],4],[[53,53],4],[[56,56],4],[[57,57],4],[[58,58],4],[[59,59],4],[[33,33],4],[[61,61],4],[[62,62],4],[[63,63],4],[[64,64],4],[[65,65],4],[[60,60],4],[[30,30],4],[[30,30,29],[[10,[4,32]]]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[31,31,29],[[10,[31,32]]]],[[31,29],[[10,[31,32]]]],[[31,31,29],[[10,[31,32]]]],[[31,31,31,29],[[10,[31,32]]]],[[31,29],[[10,[31,32]]]],[[40,31,31,29],[[10,[31,32]]]],[[41,31,29],[[10,[31,32]]]],[[42,31,31,29],[[10,[31,32]]]],[[43,31,31,29],[[10,[31,32]]]],[[44,31,31,29],[[10,[31,32]]]],[[45,31,31,29],[[10,[31,32]]]],[[46,31,31,29],[[10,[31,32]]]],[[47,31,29],[[10,[31,32]]]],[[48,31,31,29],[[10,[31,32]]]],[[49,31,31,29],[[10,[31,32]]]],[[50,31,31,29],[[10,[31,32]]]],[[51,31,29],[[10,[31,32]]]],[[52,31,29],[[10,[31,32]]]],[[53,31,31,29],[[10,[31,32]]]],[[54,31,31,29],[[10,[31,32]]]],[[55,31,29],[[10,[31,32]]]],[[56,31,29],[[10,[31,32]]]],[[57,31,29],[[10,[31,32]]]],[[58,31,29],[[10,[31,32]]]],[[59,31,29],[[10,[31,32]]]],[[31,31],31],[[26,31],26],[36,33],[[34,5],6],[[29,5],6],[[29,5],6],[[32,5],6],[[32,5],6],[[31,5],6],[[31,5],6],[[27,5],6],[[27,5],6],[[26,5],6],[[26,5],6],[[40,5],6],[[40,5],6],[[41,5],6],[[41,5],6],[[42,5],6],[[42,5],6],[[43,5],6],[[43,5],6],[[44,5],6],[[44,5],6],[[45,5],6],[[45,5],6],[[46,5],6],[[46,5],6],[[47,5],6],[[47,5],6],[[48,5],6],[[48,5],6],[[49,5],6],[[49,5],6],[[50,5],6],[[50,5],6],[[51,5],6],[[51,5],6],[[52,5],6],[[52,5],6],[[53,5],6],[[53,5],6],[[54,5],6],[[54,5],6],[[55,5],6],[[55,5],6],[[56,5],6],[[56,5],6],[[57,5],6],[[57,5],6],[[58,5],6],[[58,5],6],[[59,5],6],[[59,5],6],[[33,5],6],[[33,5],6],[[61,5],6],[[61,5],6],[[62,5],6],[[62,5],6],[[63,5],6],[[63,5],6],[[64,5],6],[[64,5],6],[[65,5],6],[[65,5],6],[[60,5],6],[[60,5],6],[[30,5],6],[[30,5],6],[[]],[72,34],[[]],[1,32],[[]],[[]],[[[39,[27]]],27],[73,27],[[],27],[[],27],[[],27],[[],27],[[],27],[[]],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[[18,[[28,[27]]]]],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[[],27],[31,26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[4,60],[[]],[[64,[18,[2]]],65],[[26,[28,[26]]],26],[[29,30],18],[64,35],[[29,30,12],11],[[33,26,30,29],[[10,[[74,[2]],32]]]],[64,26],[[33,26,26,29],[[10,[30,32]]]],[64,[[11,[12]]]],[64,12],[[26,29],[[10,[[11,[60]],32]]]],[[30,30,[74,[2,30]],[75,[2]],29],[[10,[32]]]],[65,12],[64,30],[[30,29],[[11,[60]]]],[29,[[10,[3,32]]]],[29,[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[29,3],[[10,[3,32]]]],[[30,29,3],[[10,[3,32]]]],[[30,29],[[18,[2]]]],[29,[[10,[30,32]]]],[29,[[10,[30,32]]]],[[29,3],[[10,[30,32]]]],[[31,29,3],[[10,[30,32]]]],[[26,29,3],[[10,[30,32]]]],[[61,29,3],[[10,[30,32]]]],[[62,29,3],[[10,[30,32]]]],[[63,29,3],[[10,[30,32]]]],[[64,29,3],[[10,[30,32]]]],[[65,29,3],[[10,[30,32]]]],[[29,30,12],[[11,[30]]]],[[26,[28,[26]]],26],[[29,30,12],4],[[30,30,29],[[10,[4,32]]]],[34,4],[[34,17]],[[31,17]],[[27,17]],[[26,17]],[[40,17]],[[41,17]],[[44,17]],[[45,17]],[[46,17]],[[47,17]],[[48,17]],[[49,17]],[[50,17]],[[51,17]],[[52,17]],[[53,17]],[[56,17]],[[57,17]],[[58,17]],[[59,17]],[[33,17]],[[61,17]],[[62,17]],[[63,17]],[[64,17]],[[65,17]],[[60,17]],[[30,17]],[[26,[28,[26]]],26],[[33,26,26,26,29],[[10,[26,32]]]],[[26,[28,[26]],[28,[26]]],26],[37,33],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[30,4],[34,4],[30,4],[60,4],[34,4],[[33,26,30,29],[[10,[4,32]]]],[34,4],[[26,29],[[10,[4,32]]]],[[30,30,29],[[10,[4,32]]]],[60,4],[34,4],[30,4],[[30,29],[[10,[4,32]]]],[[30,[75,[2]],29],[[10,[4,32]]]],[[30,29],[[10,[4,32]]]],[30,4],[34,4],[[26,[28,[26]]],26],[[12,30,30],30],[[19,31,[28,[26]]],26],[[18,[28,[26]]],26],[[19,64,[28,[26]]],26],[[[73,[12,64]],[28,[26]]],26],[[19,30,[28,[26]]],26],[[18,[28,[26]]],26],[[19,[28,[60]],[11,[30]],[28,[26]],[28,[26]]],26],[[18,[28,[26]]],26],[34,[[11,[72]]]],[[26,[28,[26]]],26],[[26,35,29],[[10,[26,32]]]],[[31,[18,[30]]],31],[[65,[18,[30]],29],[[10,[64,32]]]],[[26,[28,[26]]],26],0,0,[26,26],[[26,[28,[26]]],26],[67,43],[[2,[18,[30]],30],63],[[[11,[2]],18,30,[28,[26]]],64],[[2,[18,[2]],18,30,[28,[26]]],65],[26,26],[[26,[28,[26]]],26],[[38,38],[[11,[13]]]],[[66,66],[[11,[13]]]],[[67,67],[[11,[13]]]],[[68,68],[[11,[13]]]],[[34,34],[[11,[13]]]],[[40,40],[[11,[13]]]],[[41,41],[[11,[13]]]],[[44,44],[[11,[13]]]],[[45,45],[[11,[13]]]],[[46,46],[[11,[13]]]],[[47,47],[[11,[13]]]],[[48,48],[[11,[13]]]],[[49,49],[[11,[13]]]],[[50,50],[[11,[13]]]],[[51,51],[[11,[13]]]],[[52,52],[[11,[13]]]],[[53,53],[[11,[13]]]],[[56,56],[[11,[13]]]],[[57,57],[[11,[13]]]],[[58,58],[[11,[13]]]],[[59,59],[[11,[13]]]],[[60,60],[[11,[13]]]],[[30,29,[74,[30]]],[[10,[30,32]]]],[33,33],[[26,[28,[26]]],26],[[[11,[2]],18,30,[28,[26]]],31],[[64,71]],[[26,[28,[60]]],26],[[26,[28,[26]]],26],0,0,[[26,26,29],[[10,[30,32]]]],[[26,26,29],[[10,[30,32]]]],[[26,29],[[10,[30,32]]]],[[26,29],[[10,[30,32]]]],[[26,26,29],[[10,[30,32]]]],[[26,26,29],[[10,[30,32]]]],[[26,26,26,29],[[10,[30,32]]]],[[26,26,26,29],[[10,[30,32]]]],[[40,26,26,29],[[10,[30,32]]]],[[41,26,29],[[10,[30,32]]]],[[42,26,26,29],[[10,[30,32]]]],[[43,26,26,29],[[10,[30,32]]]],[[44,26,26,29],[[10,[30,32]]]],[[45,26,26,29],[[10,[30,32]]]],[[46,26,26,29],[[10,[30,32]]]],[[47,26,29],[[10,[30,32]]]],[[48,26,26,29],[[10,[30,32]]]],[[49,26,26,29],[[10,[30,32]]]],[[50,26,26,29],[[10,[30,32]]]],[[51,26,29],[[10,[30,32]]]],[[52,26,29],[[10,[30,32]]]],[[53,26,26,29],[[10,[30,32]]]],[[54,26,26,29],[[10,[30,32]]]],[[55,26,29],[[10,[30,32]]]],[[56,26,29],[[10,[30,32]]]],[[57,26,29],[[10,[30,32]]]],[[58,26,29],[[10,[30,32]]]],[[59,26,29],[[10,[30,32]]]],[[64,19]],[29,[[10,[32]]]],[[29,3],[[10,[32]]]],[[31,29,3],[[10,[31,32]]]],[[30,29,3],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29,30,76],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[[30,29],[[10,[30,32]]]],[26,26],[[30,29],30],[[[73,[2,33]]],33],[[[73,[12,26]]],26],[[26,[28,[26]]],26],[[12,30]],[[31,12,30]],[[26,12,30]],[[61,12,30]],[[62,12,30]],[[63,12,30]],[[64,12,30]],[[65,12,30]],[[30,12,30],30],[[[35,[2]],[35,[30]]]],[[[35,[2]],[35,[30]]]],[[[28,[60]],19],33],[[31,[18,[2]]],31],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[26,29],[[10,[26,32]]]],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[[18,[33]]],33],[29,[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,29],[[10,[32]]]],[[26,29],[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,26,29],[[10,[32]]]],[[26,26,26,29],[[10,[32]]]],[[26,26,26,29],[[10,[32]]]],[[31,29],[[10,[32]]]],[[27,29],[[10,[32]]]],[[26,29],[[10,[32]]]],[[33,26,26,29],[[10,[32]]]],[[61,29],[[10,[32]]]],[[62,29],[[10,[32]]]],[[63,29],[[10,[32]]]],[[64,29],[[10,[32]]]],[[65,29],[[10,[32]]]],[[30,29],[[10,[32]]]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[26,66],26],[19,26],[[[35,[2]],2],[[11,[3]]]],[[26,[28,[26]]],26],[[],33],[[31,[28,[27]]],31],[[26,[28,[27]]],26],0,0,0,0,0,0,0,0,0,[[]],[[]],[72,72],[[]],[[72,72],13],0,[[72,72],4],[[],4],0,[[72,5],6],[[]],[[72,12],2],[[72,17]],[[]],0,0,0,[19,[[10,[[10,[15,24]],2]]]],[[19,[11,[12]]],[[10,[26,2]]]],[19,[[10,[26,2]]]],[19,[[10,[[10,[16,25]],2]]]],[[72,72],[[11,[13]]]],[[]],[[],10],[[],10],[[],14],0,0,0,[[]],[[]],[77,77],[[]],[[77,77],13],[[77,77],4],[[],4],[[77,5],6],[[77,5],6],[[]],[[77,17]],0,[[]],0,[[2,3,3],77],0,[[77,77],[[11,[13]]]],[[]],[[],2],[[],10],[[],10],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[],78],[79,79],[80,80],[81,81],[82,82],[83,83],[84,84],[78,78],[20,20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[79,79],13],[[80,80],13],[[81,81],13],[[82,82],13],[[83,83],13],[[84,84],13],[[78,78],13],[[20,20],13],[[79,79],4],[[80,80],4],[[81,81],4],[[82,82],4],[[83,83],4],[[84,84],4],[[78,78],4],[[20,20],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[79,5],6],[[79,5],6],[[80,5],6],[[80,5],6],[[81,5],6],[[81,5],6],[[82,5],6],[[82,5],6],[[83,5],6],[[83,5],6],[[84,5],6],[[84,5],6],[[78,5],6],[[78,5],6],[[20,5],6],[[20,5],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[79,17]],[[80,17]],[[81,17]],[[82,17]],[[83,17]],[[84,17]],[[78,17]],[[20,17]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[82,3],78],[[83,3],20],[[79,79],[[11,[13]]]],[[80,80],[[11,[13]]]],[[81,81],[[11,[13]]]],[[82,82],[[11,[13]]]],[[83,83],[[11,[13]]]],[[84,84],[[11,[13]]]],[[78,78],[[11,[13]]]],[[20,20],[[11,[13]]]],[[],78],[[],20],[[],20],[[],20],[[],78],[[],78],[[],78],[[],20],[[],20],[[],20],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],0,0,[16,[[10,[2,2]]]],[[85,[18,[85]],[18,[3]],3,3],[[10,[2,2]]]],[25,[[10,[2,2]]]],[[86,[18,[85]],[18,[3]],3,3],[[10,[2,2]]]],0,[3,2],[[85,[11,[3]]],2],[78,[[10,[2,2]]]],[[],[[11,[2]]]],[[],12],[85,2],[[],[[10,[2,2]]]],[[],[[10,[2,2]]]],[[[18,[87]]],[[11,[2]]]],[4,[[11,[2]]]],[[],[[11,[2]]]],[[[18,[87]]],[[11,[2]]]],[4,[[11,[2]]]],[20,[[10,[2,2]]]],0,[86,[[10,[2,2]]]],[[],4],[78,4],[20,4],[[],12],0,0,[[]],[[]],[[88,3],2],[[],88],[[88,85,[11,[3]]],2],[[]],[[88,78],[[10,[2,2]]]],[[]],[88,12],[[88,85],2],[88,[[10,[2,2]]]],[88,[[10,[2,2]]]],[[88,[18,[87]]],[[11,[2]]]],[[88,4],[[11,[2]]]],[88,[[11,[2]]]],[[88,4],[[11,[2]]]],[[88,20],[[10,[2,2]]]],[[88,86],[[10,[2,2]]]],[88,4],[[88,78],4],[[88,20],4],[[],10],[[],10],[[],14],[88,12],0,[[]],[[]],[[89,3],2],[[],89],[[89,85,[11,[3]]],2],[[]],[[89,78],[[10,[2,2]]]],[[]],[89,12],[[89,85],2],[89,[[10,[2,2]]]],[89,[[10,[2,2]]]],[[89,[18,[87]]],[[11,[2]]]],[[89,4],[[11,[2]]]],[89,[[11,[2]]]],[[89,4],[[11,[2]]]],[[89,20],[[10,[2,2]]]],[[89,86],[[10,[2,2]]]],[89,4],[[89,78],4],[[89,20],4],[[],10],[[],10],[[],14],[89,12],0,[[]],[[]],[[90,3],2],[[],90],[[90,85,[11,[3]]],2],[[]],[[90,78],[[10,[2,2]]]],[[]],[90,12],[[90,85],2],[90,[[10,[2,2]]]],[90,[[10,[2,2]]]],[[90,[18,[87]]],[[11,[2]]]],[[90,4],[[11,[2]]]],[90,[[11,[2]]]],[[90,4],[[11,[2]]]],[[90,20],[[10,[2,2]]]],[[90,86],[[10,[2,2]]]],[90,4],[[90,78],4],[[90,20],4],[[],10],[[],10],[[],14],[90,12],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[91,77]],[37,36],[36,37],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[16,16],[85,85],[25,25],[86,86],[91,91],[7,7],[[]],[[]],[[]],[[]],[[]],[[]],[[16,16],13],[[85,85],13],[[],[[10,[16,25]]]],[16,[[10,[16,25]]]],[25,[[10,[16,25]]]],[12],[[],[[92,[91]]]],[[],[[93,[91]]]],[[],16],[[],25],[[],94],[[],91],[[]],[[]],[[16,16],4],[[85,85],4],[[25,25],4],[[86,86],4],[[7,7],4],[[],4],[[],4],0,[[77,[11,[[18,[37]]]]],[[10,[2]]]],[77,[[10,[7]]]],[[94,77,[11,[[18,[37]]]]],[[10,[2]]]],[[91,77,[11,[[18,[37]]]]],[[10,[2]]]],0,[16,16],[25,25],[[16,5],6],[[85,5],6],[[85,5],6],[[25,5],6],[[86,5],6],[[86,5],6],[[94,5],6],[[91,5],6],[[7,5],6],[[7,5],6],[[]],[[]],[[]],[[]],[[]],[16,25],[[]],[[]],[[]],[[]],[78,[[10,[37,2]]]],[78],[[94,78],[[10,[37,2]]]],[[91,78],[[10,[37,2]]]],[16,[[74,[87,[18,[85]]]]]],[25,[[74,[87,[18,[86]]]]]],[16,[[18,[85]]]],[25,[[18,[86]]]],[16],[25],[[16,17]],[[85,17]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[23],[95,[[92,[95]]]],[95,[[93,[95]]]],[19,94],[[[18,[37]]],94],[85],[[16,85]],[[25,85]],0,[94,2],[94,[[18,[37]]]],[[16,16],[[11,[13]]]],[[85,85],[[11,[13]]]],[[25,25],[[11,[13]]]],[[86,86],[[11,[13]]]],[[7,7],[[11,[13]]]],[[],[[10,[37,2]]]],[[],[[10,[7]]]],[94,[[10,[37,2]]]],[91,[[10,[37,2]]]],[37,[[10,[2]]]],[[],[[10,[7]]]],[[94,37],[[10,[2]]]],[[91,37],[[10,[2]]]],[[37,20],[[10,[2]]]],[20],[[94,37,20],[[10,[2]]]],[[91,37,20],[[10,[2]]]],[[]],[[]],[[]],[[[92,[95]],16],[[10,[95,2]]]],[[[93,[95]],25],[[10,[95,2]]]],[[]],[37],[86,[[10,[7]]]],[[16,86],[[10,[7]]]],[[25,86],[[10,[7]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[]]],"c":[],"p":[[4,"Error"],[3,"String"],[15,"usize"],[15,"bool"],[3,"Formatter"],[6,"Result"],[4,"Error"],[4,"CoreOp"],[4,"StandardOp"],[4,"Result"],[4,"Option"],[15,"str"],[4,"Ordering"],[3,"TypeId"],[3,"CoreProgram"],[3,"CoreProgram"],[8,"Hasher"],[3,"Vec"],[8,"ToString"],[3,"Output"],[4,"Location"],[3,"Globals"],[15,"isize"],[3,"StandardProgram"],[3,"StandardProgram"],[4,"Expr"],[4,"Declaration"],[8,"Into"],[3,"Env"],[4,"Type"],[4,"ConstExpr"],[4,"Error"],[4,"Pattern"],[4,"Annotation"],[15,"slice"],[15,"f64"],[15,"i64"],[8,"AssignOp"],[3,"Box"],[3,"Add"],[3,"Negate"],[4,"Arithmetic"],[3,"Assign"],[3,"BitwiseAnd"],[3,"BitwiseNand"],[3,"BitwiseNor"],[3,"BitwiseNot"],[3,"BitwiseOr"],[3,"BitwiseXor"],[4,"Comparison"],[3,"Get"],[4,"Put"],[3,"And"],[3,"Or"],[3,"Not"],[3,"New"],[3,"Delete"],[3,"Tag"],[3,"Data"],[4,"Mutability"],[3,"CoreBuiltin"],[3,"StandardBuiltin"],[3,"FFIProcedure"],[3,"Procedure"],[3,"PolyProcedure"],[8,"UnaryOp"],[8,"BinaryOp"],[8,"TernaryOp"],[8,"Sized"],[8,"Clone"],[8,"AssemblyProgram"],[3,"SourceCodeLocation"],[3,"BTreeMap"],[3,"HashMap"],[3,"HashSet"],[8,"Fn"],[3,"FFIBinding"],[3,"Input"],[4,"Axis"],[4,"Direction"],[4,"Color"],[4,"InputMode"],[4,"OutputMode"],[3,"Channel"],[4,"CoreOp"],[4,"StandardOp"],[15,"i32"],[3,"C"],[3,"SageOS"],[3,"X86"],[3,"StandardDevice"],[3,"CoreInterpreter"],[3,"StandardInterpreter"],[3,"TestingDevice"],[8,"Device"],[13,"Compare"],[13,"IsGreater"],[13,"IsGreaterEqual"],[13,"IsLess"],[13,"IsLessEqual"],[13,"IsEqual"],[13,"IsNotEqual"],[13,"GetAddress"],[13,"Move"],[13,"Copy"],[13,"Index"],[13,"Add"],[13,"Sub"],[13,"Mul"],[13,"Div"],[13,"Rem"],[13,"DivRem"],[13,"And"],[13,"Or"],[13,"PopFrom"],[13,"Array"],[13,"BitwiseNand"],[13,"BitwiseXor"],[13,"BitwiseOr"],[13,"BitwiseNor"],[13,"BitwiseAnd"],[13,"Global"],[13,"PushTo"],[13,"IsGreater"],[13,"IsLess"],[13,"Pow"],[13,"Add"],[13,"Sub"],[13,"Mul"],[13,"Div"],[13,"Rem"],[8,"Compile"],[8,"GetSize"],[8,"GetType"],[8,"Simplify"],[8,"TypeCheck"],[13,"MismatchedTypes"],[13,"MismatchedMutability"],[13,"NonExhaustivePatterns"],[8,"CompiledTarget"],[8,"Architecture"],[8,"VirtualMachineProgram"]]}\
}');
if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};
diff --git a/docs/source-files.js b/docs/source-files.js
index 0f3dd53d..0447b8c4 100644
--- a/docs/source-files.js
+++ b/docs/source-files.js
@@ -1,4 +1,4 @@
var sourcesIndex = JSON.parse('{\
-"sage":["",[["asm",[],["core.rs","globals.rs","location.rs","mod.rs","std.rs"]],["frontend",[],["mod.rs","parse.rs"]],["lir",[["expr",[["ops",[["arithmetic",[],["addition.rs","mod.rs","negate.rs"]],["bitwise",[],["and.rs","mod.rs","nand.rs","nor.rs","not.rs","or.rs","xor.rs"]]],["assign.rs","comparison.rs","io.rs","logic.rs","memory.rs","mod.rs","tagged_union.rs"]],["procedure",[],["builtin.rs","ffi.rs","mod.rs","mono.rs","poly.rs"]]],["const_expr.rs","declaration.rs","expression.rs","mod.rs","pattern.rs"]],["types",[],["check.rs","inference.rs","mod.rs","size.rs"]]],["annotate.rs","compile.rs","env.rs","error.rs","mod.rs"]],["side_effects",[],["ffi.rs","io.rs","mod.rs"]],["targets",[],["c.rs","mod.rs","my_os.rs","x86.rs"]],["vm",[["interpreter",[],["core.rs","mod.rs","std.rs"]]],["core.rs","mod.rs","std.rs"]]],["lib.rs","parse.rs"]]\
+"sage":["",[["asm",[],["core.rs","globals.rs","location.rs","mod.rs","std.rs"]],["frontend",[],["mod.rs","parse.rs"]],["lir",[["expr",[["ops",[["arithmetic",[],["addition.rs","mod.rs","negate.rs"]],["bitwise",[],["and.rs","mod.rs","nand.rs","nor.rs","not.rs","or.rs","xor.rs"]]],["assign.rs","comparison.rs","io.rs","logic.rs","memory.rs","mod.rs","tagged_union.rs"]],["procedure",[],["builtin.rs","ffi.rs","mod.rs","mono.rs","poly.rs"]]],["const_expr.rs","declaration.rs","expression.rs","mod.rs","pattern.rs"]],["types",[],["check.rs","inference.rs","mod.rs","size.rs"]]],["annotate.rs","compile.rs","env.rs","error.rs","mod.rs"]],["side_effects",[],["ffi.rs","io.rs","mod.rs"]],["targets",[],["c.rs","mod.rs","sage_os.rs","x86.rs"]],["vm",[["interpreter",[],["core.rs","mod.rs","std.rs"]]],["core.rs","mod.rs","std.rs"]]],["lib.rs","parse.rs"]]\
}');
createSourceSidebar();
diff --git a/docs/src/sage/lib.rs.html b/docs/src/sage/lib.rs.html
index fc22e3a0..1cf97ec3 100644
--- a/docs/src/sage/lib.rs.html
+++ b/docs/src/sage/lib.rs.html
@@ -115,6 +115,8 @@
115116117
+118
+119
//! # The Sage Programming Language
//!
//! 🚧 🏗️ ⚠️ This language is under construction! ⚠️ 🏗️ 🚧
@@ -131,8 +133,10 @@
//! ░░░░░░
//! ```
//!
+//! ![Logo](https://github.com/adam-mcdaniel/sage/blob/main/assets/sage.png)
+//!
//! <embed type="text/html" src="web/index.html" title="Compiler" width="100%" height="940em"></embed>
-//! ***(The sage compiler itself can be compiled to web assembly to be executed on the web. This allows a sage compiler + interpreter to be hosted on a static web page and run embded sage scripts. This web implementation compiles sage LIR code into sage virtual machine code, and then feeds it to a builtin virtual machine interpreter. The compiler can also switch to various backends, such as the C source code generator, or assembly output.)***
+//! ***(The sage compiler itself can be compiled to web assembly to be executed on the web. This allows a sage compiler + interpreter to be hosted on a static web page and run embedded sage scripts. This web implementation compiles sage LIR code into sage virtual machine code, and then feeds it to a builtin virtual machine interpreter. The compiler can also switch to various backends, such as the C source code generator, or assembly output.)***
//!
//! This crate implements a compiler for the sage programming language
//! and its low level virtual machine.
diff --git a/docs/src/sage/targets/mod.rs.html b/docs/src/sage/targets/mod.rs.html
index 722c3d29..f6c3090b 100644
--- a/docs/src/sage/targets/mod.rs.html
+++ b/docs/src/sage/targets/mod.rs.html
@@ -351,8 +351,8 @@
pub mod c;
pub use c::*;
-pub mod my_os;
-pub use my_os::*;
+pub mod sage_os;
+pub use sage_os::*;
pub mod x86;
pub use x86::*;
diff --git a/docs/src/sage/targets/my_os.rs.html b/docs/src/sage/targets/sage_os.rs.html
similarity index 94%
rename from docs/src/sage/targets/my_os.rs.html
rename to docs/src/sage/targets/sage_os.rs.html
index 051e6ed3..a02fb866 100644
--- a/docs/src/sage/targets/my_os.rs.html
+++ b/docs/src/sage/targets/sage_os.rs.html
@@ -1,4 +1,4 @@
-my_os.rs - source