From c89952826b5faf00bfcd18c2de7a5d39344e402f Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Thu, 5 Sep 2024 04:38:41 -0400 Subject: [PATCH 01/29] First working example of const generics --- src/frontend/parse.rs | 19 +- src/lir/compile.rs | 12 +- src/lir/env.rs | 46 +++-- src/lir/error.rs | 9 +- src/lir/expr/const_expr.rs | 155 +++++++++++----- src/lir/expr/declaration.rs | 2 +- src/lir/expr/ops/arithmetic/mod.rs | 286 +++++++++++++++++------------ src/lir/expr/ops/mod.rs | 1 + src/lir/expr/procedure/poly.rs | 61 ++++-- src/lir/types/check.rs | 41 ++++- src/lir/types/mod.rs | 170 ++++++++++++----- src/lir/types/size.rs | 2 + 12 files changed, 545 insertions(+), 259 deletions(-) diff --git a/src/frontend/parse.rs b/src/frontend/parse.rs index f5108113..ad624d55 100644 --- a/src/frontend/parse.rs +++ b/src/frontend/parse.rs @@ -2617,7 +2617,7 @@ fn parse_struct_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( Declaration::Type( name.to_owned(), Type::Poly( - params.into_iter().map(|x| x.to_owned()).collect(), + params, Type::Struct(fields).into(), ), ), @@ -2678,7 +2678,7 @@ fn parse_enum_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( Declaration::Type( name.to_owned(), Type::Poly( - params.into_iter().map(|x| x.to_owned()).collect(), + params, Type::EnumUnion(fields).into(), ), ), @@ -2949,12 +2949,18 @@ fn parse_type_enum<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_type_params<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, -) -> IResult<&'a str, Vec, E> { +) -> IResult<&'a str, Vec<(String, Option)>, E> { let (input, _) = tag("<")(input)?; let (input, _) = whitespace(input)?; - let (input, mut params) = many0(terminated(parse_symbol, tag(",")))(input)?; + let (input, mut params) = many0(terminated(alt(( + map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty))), + map(parse_symbol, |x| (x, None)) + )), tag(",")))(input)?; let (input, _) = whitespace(input)?; - let (input, last_param) = opt(parse_symbol)(input)?; + let (input, last_param) = opt(alt(( + map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty))), + map(parse_symbol, |x| (x, None)) + )))(input)?; let (input, _) = whitespace(input)?; let (input, _) = tag(">")(input)?; @@ -2962,7 +2968,7 @@ fn parse_type_params<'a, E: ParseError<&'a str> + ContextError<&'a str>>( params.push(last_param); } - Ok((input, params.into_iter().map(|x| x.to_string()).collect())) + Ok((input, params.into_iter().map(|(name, ty)| (name.to_string(), ty)).collect())) } fn parse_type_function<'a, E: ParseError<&'a str> + ContextError<&'a str>>( @@ -3053,6 +3059,7 @@ fn parse_type_atom<'a, E: ParseError<&'a str> + ContextError<&'a str>>( parse_type_function, map(parse_symbol, |x| Type::Symbol(x.to_string())), parse_type_group, + map(parse_const_atom, |x| Type::ConstParam(x.into())) ))(input)?; Ok((input, ty)) diff --git a/src/lir/compile.rs b/src/lir/compile.rs index f2e0d120..04473aee 100644 --- a/src/lir/compile.rs +++ b/src/lir/compile.rs @@ -1071,13 +1071,17 @@ impl Compile for ConstExpr { let ty = self.get_type(env)?; // Compile the constant expression. match self { - Self::Template(_, _) => { + Self::Any + | Self::Template(_, _) => { // Cannot compile a template expression. return Err(Error::UnsizedType(ty)); } - Self::Type(_) => { - // Do nothing. + Self::Type(t) => { + match t.simplify(env)? { + Type::ConstParam(cexpr) => cexpr.compile_expr(env, output)?, + _ => {} + } } Self::Member(container, member) => { let new_container = *container.clone(); @@ -1164,7 +1168,7 @@ impl Compile for ConstExpr { } let mut result = *result.clone(); - for (param, ty_arg) in params.into_iter().zip(ty_args) { + for ((param, _), ty_arg) in params.into_iter().zip(ty_args) { result.substitute(¶m, &ty_arg); } result = result.eval(env)?; diff --git a/src/lir/env.rs b/src/lir/env.rs index ce432697..362c2a50 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -256,7 +256,7 @@ impl Env { let template = other_ty.clone(); let ty_params = template.get_template_params(self); - let ty_param_set = ty_params.clone().into_iter().collect::>(); + let ty_param_set = ty_params.clone().into_iter().map(|x| x.0).collect::>(); let monomorph = ty.clone(); debug!("Monomorph of {template} is {monomorph}"); let mut symbols = HashMap::new(); @@ -272,12 +272,12 @@ impl Env { debug!("Failed to get monomorph template args for {monomorph} of {template}"); continue; } - for (symbol, ty) in &symbols { - debug!("----> {symbol} == {ty}"); + for (symbol, (ty, specifier)) in &symbols { + debug!("----> {symbol} == {ty}: {specifier:?}"); } let template_associated_consts = consts.clone(); let mut ty_args = Vec::new(); - for ty_param in &ty_params { + for (ty_param, _) in &ty_params { if let Some(arg) = symbols.get(ty_param) { ty_args.push(arg.clone()); } else { @@ -300,7 +300,7 @@ impl Env { debug!("Found cached associated const (type) {name} of type {const_ty}"); // let result = const_ty.apply(ty_args.clone()).simplify_until_simple(self).ok()?; // let result = const_ty.apply(ty_args.clone()); - let result = const_ty.apply(ty_args.clone()); + let result = const_ty.apply(ty_args.clone().into_iter().map(|x|x.0).collect()); match result.simplify_until_simple(self) { Ok(result) => { debug!("Found associated const (type) {name} of type {ty} = {result}"); @@ -325,7 +325,7 @@ impl Env { } if !ty.can_decay_to(other_ty, self).unwrap_or(false) { - trace!("Type {other_ty} does not equal {ty}"); + // trace!("Type {other_ty} does not equal {ty}"); continue; } if let Some((constant, expr_ty)) = consts.get(name) { @@ -381,7 +381,7 @@ impl Env { let monomorph = ty.clone(); let mut symbols = HashMap::new(); let ty_params = template.get_template_params(self); - let ty_param_set = ty_params.clone().into_iter().collect::>(); + let ty_param_set = ty_params.clone().into_iter().map(|x| x.0).collect::>(); if monomorph .get_monomorph_template_args( &template.strip_template(self), @@ -394,13 +394,13 @@ impl Env { debug!("Failed to get monomorph template args for {monomorph} of {template}"); continue; } - for (symbol, ty) in &symbols { - debug!("----> {symbol} == {ty}"); - } + // for (symbol, ty) in &symbols { + // debug!("----> {symbol} == {ty}"); + // } let template_associated_consts = consts.clone(); let mut ty_args = Vec::new(); - for ty_param in &ty_params { - if let Some(arg) = symbols.get(ty_param) { + for (ty_param, _) in &ty_params { + if let Some((arg, _)) = symbols.get(ty_param) { ty_args.push(arg.clone()); } else { continue; @@ -541,7 +541,7 @@ impl Env { } pub(super) fn has_any_associated_const(&self, ty: &Type) -> bool { - trace!("Checking if type {ty} has any associated constants"); + // trace!("Checking if type {ty} has any associated constants"); let associated_constants = self.associated_constants.read().unwrap(); if let Some(consts) = associated_constants.get(ty) { if !consts.is_empty() { @@ -554,7 +554,7 @@ impl Env { continue; } if !ty.can_decay_to(other_ty, self).unwrap_or(false) { - trace!("Type {other_ty} does not equal {ty}"); + // trace!("Type {other_ty} does not equal {ty}"); continue; } trace!("Found eligible type {other_ty} for {ty}"); @@ -640,7 +640,7 @@ impl Env { // Strip off the template parameters from the type arguments. let mono_const = if let ConstExpr::Template(ty_params, cexpr) = const_expr { let mut tmp = *cexpr.clone(); - for (param, arg) in ty_params.iter().zip(ty_args.iter()) { + for ((param, _), arg) in ty_params.iter().zip(ty_args.iter()) { tmp.substitute(param, arg); } tmp @@ -773,7 +773,7 @@ impl Env { // if !self.types.contains_key(&name) { self.define_const(&name, access.clone()); if let Ok(Type::Type(ty)) = access.get_type(self) { - self.define_type(name, *ty); + self.define_type(&name, *ty); } } } @@ -852,7 +852,7 @@ impl Env { for (name, associated_const) in impls { let templated_const = - associated_const.template(supplied_param_symbols.clone()); + associated_const.template(template_params.clone()); self.add_associated_const(*template.clone(), name, templated_const)?; } } else { @@ -999,14 +999,22 @@ impl Env { Type::Symbol(sym) if sym == &name => { trace!("Defining type {ty} to itself as {name}"); } + Type::ConstParam(cexpr) => { + trace!("Defining constant param: {name} => {cexpr}"); + self.define_const(&name, *cexpr.clone()); + } _ => { trace!("Defining type {name} as {ty}"); Arc::make_mut(&mut self.consts).insert(name.clone(), ConstExpr::Type(ty.clone())); - Arc::make_mut(&mut self.types).insert(name, ty.clone()); + Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone()); if let Ok(simplified) = ty.simplify_until_concrete(self) { if let Ok(size) = simplified.get_size(self) { - self.set_precalculated_size(simplified, size); + self.set_precalculated_size(simplified.clone(), size); + } + if let Type::ConstParam(cexpr) = simplified { + trace!("Found const param \"{name}\": {cexpr}"); + self.define_const(&name, *cexpr); } } } diff --git a/src/lir/error.rs b/src/lir/error.rs index a85adff8..37b028de 100644 --- a/src/lir/error.rs +++ b/src/lir/error.rs @@ -17,7 +17,11 @@ pub enum Error { ), UnimplementedOperator(String), - + /// An error caused by unexpectedly passing a constant parameter to a template. + UnexpectedConstParam { + found: Type, + expr: Expr + }, /// An error caused by trying to assemble invalid code generated by the compiler. /// This should be taken seriously, unless the error is due to an invalid handwritten builtin. AssemblyError(crate::asm::Error), @@ -158,6 +162,9 @@ impl From for Error { impl Display for Error { fn fmt(&self, f: &mut Formatter) -> FmtResult { match self { + Self::UnexpectedConstParam { found, expr } => { + write!(f, "unexpected constant parameter {found} in expression {expr}") + } Self::Annotated(err, _) => { write!(f, "{err}") } diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index a6a153be..b4b2f289 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -29,6 +29,8 @@ pub enum ConstExpr { /// Bind a list of types in a constant expression. Declare(Box, Box), + /// The expression equal to any other expression. + Any, /// The unit, or "void" instance. None, /// The null pointer constant. @@ -86,7 +88,7 @@ pub enum ConstExpr { /// Monomorphize a constant expression with some type arguments. Monomorphize(Box, Vec), - Template(Vec, Box), + Template(Vec<(String, Option)>, Box), /// Get an attribute of a constant expression. Member(Box, Box), @@ -103,7 +105,14 @@ impl ConstExpr { Self::Monomorphize(Box::new(self), ty_args) } - pub fn template(&self, params: Vec) -> Self { + pub fn equals(&self, other: &Self) -> bool { + match (self, other) { + (Self::Any, _) | (_, Self::Any) => true, + (a, b) => a == b, + } + } + + pub fn template(&self, params: Vec<(String, Option)>) -> Self { match self { Self::Proc(proc) => Self::PolyProc(PolyProcedure::from_mono(proc.clone(), params)), Self::Declare(decls, inner) => inner.template(params).with(decls.clone()), @@ -340,7 +349,9 @@ impl ConstExpr { } }) } - Self::None + + Self::Any + | Self::None | Self::Null | Self::Cell(_) | Self::Int(_) @@ -352,8 +363,14 @@ impl ConstExpr { | Self::StandardBuiltin(_) | Self::FFIProcedure(_) | Self::Proc(_) - | Self::PolyProc(_) - | Self::Type(_) => Ok(self), + | Self::PolyProc(_) => Ok(self), + Self::Type(ty) => { + if let Type::ConstParam(cexpr) = ty { + cexpr.eval_checked(env, i) + } else { + Ok(Self::Type(ty.clone().simplify(env)?)) + } + } Self::Declare(bindings, expr) => { debug!("Declaring compile time bindings: {bindings}"); @@ -369,7 +386,7 @@ impl ConstExpr { } let mut ret = ret.clone(); - for (param, ty_arg) in params.iter().zip(ty_args.iter()) { + for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) { ret.substitute(param, ty_arg); } *ret @@ -530,15 +547,27 @@ impl GetType for ConstExpr { fn get_type_checked(&self, env: &Env, i: usize) -> Result { trace!("Getting type from constexpr: {self}"); Ok(match self.clone() { + Self::Any => Type::Any, Self::Template(params, expr) => { let mut new_env = env.clone(); - for param in ¶ms { - new_env.define_type(param, Type::Symbol(param.clone())); + for (param, ty) in ¶ms { + if let Some(ty) = ty { + new_env.define_type(param, ty.clone()); + } else { + new_env.define_type(param, Type::Symbol(param.clone())); + } } Type::Poly(params, expr.get_type_checked(&new_env, i)?.into()) } - Self::Type(t) => Type::Type(t.into()), + Self::Type(t) => { + if let Type::ConstParam(cexpr) = t.clone().simplify(env)? { + // Type::ConstParam(cexpr.eval(env)?.into()) + cexpr.get_type(env)? + } else { + Type::Type(t.into()) + } + } Self::Member(val, field) => { // Get the field to access (as a symbol) @@ -712,11 +741,22 @@ impl GetType for ConstExpr { } let mut ret = ret.clone(); - - for (param, ty_arg) in params.iter().zip(ty_args.iter()) { - ret.substitute(param, ty_arg); + let mut new_env = env.clone(); + for ((param, ty), ty_arg) in params.iter().zip(ty_args.iter()) { + if let Type::ConstParam(cexpr) = ty_arg { + if let Some(expected_ty) = ty { + let expected = expected_ty.clone(); + let found = cexpr.get_type_checked(env, i)?; + if !found.equals(expected_ty, env)? { + return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() }) + } + } + new_env.define_const(param, *cexpr.clone()); + } else { + ret.substitute(param, ty_arg) + } } - ret.get_type_checked(env, i)? + ret.get_type_checked(&new_env, i)? .simplify_until_type_checks(env)? } _ => { @@ -810,49 +850,49 @@ impl GetType for ConstExpr { }) } - fn substitute(&mut self, name: &str, subsitution: &Type) { + fn substitute(&mut self, name: &str, substitution: &Type) { match self { Self::Type(t) => { - *t = t.substitute(name, subsitution); + *t = t.substitute(name, substitution); } Self::Template(params, ret) => { - if params.contains(&name.to_string()) { + if params.iter().map(|x| x.0.clone()).collect::>().contains(&name.to_string()) { return; } - ret.substitute(name, subsitution); + ret.substitute(name, substitution); } Self::Member(container, member) => { - container.substitute(name, subsitution); - member.substitute(name, subsitution); + container.substitute(name, substitution); + member.substitute(name, substitution); } Self::Annotated(expr, _) => { - expr.substitute(name, subsitution); + expr.substitute(name, substitution); } Self::As(expr, cast_ty) => { - expr.substitute(name, subsitution); - *cast_ty = cast_ty.substitute(name, subsitution); + expr.substitute(name, substitution); + *cast_ty = cast_ty.substitute(name, substitution); } Self::Declare(bindings, expr) => { - bindings.substitute(name, subsitution); - expr.substitute(name, subsitution); + bindings.substitute(name, substitution); + expr.substitute(name, substitution); } Self::Monomorphize(expr, ty_args) => { - expr.substitute(name, subsitution); + expr.substitute(name, substitution); for ty_arg in ty_args { - *ty_arg = ty_arg.substitute(name, subsitution); + *ty_arg = ty_arg.substitute(name, substitution); } } Self::TypeOf(expr) => { - expr.substitute(name, subsitution); + expr.substitute(name, substitution); } Self::Null => {} Self::None => {} Self::SizeOfType(inner_ty) => { - *inner_ty = inner_ty.substitute(name, subsitution); + *inner_ty = inner_ty.substitute(name, substitution); } Self::SizeOfExpr(expr) => { - expr.substitute(name, subsitution); + expr.substitute(name, substitution); } Self::Cell(_) => {} Self::Int(_) => {} @@ -860,49 +900,53 @@ impl GetType for ConstExpr { Self::Char(_) => {} Self::Bool(_) => {} Self::Of(enum_type, _) => { - *enum_type = enum_type.substitute(name, subsitution); + *enum_type = enum_type.substitute(name, substitution); } Self::Tuple(items) => { for item in items { - item.substitute(name, subsitution); + item.substitute(name, substitution); } } Self::Array(items) => { for item in items { - item.substitute(name, subsitution); + item.substitute(name, substitution); } } Self::Struct(fields) => { for item in fields.values_mut() { - item.substitute(name, subsitution); + item.substitute(name, substitution); } } Self::Union(inner, _, expr) => { - *inner = inner.substitute(name, subsitution); - expr.substitute(name, subsitution); + *inner = inner.substitute(name, substitution); + expr.substitute(name, substitution); } Self::EnumUnion(inner, _, expr) => { - *inner = inner.substitute(name, subsitution); - expr.substitute(name, subsitution); + *inner = inner.substitute(name, substitution); + expr.substitute(name, substitution); } Self::PolyProc(proc) => { - proc.substitute(name, subsitution); + proc.substitute(name, substitution); } Self::Proc(proc) => { - proc.substitute(name, subsitution); + proc.substitute(name, substitution); } Self::CoreBuiltin(builtin) => { - builtin.substitute(name, subsitution); + builtin.substitute(name, substitution); } Self::StandardBuiltin(builtin) => { - builtin.substitute(name, subsitution); + builtin.substitute(name, substitution); } Self::FFIProcedure(ffi_proc) => { - ffi_proc.substitute(name, subsitution); + ffi_proc.substitute(name, substitution); } - Self::Symbol(_) => { + Self::Symbol(symbol_name) if symbol_name == name => { // A constant symbol cannot be substituted for a type variable. + warn!("Subbing {self} for {substitution}"); + *self = ConstExpr::Type(substitution.clone()); + warn!("Subbed into {self}"); } + _ => {} } } } @@ -910,10 +954,14 @@ impl GetType for ConstExpr { impl fmt::Display for ConstExpr { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { + Self::Any => write!(f, "any"), Self::Template(params, expr) => { write!(f, "<")?; - for (i, param) in params.iter().enumerate() { + for (i, (param, ty)) in params.iter().enumerate() { write!(f, "{param}")?; + if let Some(ty) = ty { + write!(f, ": {ty}")?; + } if i < params.len() - 1 { write!(f, ", ")? } @@ -1144,8 +1192,27 @@ impl Hash for ConstExpr { state.write_u8(28); ty.hash(state); } + Self::Any => state.write_u8(29), } } } impl Eq for ConstExpr {} + +impl From for ConstExpr { + fn from(value: PolyProcedure) -> Self { + Self::PolyProc(value) + } +} + +impl From for ConstExpr { + fn from(value: Procedure) -> Self { + Self::Proc(value) + } +} + +impl From for ConstExpr { + fn from(value: Type) -> Self { + Self::Type(value) + } +} \ No newline at end of file diff --git a/src/lir/expr/declaration.rs b/src/lir/expr/declaration.rs index 3ae12d37..fee69f97 100644 --- a/src/lir/expr/declaration.rs +++ b/src/lir/expr/declaration.rs @@ -571,7 +571,7 @@ impl TypeCheck for Declaration { for (name, associated_const) in impls { let templated_const = - associated_const.template(supplied_param_symbols.clone()); + associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect()); new_env.add_associated_const( *template.clone(), name, diff --git a/src/lir/expr/ops/arithmetic/mod.rs b/src/lir/expr/ops/arithmetic/mod.rs index 80761512..e1e9be24 100644 --- a/src/lir/expr/ops/arithmetic/mod.rs +++ b/src/lir/expr/ops/arithmetic/mod.rs @@ -32,6 +32,147 @@ pub enum Arithmetic { } impl BinaryOp for Arithmetic { + /// Compiles the operation on the given expressions. + fn compile( + &self, + lhs: &Expr, + rhs: &Expr, + env: &mut Env, + output: &mut dyn AssemblyProgram, + ) -> Result<(), Error> { + if let Expr::Annotated(lhs, metadata) = lhs { + return self + .compile(lhs, rhs, env, output) + .map_err(|err| err.annotate(metadata.clone())); + } + if let Expr::Annotated(rhs, metadata) = rhs { + return self + .compile(lhs, rhs, env, output) + .map_err(|err| err.annotate(metadata.clone())); + } + + // trace!("Compiling binary op: {lhs} {self} {rhs} ({self:?})"); + lhs.clone().compile_expr(env, output)?; + rhs.clone().compile_expr(env, output)?; + // self.compile_types(&, &rhs.get_type(env)?, env, output)?; + let lhs_expr = lhs; + let rhs_expr = rhs; + let lhs = &lhs_expr.get_type(env)?; + let rhs = &rhs_expr.get_type(env)?; + + if let (Type::Array(_, _), Arithmetic::Multiply, Type::Int) = (lhs, self, rhs) { + if !rhs.equals(&Type::Int, env)? { + return Err(Error::MismatchedTypes { expected: Type::Int, found: rhs.clone(), expr: rhs_expr.clone() }) + } + + // Copy the loop RHS times. + // This will just evaluate the array, evaluate the int, and then repeatedly + // copy the array back onto the stack `rhs` times. + let arr_size = lhs.get_size(env)?; + // Copy the integer into a register. + output.op(CoreOp::Many(vec![ + // Pop into B + CoreOp::Pop(Some(B), 1), + // Store the address of the array in A. + CoreOp::GetAddress { + addr: SP.deref().offset(1 - arr_size as isize), + dst: A, + }, + // While B != 0 + CoreOp::Dec(B), + CoreOp::While(B), + // Push the array back onto the stack, starting at A + CoreOp::Push(A.deref(), arr_size), + // Decrement B + CoreOp::Dec(B), + CoreOp::End, + ])); + + return Ok(()); + } + + let src = SP.deref(); + let dst = SP.deref().offset(-1); + let tmp = SP.deref().offset(1); + // Get the respective core operation for the current expression. + let core_op = match self { + Self::Add => CoreOp::Add { src, dst }, + Self::Subtract => CoreOp::Sub { src, dst }, + Self::Multiply => CoreOp::Mul { src, dst }, + Self::Divide => CoreOp::Div { src, dst }, + Self::Remainder => CoreOp::Rem { src, dst }, + Self::Power => CoreOp::Many(vec![ + // We can't use the `Pow` operation, because it's not supported by + // the core variant. So we have to do it with a loop. + CoreOp::Move { + src: dst.clone(), + dst: tmp.clone(), + }, + CoreOp::Set(dst.clone(), 1), + CoreOp::While(src.clone()), + CoreOp::Mul { src: tmp, dst }, + CoreOp::Dec(src), + CoreOp::End, + ]), + }; + let src = SP.deref(); + let dst = SP.deref().offset(-1); + // Get the respective standard operation for the current expression. + let std_op = match self { + Self::Add => StandardOp::Add { src, dst }, + Self::Subtract => StandardOp::Sub { src, dst }, + Self::Multiply => StandardOp::Mul { src, dst }, + Self::Divide => StandardOp::Div { src, dst }, + Self::Remainder => StandardOp::Rem { src, dst }, + Self::Power => StandardOp::Pow { src, dst }, + }; + // Now, perform the correct assembly expressions based on the types of the two expressions. + match (lhs, rhs) { + // If a `Float` and a `Cell` are used, we just interpret the `Cell` as a `Float`. + (Type::Cell, Type::Float) | (Type::Float, Type::Cell) => { + output.std_op(std_op)?; + } + // Two floats are used as floats. + (Type::Float, Type::Float) => { + output.std_op(std_op)?; + } + // An integer used with a float is promoted, and returns a float. + (Type::Int, Type::Float) => { + output.std_op(StandardOp::ToFloat(SP.deref().offset(-1)))?; + output.std_op(std_op)?; + } + (Type::Float, Type::Int) => { + output.std_op(StandardOp::ToFloat(SP.deref()))?; + output.std_op(std_op)?; + } + + // If cells and/or ints are used, we just use them as integers. + (Type::Int, Type::Int) + | (Type::Cell, Type::Cell) + | (Type::Cell, Type::Int) + | (Type::Int, Type::Cell) => { + output.op(core_op); + } + + (Type::Unit(_name1, a_type), Type::Unit(_name2, b_type)) => { + return self.compile_types(a_type, b_type, env, output); + } + + // Cannot do arithmetic on other pairs of types. + _ => { + return Err(Error::InvalidBinaryOpTypes( + Box::new(*self), + lhs.clone(), + rhs.clone(), + )) + } + } + // Pop `b` off of the stack: we only needed it to evaluate + // the arithmetic and store the result to `a` on the stack. + output.op(CoreOp::Pop(None, 1)); + Ok(()) + } + /// Can this binary operation be applied to the given types? fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result { match (lhs, rhs) { @@ -40,6 +181,7 @@ impl BinaryOp for Arithmetic { Ok(true) } (Type::Array(_, _), Type::Int) => Ok(matches!(self, Self::Multiply)), + (Type::Array(_, _), Type::Type(..)) => Ok(matches!(self, Self::Multiply)), (Type::Int | Type::Float | Type::Cell, Type::Cell) | (Type::Cell, Type::Int | Type::Float) => Ok(true), @@ -62,6 +204,7 @@ impl BinaryOp for Arithmetic { /// Get the type of the result of applying this binary operation to the given types. fn return_type(&self, lhs: &Expr, rhs: &Expr, env: &Env) -> Result { + error!("Can I {self} to {lhs} and {rhs} in {env}?"); if let Expr::Annotated(lhs, metadata) = lhs { if let Expr::Annotated(rhs, _) = rhs { return self.return_type(lhs, rhs, env); @@ -75,8 +218,11 @@ impl BinaryOp for Arithmetic { .return_type(lhs, rhs, env) .map_err(|e| e.annotate(metadata.clone())); } + let lhs_ty = lhs.get_type(env)?; + let rhs_ty = rhs.get_type(env)?; - Ok(match (lhs.get_type(env)?, rhs.get_type(env)?) { + error!("Can I {self} to {lhs_ty} and {rhs_ty} in {env}?"); + let result = Ok(match (lhs_ty.discard_type_wrapper(), rhs_ty.discard_type_wrapper()) { (Type::Int, Type::Int) => Type::Int, (Type::Int, Type::Float) | (Type::Float, Type::Int) | (Type::Float, Type::Float) => { Type::Float @@ -84,19 +230,22 @@ impl BinaryOp for Arithmetic { (Type::Int | Type::Float | Type::Cell, Type::Cell) | (Type::Cell, Type::Int | Type::Float) => Type::Cell, - (Type::Array(elem, size), Type::Int) => { + (Type::Array(elem, size), other) => { if let (Self::Multiply, Expr::ConstExpr(const_rhs)) = (self, rhs) { let size = size.as_int(env)?; - let n = const_rhs.clone().as_int(env)?; - if n <= 0 { - error!("Cannot multiply array {lhs} by {n} (not positive)"); - return Err(Error::InvalidBinaryOp( - Box::new(*self), - lhs.clone(), - rhs.clone(), - )); + if let Ok(n) = const_rhs.clone().as_int(env) { + if n <= 0 { + error!("Cannot multiply array {lhs} by {n} (not positive)"); + return Err(Error::InvalidBinaryOp( + Box::new(*self), + lhs.clone(), + rhs.clone(), + )); + } + Type::Array(elem, Box::new(ConstExpr::Int(size * n))) + } else { + Type::Array(elem, Box::new(ConstExpr::Any)) } - Type::Array(elem, Box::new(ConstExpr::Int(size * n))) } else { error!("Cannot multiply array {lhs} by {rhs} (not constant = {rhs:?})"); return Err(Error::InvalidBinaryOp( @@ -120,6 +269,7 @@ impl BinaryOp for Arithmetic { (Type::Unit(name1, a_type), Type::Unit(name2, b_type)) => { // Make sure that the two units are the same. if name1 != name2 { + error!("{name1} is not {name2}"); return Err(Error::InvalidBinaryOp( Box::new(*self), lhs.clone(), @@ -129,6 +279,7 @@ impl BinaryOp for Arithmetic { // Make sure that inner types are compatible. if !a_type.equals(&b_type, env)? { + error!("{a_type} is not {b_type}"); return Err(Error::InvalidBinaryOp( Box::new(*self), lhs.clone(), @@ -138,14 +289,17 @@ impl BinaryOp for Arithmetic { Type::Unit(name1, a_type) } - _ => { + (a, b) => { + error!("Unhandled case {a} {self} {b}"); return Err(Error::InvalidBinaryOp( Box::new(*self), lhs.clone(), rhs.clone(), )) } - }) + }); + error!("Well, can I?? {result:?}"); + result } /// Evaluate this binary operation on the given constant values. @@ -257,112 +411,6 @@ impl BinaryOp for Arithmetic { env: &mut Env, output: &mut dyn AssemblyProgram, ) -> Result<(), Error> { - if let (Type::Array(_, _), Arithmetic::Multiply, Type::Int) = (lhs, self, rhs) { - // Copy the loop RHS times. - // This will just evaluate the array, evaluate the int, and then repeatedly - // copy the array back onto the stack `rhs` times. - let arr_size = lhs.get_size(env)?; - // Copy the integer into a register. - output.op(CoreOp::Many(vec![ - // Pop into B - CoreOp::Pop(Some(B), 1), - // Store the address of the array in A. - CoreOp::GetAddress { - addr: SP.deref().offset(1 - arr_size as isize), - dst: A, - }, - // While B != 0 - CoreOp::Dec(B), - CoreOp::While(B), - // Push the array back onto the stack, starting at A - CoreOp::Push(A.deref(), arr_size), - // Decrement B - CoreOp::Dec(B), - CoreOp::End, - ])); - - return Ok(()); - } - - let src = SP.deref(); - let dst = SP.deref().offset(-1); - let tmp = SP.deref().offset(1); - // Get the respective core operation for the current expression. - let core_op = match self { - Self::Add => CoreOp::Add { src, dst }, - Self::Subtract => CoreOp::Sub { src, dst }, - Self::Multiply => CoreOp::Mul { src, dst }, - Self::Divide => CoreOp::Div { src, dst }, - Self::Remainder => CoreOp::Rem { src, dst }, - Self::Power => CoreOp::Many(vec![ - // We can't use the `Pow` operation, because it's not supported by - // the core variant. So we have to do it with a loop. - CoreOp::Move { - src: dst.clone(), - dst: tmp.clone(), - }, - CoreOp::Set(dst.clone(), 1), - CoreOp::While(src.clone()), - CoreOp::Mul { src: tmp, dst }, - CoreOp::Dec(src), - CoreOp::End, - ]), - }; - let src = SP.deref(); - let dst = SP.deref().offset(-1); - // Get the respective standard operation for the current expression. - let std_op = match self { - Self::Add => StandardOp::Add { src, dst }, - Self::Subtract => StandardOp::Sub { src, dst }, - Self::Multiply => StandardOp::Mul { src, dst }, - Self::Divide => StandardOp::Div { src, dst }, - Self::Remainder => StandardOp::Rem { src, dst }, - Self::Power => StandardOp::Pow { src, dst }, - }; - // Now, perform the correct assembly expressions based on the types of the two expressions. - match (lhs, rhs) { - // If a `Float` and a `Cell` are used, we just interpret the `Cell` as a `Float`. - (Type::Cell, Type::Float) | (Type::Float, Type::Cell) => { - output.std_op(std_op)?; - } - // Two floats are used as floats. - (Type::Float, Type::Float) => { - output.std_op(std_op)?; - } - // An integer used with a float is promoted, and returns a float. - (Type::Int, Type::Float) => { - output.std_op(StandardOp::ToFloat(SP.deref().offset(-1)))?; - output.std_op(std_op)?; - } - (Type::Float, Type::Int) => { - output.std_op(StandardOp::ToFloat(SP.deref()))?; - output.std_op(std_op)?; - } - - // If cells and/or ints are used, we just use them as integers. - (Type::Int, Type::Int) - | (Type::Cell, Type::Cell) - | (Type::Cell, Type::Int) - | (Type::Int, Type::Cell) => { - output.op(core_op); - } - - (Type::Unit(_name1, a_type), Type::Unit(_name2, b_type)) => { - return self.compile_types(a_type, b_type, env, output); - } - - // Cannot do arithmetic on other pairs of types. - _ => { - return Err(Error::InvalidBinaryOpTypes( - Box::new(*self), - lhs.clone(), - rhs.clone(), - )) - } - } - // Pop `b` off of the stack: we only needed it to evaluate - // the arithmetic and store the result to `a` on the stack. - output.op(CoreOp::Pop(None, 1)); Ok(()) } diff --git a/src/lir/expr/ops/mod.rs b/src/lir/expr/ops/mod.rs index c3357ea5..fb22fe61 100644 --- a/src/lir/expr/ops/mod.rs +++ b/src/lir/expr/ops/mod.rs @@ -311,6 +311,7 @@ pub trait BinaryOp: std::fmt::Debug + std::fmt::Display + Send + Sync { self.compile_types(&lhs.get_type(env)?, &rhs.get_type(env)?, env, output)?; Ok(()) } + /// Compiles the operation on the given types. (Generates the code for the operation.) fn compile_types( &self, diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index bf5c3c7f..763943d7 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -23,7 +23,7 @@ pub struct PolyProcedure { /// The name of the procedure. name: String, /// The type parameters of the procedure. - ty_params: Vec, + ty_params: Vec<(String, Option)>, /// The arguments of the procedure. args: Vec<(String, Mutability, Type)>, /// The return type of the procedure. @@ -52,7 +52,7 @@ impl PolyProcedure { /// a return type, and the body of the procedure. pub fn new( name: String, - ty_params: Vec, + ty_params: Vec<(String, Option)>, args: Vec<(String, Mutability, Type)>, ret: Type, body: impl Into, @@ -77,7 +77,7 @@ impl PolyProcedure { } } - pub fn from_mono(mono: Procedure, ty_params: Vec) -> Self { + pub fn from_mono(mono: Procedure, ty_params: Vec<(String, Option)>) -> Self { debug!(target: "mono", "Creating polymorphic procedure from monomorph {}", mono); let name = mono .get_common_name() @@ -102,6 +102,10 @@ impl PolyProcedure { &self.name } + fn type_param_names(&self) -> Vec { + self.ty_params.clone().into_iter().map(|(ty, _)| ty).collect() + } + /// Take some type arguments and produce a monomorphized version of the procedure. /// This monomorphized version can then be compiled directly. Additionally, the /// mono version of the procedure is memoized, so that it is only compiled once. @@ -111,6 +115,21 @@ impl PolyProcedure { // This is a helper function to distribute the defined type // arguments over the body and arguments of the function. + for ((_name, ty_param), ty_arg) in self.ty_params.iter().zip(ty_args.iter()) { + if let Some(ty_param) = ty_param { + if !ty_param.equals(&ty_arg, env)? { + return Err(Error::MismatchedTypes { expected: ty_param.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + } + } else { + use crate::lir::Simplify; + if matches!(ty_arg.clone().simplify(env)?, Type::ConstParam(..)) { + return Err(Error::UnexpectedConstParam { + found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) + }) + } + } + } + // Simplify all the type arguments until they are concrete let simplified_ty_args = ty_args .clone() @@ -172,11 +191,11 @@ impl PolyProcedure { let mut body = *self.body.clone(); // Substitute the type arguments into the body of the function. - body.substitute_types(&self.ty_params, &simplified_ty_args); + body.substitute_types(&self.type_param_names(), &simplified_ty_args); // Wrap the body in a let expression to bind the type arguments. body = body.with( - self.ty_params + self.type_param_names() .iter() .zip(simplified_ty_args.iter()) .map(|(a, b)| (a.clone(), b.clone())) @@ -206,7 +225,7 @@ impl GetType for PolyProcedure { } fn substitute(&mut self, name: &str, ty: &Type) { - if self.ty_params.contains(&name.to_string()) { + if self.type_param_names().contains(&name.to_string()) { return; } self.args @@ -227,13 +246,24 @@ impl TypeCheck for PolyProcedure { // Create a new scope for the procedure's body, and define the arguments for the scope. let mut new_env = env.new_scope(); // Define the type parameters of the procedure. - new_env.define_types( - self.ty_params - .clone() - .into_iter() - .map(|ty_param| (ty_param.clone(), Type::Unit(ty_param, Box::new(Type::None)))) - .collect(), - ); + // new_env.define_types( + // self.type_param_names() + // .clone() + // .into_iter() + // .map(|ty_param| (ty_param.clone(), Type::Unit(ty_param, Box::new(Type::None)))) + // .collect(), + // ); + + for (name, ty) in &self.ty_params { + match ty { + Some(ty) => { + new_env.define_type(name, ty.clone()); + } + None => { + new_env.define_type(name, Type::Unit(name.clone(), Box::new(Type::None))); + } + } + } // Define the arguments of the procedure. new_env.define_args(self.args.clone())?; new_env.set_expected_return_type(self.ret.clone()); @@ -268,8 +298,11 @@ impl TypeCheck for PolyProcedure { impl fmt::Display for PolyProcedure { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "proc[")?; - for (i, ty_param) in self.ty_params.iter().enumerate() { + for (i, (ty_param, ty)) in self.ty_params.iter().enumerate() { write!(f, "{}", ty_param)?; + if let Some(ty) = ty { + write!(f, ": {}", ty)?; + } if i < self.ty_params.len() - 1 { write!(f, ", ")?; } diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index e210a1a0..1e492a44 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -40,6 +40,7 @@ impl TypeCheck for Type { | Self::Char | Self::Enum(_) => Ok(()), + Self::ConstParam(cexpr) => cexpr.type_check(env), Self::Type(t) => t.type_check(env), // Units are sound if their inner type is sound. @@ -69,11 +70,16 @@ impl TypeCheck for Type { // Check the inner type and the length constant-expression. t.type_check(env)?; len.clone().type_check(env)?; + // Check that the length is non-negative. - if len.clone().as_int(env)? < 0 { - // If it is negative, return an error. - error!("Negative array length detected in type {self} in environment {env}"); - return Err(Error::NegativeArrayLength(Expr::ConstExpr(*len.clone()))); + warn!("About to convert {len} to int"); + match len.clone().as_int(env) { + Ok(n) if n < 0 => { + // If it is negative, return an error. + error!("Negative array length detected in type {self} in environment {env}"); + return Err(Error::NegativeArrayLength(Expr::ConstExpr(*len.clone()))); + } + _ => {} } // Otherwise, return success. Ok(()) @@ -129,7 +135,7 @@ impl TypeCheck for Type { ty_params .clone() .into_iter() - .map(|p| (p.clone(), Type::Unit(p, Box::new(Type::Any)))) + .map(|p| (p.0.clone(), Type::Unit(p.0, Box::new(Type::Any)))) .collect(), ); // Check the template type. @@ -732,9 +738,9 @@ impl TypeCheck for Expr { let expected = env .get_expected_return_type() .cloned() - .unwrap_or(Type::None); + .unwrap_or(Type::None).simplify(env)?; if !found.can_decay_to(&expected, env)? { - error!("The found return type does not match expected type"); + error!("The found return type {found} does not match expected type {expected} in {env}"); return Err(Error::MismatchedTypes { expected, found, @@ -931,6 +937,7 @@ impl TypeCheck for ConstExpr { debug!("Typechecking constant expression: {}", self); match self { + Self::Any => Ok(()), Self::Template(_ty_params, _template) => { // Create a new environment with the type parameters defined. // let mut new_env = env.clone(); @@ -1025,9 +1032,23 @@ impl TypeCheck for ConstExpr { // Create a new environment with the type parameters defined. let mut new_env = env.clone(); // Define the type parameters in the environment. - new_env.define_types( - ty_params.clone().into_iter().zip(ty_args.clone()).collect(), - ); + // new_env.define_types( + // ty_params.clone().into_iter().map(|x| x.0).zip(ty_args.clone()).collect(), + // ); + for ((name, ty_param), ty_arg) in ty_params.iter().zip(ty_args) { + new_env.define_type(name, match ty_param { + Some(ty_param) => { + if !ty_arg.equals(ty_param, env)? { + return Err(Error::InvalidMonomorphize(self.clone())) + } + ty_arg.clone() + } + None => { + ty_arg.clone() + } + }) + } + // Check the template type. template.type_check(&new_env) // Ok(()) diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 6bf4a206..55d34505 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -191,11 +191,15 @@ pub enum Type { /// The type takes a list of symbols that are substituted with concrete types. /// The type is then simplified to a concrete type when combined with `Apply`. /// This type is used to implement generics. - Poly(Vec, Box), + Poly(Vec<(String, Option)>, Box), /// A type that constructs a concrete type from a polymorphic type. /// This type is used to implement generics. Apply(Box, Vec), + + /// A constant literal used in a type expression, like a template application + /// with a constant parameter. + ConstParam(Box), } lazy_static::lazy_static! { @@ -216,6 +220,13 @@ impl Type { self.is_recursive_helper(&mut symbols, env) } + pub(crate) fn discard_type_wrapper(self) -> Self { + match self { + Self::Type(ty) | Self::Unit(_, ty) => *ty, + other => other + } + } + pub fn is_recursive_helper( &self, symbols: &mut HashSet, @@ -265,7 +276,7 @@ impl Type { } Self::Poly(params, t) => { - for param in params { + for (param, _) in params { symbols.remove(param); } t.is_recursive_helper(symbols, env) @@ -317,7 +328,9 @@ impl Type { Ok(false) } Self::Enum(_) => Ok(false), - Self::None + + Self::ConstParam(_) + | Self::None | Self::Int | Self::Float | Self::Cell @@ -364,7 +377,7 @@ impl Type { pub fn get_monomorph_template_args( &self, template: &Self, - matched_symbols: &mut HashMap, + matched_symbols: &mut HashMap)>, param_symbols: &HashSet, env: &Env, ) -> Result<(), Error> { @@ -454,9 +467,9 @@ impl Type { } (Self::Apply(template, args), Self::Poly(params, ret)) => { - for (param, arg) in params.iter().zip(args.iter()) { + for ((param, expected), arg) in params.iter().zip(args.iter()) { // ret.get_monomorph_template_args(arg, symbols, env)?; - matched_symbols.insert(param.clone(), arg.clone()); + matched_symbols.insert(param.clone(), (arg.clone(), expected.clone())); debug!("Found match {}: {}", param, arg); } template.get_monomorph_template_args(ret, matched_symbols, param_symbols, env)?; @@ -465,7 +478,7 @@ impl Type { (Self::Apply(template, args), other) => { if let Ok(Self::Poly(params, ret)) = template.simplify_until_poly(env) { let mut ret = *ret.clone(); - for (param, arg) in params.iter().zip(args.iter()) { + for ((param, _), arg) in params.iter().zip(args.iter()) { ret = ret.substitute(param, arg); } @@ -475,7 +488,7 @@ impl Type { (other, Self::Symbol(name)) => { if param_symbols.contains(name) { debug!("Found match {}: {}", name, other); - matched_symbols.insert(name.clone(), other.clone()); + matched_symbols.insert(name.clone(), (other.clone(), None)); } else if let Some(t) = env.get_type(name) { debug!("Symbol {name} is {t}"); other.get_monomorph_template_args(t, matched_symbols, param_symbols, env)?; @@ -506,7 +519,7 @@ impl Type { (Self::Apply(template1, _), template2) => template1.equals(template2, env), (concrete, Self::Poly(params, result)) => { let mut result = *result.clone(); - for param in params { + for (param, _) in params { result = result.substitute(param, &Type::Any); } concrete.equals(&result, env) @@ -593,6 +606,7 @@ impl Type { // t.add_monomorphized_associated_consts(env)?; } Self::Let(_, _, _) + | Self::ConstParam(_) | Self::Any | Self::None | Self::Never @@ -606,25 +620,25 @@ impl Type { Ok(()) } - pub fn get_template_params(&self, env: &Env) -> Vec { + pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option)> { debug!("get_template_params: {}", self); match self.simplify_until_poly(env) { Ok(Self::Poly(params, _)) => { - debug!( - "get_template_params: {} params: {}", - self, - params.join(", ") - ); + // debug!( + // "get_template_params: {} params: {}", + // self, + // params.join(", ") + // ); params.clone() } Ok(Self::Symbol(name)) => { if let Some(t) = env.get_type(&name) { let result = t.get_template_params(env); - debug!( - "get_template_params: {} params: {}", - name, - result.join(", ") - ); + // debug!( + // "get_template_params: {} params: {}", + // name, + // result.join(", ") + // ); result } else { debug!("get_template_params: Couldn't find type {}", name); @@ -663,6 +677,7 @@ impl Type { | Self::Bool | Self::Any | Self::Never + | Self::ConstParam(_) | Self::Enum(_) | Self::Type(_) => true, Self::Unit(_, t) => t.is_simple(), @@ -682,7 +697,7 @@ impl Type { return false; } let mut ret = *ret.clone(); - for (param, arg) in params.iter().zip(args.iter()) { + for ((param, _), arg) in params.iter().zip(args.iter()) { if !arg.is_simple() { return false; } @@ -710,6 +725,7 @@ impl Type { | Self::Bool | Self::Any | Self::Never + | Self::ConstParam(_) | Self::Enum(_) | Self::EnumUnion(_) | Self::Struct(_) @@ -735,6 +751,7 @@ impl Type { | Self::Any | Self::Never | Self::Enum(_) + | Self::ConstParam(_) | Self::Type(_) => true, Self::Unit(_, t) => t.is_atomic(), Self::Tuple(inner) => inner.iter().all(|t| t.is_atomic()), @@ -774,7 +791,7 @@ impl Type { Ok(Self::Apply(template, args)) => { if let Self::Poly(ref params, ref inner) = *template { let mut inner = *inner.clone(); - for (param, arg) in params.iter().zip(args.iter()) { + for ((param, _), arg) in params.iter().zip(args.iter()) { inner = inner.substitute(param, arg); } inner.get_self_param_mutability(env) @@ -970,7 +987,7 @@ impl Type { } Self::Type(t) => t.contains_symbol(name), Self::Poly(ty_params, template) => { - if ty_params.contains(&name.to_string()) { + if ty_params.iter().map(|x| x.0.clone()).collect::>().contains(&name.to_string()) { // This type variable is shadowed by a template variable. false } else { @@ -990,6 +1007,12 @@ impl Type { t.contains_symbol(name) || (typename != name && ret.contains_symbol(name)) } Self::Symbol(typename) => typename == name, + Self::ConstParam(cexpr) => { + match &**cexpr { + ConstExpr::Symbol(const_name) | ConstExpr::Type(Type::Symbol(const_name)) => name == const_name, + _ => false + } + } Self::None | Self::Never | Self::Any @@ -1016,7 +1039,8 @@ impl Type { /// Substitute all occurences of a symbol with another type. /// This will not traverse into let-bindings when the symbol is overshadowed. pub fn substitute(&self, name: &str, substitution: &Self) -> Self { - match self { + warn!("Subbing {name} for {substitution} in {self}"); + let result = match self { Self::Type(t) => Self::Type(Box::new(t.substitute(name, substitution))), Self::Let(typename, binding, ret) => Self::Let( typename.clone(), @@ -1036,7 +1060,7 @@ impl Type { }, ), Self::Poly(ty_params, template) => { - if ty_params.contains(&name.to_string()) { + if ty_params.iter().map(|x| x.0.clone()).collect::>().contains(&name.to_string()) { // This type variable is shadowed by a template variable. self.clone() } else { @@ -1064,6 +1088,11 @@ impl Type { unit_name.clone(), Box::new(inner.substitute(name, substitution)), ), + Self::ConstParam(cexpr) => { + let mut cexpr = cexpr.clone(); + cexpr.substitute(name, substitution); + Self::ConstParam(cexpr) + }, Self::None | Self::Never | Self::Any @@ -1079,10 +1108,14 @@ impl Type { .map(|field_t| field_t.substitute(name, substitution)) .collect(), ), - Self::Array(item_t, size) => Self::Array( - Box::new(item_t.substitute(name, substitution)), - size.clone(), - ), + Self::Array(item_t, size) => { + let mut size = size.clone(); + size.substitute(name, substitution); + Self::Array( + Box::new(item_t.substitute(name, substitution)), + size, + ) + }, Self::Struct(fields) => Self::Struct( fields .iter() @@ -1116,7 +1149,9 @@ impl Type { Self::Pointer(mutability, ptr) => { Self::Pointer(*mutability, Box::new(ptr.substitute(name, substitution))) } - } + }; + warn!("Got back {result}"); + result } /// Does this type have an element type matching the supplied type? @@ -1149,6 +1184,12 @@ impl Type { // } match (self, desired) { + (Type::Type(ty), desired) => { + ty.can_decay_to(desired, env) + } + (ty, Type::Type(desired)) => { + ty.can_decay_to(desired, env) + } // (Self::Unit(_, inner), _) => inner.can_decay_to(desired, env), (Self::Unit(name1, t1), Self::Unit(name2, t2)) => { if name1 == name2 { @@ -1214,10 +1255,10 @@ impl Type { } // Can an array decay to another array? - (Self::Array(found_elem_ty, _), Self::Array(desired_elem_ty, _)) => { + (Self::Array(found_elem_ty, found_len), Self::Array(desired_elem_ty, expected_len)) => { // Check if the element types can decay, and if the sizes are equal. if found_elem_ty.can_decay_to(desired_elem_ty, env)? - && self.get_size(env)? == desired.get_size(env)? + && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?) { trace!("{} can decay to {}", self, desired); return Ok(true); @@ -1225,7 +1266,7 @@ impl Type { // Check if the element types are compatible, and if the sizes are equal. if found_elem_ty.has_element_type(desired_elem_ty, env)? - && self.get_size(env)? == desired.get_size(env)? + && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?) { trace!("{} can decay to {}", self, desired); return Ok(true); @@ -1308,6 +1349,8 @@ impl Type { } let result = match (self, other) { + (Self::ConstParam(a), Self::ConstParam(b)) => Ok(a == b), + (Self::Let(name, t, ret), other) | (other, Self::Let(name, t, ret)) => { let mut new_env = env.clone(); new_env.define_type(name, *t.clone()); @@ -1454,7 +1497,12 @@ impl Type { Self::Poly(params, mono_ty) => { let _poly = Self::Poly(params.clone(), mono_ty.clone()); let mut mono_ty = *mono_ty; - for (param, ty_arg) in params.iter().zip(ty_args.iter()) { + for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + if let Some(expected_ty) = expected_ty { + if !expected_ty.equals(ty_arg, env)? && !matches!(ty_arg, Type::Unit(name, ..) if param == name) { + return Err(Error::MismatchedTypes { expected: expected_ty.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + } + } mono_ty = mono_ty.substitute(param, ty_arg); } mono_ty @@ -1462,7 +1510,7 @@ impl Type { Self::Symbol(s) => match env.get_type(s.as_str()).cloned() { Some(Self::Poly(params, mono_ty)) => { let mut mono_ty = *mono_ty; - for (param, ty_arg) in params.iter().zip(ty_args.iter()) { + for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) { mono_ty = mono_ty.substitute(param, ty_arg); } mono_ty @@ -1519,6 +1567,11 @@ impl Type { .collect::, Error>>()?, ), + Self::Type(ty) if !self.is_recursive(env)? => { + ty.perform_template_applications(env, previous_applications)?; + Self::Type(ty) + } + Self::Tuple(items) if !self.is_recursive(env)? => Self::Tuple( items .into_iter() @@ -1685,7 +1738,7 @@ impl Type { } (Self::Array(t1, size1), Self::Array(t2, size2)) => { t1.equals_checked(t2, compared_symbols, env, i)? - && size1.clone().as_int(env)? == size2.clone().as_int(env)? + && size1.clone().eval(env)?.equals(&size2.clone().eval(env)?) } (Self::Struct(a), Self::Struct(b)) => { if a.len() != b.len() { @@ -1752,7 +1805,21 @@ impl Type { // Create a new environment. let mut new_env = env.clone(); - for (name1, name2) in ty_params1.iter().zip(ty_params2.iter()) { + for ((name1, ty1), (name2, ty2)) in ty_params1.iter().zip(ty_params2.iter()) { + match (ty1, ty2) { + (Some(ty1), Some(ty2)) => { + if !ty1.equals_checked(&ty2, compared_symbols, &new_env, i)? { + return Err(Error::MismatchedTypes { expected: ty1.clone(), found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + } + } + (None, None) => {} + (Some(ty1), None) => { + return Err(Error::MismatchedTypes { expected: ty1.clone(), found: Self::Type(Type::Any.into()), expr: Expr::ConstExpr(self.clone().into()) }) + } + (None, Some(ty2)) => { + return Err(Error::UnexpectedConstParam { found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + } + } // In the new environment, bind the two type parameters to the same type. let combined_name = format!("{name1}+{name2}"); let combined_ty = Self::Unit(combined_name, Box::new(Type::Any)); @@ -1783,13 +1850,13 @@ impl Type { true } else if let Self::Poly(ty_params, template) = poly1.clone().simplify(env)? { let mut template = *template.clone(); - for (param, arg) in ty_params.iter().zip(ty_args1.iter()) { + for ((param, _), arg) in ty_params.iter().zip(ty_args1.iter()) { template = template.substitute(param, arg); } template.equals_checked(other, compared_symbols, env, i)? } else if let Self::Poly(ty_params, template) = poly2.clone().simplify(env)? { let mut template = *template.clone(); - for (param, arg) in ty_params.iter().zip(ty_args2.iter()) { + for ((param, _), arg) in ty_params.iter().zip(ty_args2.iter()) { template = template.substitute(param, arg); } template.equals_checked(other, compared_symbols, env, i)? @@ -1812,6 +1879,10 @@ impl Type { .equals_checked(b, compared_symbols, env, i)? } + (Self::ConstParam(a), Self::ConstParam(b)) => a == b, + (Self::ConstParam(cexpr), other) | (other, Self::ConstParam(cexpr)) => { + cexpr.get_type(env)?.equals_checked(other, compared_symbols, env, i)? + }, _ => { // trace!("{} is not equal to {}", a, b); false @@ -2034,7 +2105,15 @@ impl Simplify for Type { let _s = self.to_string(); let result = match self { - Self::Type(t) => Self::Type(t), + Self::Type(t) => { + match *t { + Self::ConstParam(cexpr) => { + Self::ConstParam(cexpr.eval(env)?.into()) + } + t => Self::Type(t.into()) + } + }, + Self::ConstParam(cexpr) => Self::ConstParam(cexpr.eval(env)?.into()), Self::None | Self::Never @@ -2143,6 +2222,7 @@ impl Simplify for Type { Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args) } }; + warn!("Simplified {_s} into {result}"); Ok(result) } } @@ -2150,6 +2230,7 @@ impl Simplify for Type { impl fmt::Display for Type { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { + Self::ConstParam(t) => write!(f, "const param {t}"), Self::Type(t) => write!(f, "{t}"), Self::Any => write!(f, "Any"), Self::Never => write!(f, "Never"), @@ -2169,8 +2250,11 @@ impl fmt::Display for Type { Self::Array(ty, len) => write!(f, "[{ty} * {len}]"), Self::Poly(ty_params, template) => { write!(f, "(")?; - for (i, param) in ty_params.iter().enumerate() { + for (i, (param, ty)) in ty_params.iter().enumerate() { write!(f, "{param}")?; + if let Some(ty) = ty { + write!(f, ": {ty}")?; + } if i < ty_params.len() - 1 { write!(f, ", ")? } @@ -2355,6 +2439,10 @@ impl std::hash::Hash for Type { state.write_u8(21); t.hash(state); } + Self::ConstParam(cexpr) => { + state.write_u8(22); + cexpr.hash(state); + } } } } diff --git a/src/lir/types/size.rs b/src/lir/types/size.rs index 8976a68c..ec01bb83 100644 --- a/src/lir/types/size.rs +++ b/src/lir/types/size.rs @@ -59,6 +59,8 @@ impl GetSize for Type { } let result = match self { + Self::ConstParam(cexpr) => cexpr.get_size_checked(env, i)?, + // None or Never are not real types, so they have no size. // They are not represented with data. They have zero size. Self::Type(_) | Self::None | Self::Never => 0, From 7d482329635f404128a0578a36c9a376084029ab Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Fri, 6 Sep 2024 19:36:18 -0400 Subject: [PATCH 02/29] Added const-generics --- src/frontend/mod.rs | 2 +- src/frontend/parse.rs | 4 +- src/lir/compile.rs | 10 +- src/lir/env.rs | 63 +++++---- src/lir/expr/const_expr.rs | 39 ++++-- src/lir/expr/declaration.rs | 4 +- src/lir/expr/ops/arithmetic/mod.rs | 3 - src/lir/expr/ops/comparison.rs | 2 +- src/lir/expr/ops/io.rs | 8 +- src/lir/expr/ops/tagged_union.rs | 8 +- src/lir/expr/pattern.rs | 16 +-- src/lir/expr/procedure/poly.rs | 38 ++--- src/lir/types/check.rs | 65 +++++---- src/lir/types/inference.rs | 6 +- src/lir/types/mod.rs | 218 +++++++++++++++++++---------- src/lir/types/size.rs | 2 +- 16 files changed, 301 insertions(+), 187 deletions(-) diff --git a/src/frontend/mod.rs b/src/frontend/mod.rs index d9df4a6c..b74ed754 100644 --- a/src/frontend/mod.rs +++ b/src/frontend/mod.rs @@ -20,7 +20,7 @@ pub fn parse( use crate::side_effects::Output; if include_std { let std_lib = parse_module("std", &without_comments(include_str!("std_lib.sg")))?; - expr = expr.with(std_lib) + expr = expr.hard_with(std_lib) } if include_builtins { let alloc = crate::lir::ConstExpr::StandardBuiltin(crate::lir::StandardBuiltin { diff --git a/src/frontend/parse.rs b/src/frontend/parse.rs index ad624d55..7dfcdaef 100644 --- a/src/frontend/parse.rs +++ b/src/frontend/parse.rs @@ -4475,7 +4475,7 @@ mod tests { assert_parse_type( "fun(Option) -> Bool", Some(Type::Poly( - vec!["T".to_string()], + vec![("T".to_string(), None)], Type::Proc( vec![Type::Apply( Box::new(Type::Symbol("Option".to_string())), @@ -4490,7 +4490,7 @@ mod tests { assert_parse_type( "fun(Option, Int) -> Bool", Some(Type::Poly( - vec!["T".to_string()], + vec![("T".to_string(), None)], Type::Proc( vec![ Type::Apply( diff --git a/src/lir/compile.rs b/src/lir/compile.rs index 04473aee..68e360cb 100644 --- a/src/lir/compile.rs +++ b/src/lir/compile.rs @@ -548,7 +548,7 @@ impl Compile for Expr { Self::EnumUnion(t, variant, val) => { // Get the size of the tagged union. let result_size = t.get_size(env)?; - let t = t.simplify_until_concrete(env)?; + let t = t.simplify_until_concrete(env, false)?; if let Type::EnumUnion(fields) = t { // Get the list of possible variant names. let variants = fields.clone().into_keys().collect::>(); @@ -843,7 +843,7 @@ impl Compile for Expr { // val_type.add_monomorphized_associated_consts(env)?; // Push the address of the struct, tuple, or union onto the stack. - match val_type.simplify_until_has_members(env)? { + match val_type.simplify_until_has_members(env, false)? { // If the value is a struct, tuple, or union: Type::Struct(_) | Type::Tuple(_) | Type::Union(_) => { // Compile a reference to the inner value with the expected mutability. @@ -928,7 +928,7 @@ impl Compile for Expr { // val_type.add_monomorphized_associated_consts(env)?; // Push the address of the struct, tuple, or union onto the stack. - match val_type.simplify_until_has_members(env)? { + match val_type.simplify_until_has_members(env, false)? { // If the value is a struct, tuple, or union: Type::Struct(_) | Type::Tuple(_) | Type::Union(_) => { // Compile a reference to the inner value with the expected mutability. @@ -1389,7 +1389,7 @@ impl Compile for ConstExpr { Self::EnumUnion(t, variant, val) => { // Get the size of the tagged union. let result_size = t.get_size(env)?; - let t = t.simplify_until_has_variants(env)?; + let t = t.simplify_until_has_variants(env, false)?; // Get the inner list of variants and compile the expression using this information. if let Type::EnumUnion(variants) = t.clone().simplify(env)? { @@ -1463,7 +1463,7 @@ impl Compile for ConstExpr { Self::Of(enum_type, variant) => { // Only try to simplify the type 50 times at most. // This is to prevent infinite loops and to keep recursion under control. - match enum_type.simplify_until_has_variants(env)? { + match enum_type.simplify_until_has_variants(env, false)? { // If the type is an enum, we can continue. Type::Enum(variants) => { // Get the index of the variant. diff --git a/src/lir/env.rs b/src/lir/env.rs index 362c2a50..5c343ba0 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -252,7 +252,10 @@ impl Env { // Go through all the types and see if any equals the given type. for (other_ty, consts) in associated_constants.iter() { if matches!(ty.is_monomorph_of(other_ty, self), Ok(true)) { - debug!("Type {ty} is monomorph of {other_ty}"); + info!("Type {ty} is monomorph of {other_ty}"); + for (name, (constant, ty)) in consts { + debug!(" {name}: {ty} = {constant}") + } let template = other_ty.clone(); let ty_params = template.get_template_params(self); @@ -285,11 +288,11 @@ impl Env { } } - if ty_args.len() != ty_params.len() { - debug!("Mismatched number of template arguments for {monomorph} of {template}"); - debug!("Expected {ty_params:?}, found {ty_args:?}"); - continue; - } + // if ty_args.len() != ty_params.len() { + // error!("Mismatched number of template arguments for {monomorph} of {template}"); + // error!("Expected {ty_params:?}, found {ty_args:?}"); + // continue; + // } debug!( "Associated constants for {monomorph} are {:?}", @@ -301,7 +304,7 @@ impl Env { // let result = const_ty.apply(ty_args.clone()).simplify_until_simple(self).ok()?; // let result = const_ty.apply(ty_args.clone()); let result = const_ty.apply(ty_args.clone().into_iter().map(|x|x.0).collect()); - match result.simplify_until_simple(self) { + match result.simplify_until_simple(self, false) { Ok(result) => { debug!("Found associated const (type) {name} of type {ty} = {result}"); return Some(result); @@ -314,7 +317,7 @@ impl Env { // continue; } } - // info!("Found associated const (type) {name} of type {ty} = {result}"); + // debug!("Found associated const (type) {name} of type {ty} = {result}"); // return Some(result); } @@ -322,11 +325,15 @@ impl Env { for template_const_name in template_associated_consts.keys() { debug!(" {template_const_name} != {name}"); } + } else { + debug!("Type {ty} is not monomorph of {other_ty}"); } if !ty.can_decay_to(other_ty, self).unwrap_or(false) { - // trace!("Type {other_ty} does not equal {ty}"); + debug!("Type {other_ty} does not equal {ty}"); continue; + } else { + debug!("Type {other_ty} equals {ty}"); } if let Some((constant, expr_ty)) = consts.get(name) { let constant = constant.clone(); @@ -337,7 +344,6 @@ impl Env { return Some(expr_ty); } } - trace!("Could not find associated const {name} of type {ty} in {self}"); drop(associated_constants); if let Type::Type(inner_ty) = ty { @@ -355,11 +361,12 @@ impl Env { return Some(ty); } } + error!("Could not find associated const {name} of type {ty} in {self}"); None } pub fn get_associated_const(&self, ty: &Type, name: &str) -> Option<(ConstExpr, Type)> { - trace!( + info!( "Getting associated const {name} of type {ty} in {self} with types {:?}", self.types ); @@ -394,16 +401,16 @@ impl Env { debug!("Failed to get monomorph template args for {monomorph} of {template}"); continue; } - // for (symbol, ty) in &symbols { - // debug!("----> {symbol} == {ty}"); - // } + for (symbol, (ty, expected)) in &symbols { + debug!("----> {symbol} == {ty}, {expected:?}"); + } let template_associated_consts = consts.clone(); let mut ty_args = Vec::new(); for (ty_param, _) in &ty_params { if let Some((arg, _)) = symbols.get(ty_param) { ty_args.push(arg.clone()); } else { - continue; + debug!("Could not find symbol {ty_param}"); } } @@ -416,7 +423,7 @@ impl Env { if let Some((const_expr, const_ty)) = template_associated_consts.get(name) { debug!("Found cached associated const pair: {const_expr} with type {const_ty}"); let mut result_ty = const_ty.apply(ty_args.clone()); - result_ty = match result_ty.simplify_until_simple(self) { + result_ty = match result_ty.simplify_until_simple(self, true) { Ok(result) => { debug!("Found associated const {name} of type {ty} = {result}"); result @@ -436,7 +443,7 @@ impl Env { debug!("Could not find associated const {name} of type {ty} in {template}"); // return self.get_associated_const(&monomorph, name); } else { - // info!("Type {ty} is not monomorph of {other_ty}"); + debug!("Type {ty} is not monomorph of {other_ty}"); } if !ty.can_decay_to(other_ty, self).unwrap_or(false) { @@ -573,7 +580,7 @@ impl Env { ) -> Result<(), Error> { debug!("Adding monomorphized associated constants of type {template} to {monomorph} with type arguments {ty_args:?} to environment"); - let monomorph = if let Ok(simplified) = monomorph.simplify_until_simple(self) { + let monomorph = if let Ok(simplified) = monomorph.simplify_until_simple(self, false) { debug!("Simplified {monomorph} to {simplified}"); simplified } else { @@ -665,7 +672,7 @@ impl Env { expr: ConstExpr, ) -> Result<(), Error> { let associated_const_name = associated_const_name.to_string(); - trace!("Defining associated const {associated_const_name} as {expr} to type {ty}"); + info!("Defining associated const {associated_const_name} as {expr} to type {ty}"); let expr_ty = expr.get_type(self)?; let mut associated_constants = self.associated_constants.write().unwrap(); associated_constants @@ -852,7 +859,9 @@ impl Env { for (name, associated_const) in impls { let templated_const = - associated_const.template(template_params.clone()); + // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect()); + // associated_const.template(template_params.clone()); + associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect()); self.add_associated_const(*template.clone(), name, templated_const)?; } } else { @@ -1008,7 +1017,7 @@ impl Env { Arc::make_mut(&mut self.consts).insert(name.clone(), ConstExpr::Type(ty.clone())); Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone()); - if let Ok(simplified) = ty.simplify_until_concrete(self) { + if let Ok(simplified) = ty.simplify_until_concrete(self, false) { if let Ok(size) = simplified.get_size(self) { self.set_precalculated_size(simplified.clone(), size); } @@ -1048,7 +1057,7 @@ impl Env { } for (_, ty) in types { - if let Ok(simplified) = ty.simplify_until_concrete(self) { + if let Ok(simplified) = ty.simplify_until_concrete(self, false) { if let Ok(size) = simplified.get_size(self) { self.set_precalculated_size(simplified, size); } else { @@ -1283,7 +1292,7 @@ impl Env { impl Display for Env { fn fmt(&self, f: &mut Formatter) -> FmtResult { - // return Ok(()); + return Ok(()); writeln!(f, "Env")?; writeln!(f, " Types:")?; for (name, ty) in self.types.iter() { @@ -1292,10 +1301,10 @@ impl Display for Env { if constants.is_empty() { continue; } - // writeln!(f, " Associated constants:")?; - // for (name, cexpr) in constants { - // writeln!(f, " {}: {}", name, cexpr)?; - // } + writeln!(f, " Associated constants:")?; + for (name, cexpr) in constants { + writeln!(f, " {}: {}", name, cexpr)?; + } } // writeln!(f, " Constants:")?; // for (i, (name, e)) in self.consts.iter().enumerate() { diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index b4b2f289..f715946b 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -105,9 +105,18 @@ impl ConstExpr { Self::Monomorphize(Box::new(self), ty_args) } - pub fn equals(&self, other: &Self) -> bool { + pub fn equals(&self, other: &Self, env: &Env) -> bool { + info!("{self} == {other} in const?"); match (self, other) { (Self::Any, _) | (_, Self::Any) => true, + (Self::Type(Type::Any), _) | (_, Self::Type(Type::Any)) => true, + (Self::Symbol(name), other) | (other, Self::Symbol(name)) => { + if let Some(c) = env.get_const(name) { + c.equals(other, env) + } else { + &Self::Symbol(name.clone()) == other + } + } (a, b) => a == b, } } @@ -391,7 +400,9 @@ impl ConstExpr { } *ret } - Self::PolyProc(proc) => Self::Proc(proc.monomorphize(ty_args.clone(), env)?), + Self::PolyProc(proc) => { + Self::Proc(proc.monomorphize(ty_args.clone(), env)?) + }, Self::Declare(bindings, expr) => { let mut new_env = env.clone(); new_env.add_compile_time_declaration(&bindings)?; @@ -403,6 +414,7 @@ impl ConstExpr { .monomorphize(ty_args.clone()) .eval_checked(env, i) .map_err(|x| x.annotate(metadata))?, + _other => { Self::Monomorphize(Box::new(expr.eval_checked(env, i)?), ty_args.clone()) } @@ -580,7 +592,7 @@ impl GetType for ConstExpr { debug!("Got type of container access {val} . {field}\nContainer: {val_type}"); // val_type.add_monomorphized_associated_consts(env)?; // Get the type of the value to get the member of. - match &val_type.simplify_until_concrete(env)? { + match &val_type.simplify_until_concrete(env, false)? { Type::Unit(_unit_name, inner_ty) => { // Get the type of the field. env.get_type_of_associated_const(inner_ty, &as_symbol?) @@ -589,7 +601,7 @@ impl GetType for ConstExpr { Type::Pointer(_found_mutability, t) => { let val = &Expr::ConstExpr(*val); - let t = t.clone().simplify_until_concrete(env)?; + let t = t.clone().simplify_until_concrete(env, false)?; match t.get_member_offset(&field, val, env) { Ok((t, _)) => t, Err(_) => { @@ -736,6 +748,7 @@ impl GetType for ConstExpr { .simplify_until_type_checks(env); } Self::Template(params, ret) => { + debug!("Getting type of monomorphized template {self}"); if params.len() != ty_args.len() { return Err(Error::InvalidMonomorphize(expr)); } @@ -748,19 +761,25 @@ impl GetType for ConstExpr { let expected = expected_ty.clone(); let found = cexpr.get_type_checked(env, i)?; if !found.equals(expected_ty, env)? { + error!("Mismatch in expected type for constant parameter"); return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() }) } + ret.substitute(param, ty_arg) } + ret.substitute(param, ty_arg); new_env.define_const(param, *cexpr.clone()); } else { - ret.substitute(param, ty_arg) + ret.substitute(param, ty_arg); + new_env.define_type(param, ty_arg.clone()); } } - ret.get_type_checked(&new_env, i)? - .simplify_until_type_checks(env)? + debug!("Result: {ret}"); + let ret = ret.get_type_checked(&new_env, i)? + .simplify_until_poly(&new_env, false)?; + ret } _ => { - // warn!("Monomorphizing non-template: {expr}"); + // debug!("Monomorphizing non-template: {expr}"); Type::Apply(Box::new(template_ty.clone()), ty_args.clone()) } }; @@ -942,9 +961,9 @@ impl GetType for ConstExpr { } Self::Symbol(symbol_name) if symbol_name == name => { // A constant symbol cannot be substituted for a type variable. - warn!("Subbing {self} for {substitution}"); + // debug!("Subbing {self} for {substitution}"); *self = ConstExpr::Type(substitution.clone()); - warn!("Subbed into {self}"); + // debug!("Subbed into {self}"); } _ => {} } diff --git a/src/lir/expr/declaration.rs b/src/lir/expr/declaration.rs index fee69f97..96972bed 100644 --- a/src/lir/expr/declaration.rs +++ b/src/lir/expr/declaration.rs @@ -571,7 +571,9 @@ impl TypeCheck for Declaration { for (name, associated_const) in impls { let templated_const = - associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect()); + // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect()); + // associated_const.template(template_params.clone()); + associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect()); new_env.add_associated_const( *template.clone(), name, diff --git a/src/lir/expr/ops/arithmetic/mod.rs b/src/lir/expr/ops/arithmetic/mod.rs index e1e9be24..cbdaf75e 100644 --- a/src/lir/expr/ops/arithmetic/mod.rs +++ b/src/lir/expr/ops/arithmetic/mod.rs @@ -204,7 +204,6 @@ impl BinaryOp for Arithmetic { /// Get the type of the result of applying this binary operation to the given types. fn return_type(&self, lhs: &Expr, rhs: &Expr, env: &Env) -> Result { - error!("Can I {self} to {lhs} and {rhs} in {env}?"); if let Expr::Annotated(lhs, metadata) = lhs { if let Expr::Annotated(rhs, _) = rhs { return self.return_type(lhs, rhs, env); @@ -221,7 +220,6 @@ impl BinaryOp for Arithmetic { let lhs_ty = lhs.get_type(env)?; let rhs_ty = rhs.get_type(env)?; - error!("Can I {self} to {lhs_ty} and {rhs_ty} in {env}?"); let result = Ok(match (lhs_ty.discard_type_wrapper(), rhs_ty.discard_type_wrapper()) { (Type::Int, Type::Int) => Type::Int, (Type::Int, Type::Float) | (Type::Float, Type::Int) | (Type::Float, Type::Float) => { @@ -298,7 +296,6 @@ impl BinaryOp for Arithmetic { )) } }); - error!("Well, can I?? {result:?}"); result } diff --git a/src/lir/expr/ops/comparison.rs b/src/lir/expr/ops/comparison.rs index fdf5630a..3c76a67c 100644 --- a/src/lir/expr/ops/comparison.rs +++ b/src/lir/expr/ops/comparison.rs @@ -23,7 +23,7 @@ pub enum Comparison { impl BinaryOp for Comparison { /// Can this binary operation be applied to the given types? fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result { - match (lhs, self, rhs) { + match (&lhs.clone().discard_type_wrapper(), self, &rhs.clone().discard_type_wrapper()) { (Type::Int, Self::LessThan, Type::Int) | (Type::Int, Self::LessThanOrEqual, Type::Int) | (Type::Int, Self::GreaterThan, Type::Int) diff --git a/src/lir/expr/ops/io.rs b/src/lir/expr/ops/io.rs index c811c76c..7eb545f7 100644 --- a/src/lir/expr/ops/io.rs +++ b/src/lir/expr/ops/io.rs @@ -13,7 +13,7 @@ pub struct Get; impl UnaryOp for Get { /// Can this unary operation be applied to the given type? fn can_apply(&self, ty: &Type, env: &Env) -> Result { - ty.simplify_until_concrete(env).map(|ty| { + ty.simplify_until_concrete(env, false).map(|ty| { if let Type::Pointer(mutability, x) = ty { match *x { Type::Char | Type::Int | Type::Float => mutability.is_mutable(), @@ -100,7 +100,7 @@ impl Put { env: &mut Env, output: &mut dyn AssemblyProgram, ) -> Result<(), Error> { - let t = &t.simplify_until_concrete(env)?; + let t = &t.simplify_until_concrete(env, false)?; match t { Type::Type(t) => { for c in format!("{}", t).chars() { @@ -430,7 +430,7 @@ impl Put { env: &mut Env, output: &mut dyn AssemblyProgram, ) -> Result<(), Error> { - let t = &t.simplify_until_concrete(env)?; + let t = &t.simplify_until_concrete(env, false)?; match t { Type::Cell => { output.op(CoreOp::Put(addr, Output::stdout_int())); @@ -597,7 +597,7 @@ impl UnaryOp for Put { // Get the size of the type. let size = ty.get_size(env)? as isize; - let ty = &ty.simplify_until_concrete(env)?; + let ty = &ty.simplify_until_concrete(env, false)?; // Calculate the address of the expression on the stack. let addr = SP.deref().offset(-size + 1); diff --git a/src/lir/expr/ops/tagged_union.rs b/src/lir/expr/ops/tagged_union.rs index ebc80634..ac2e8d1b 100644 --- a/src/lir/expr/ops/tagged_union.rs +++ b/src/lir/expr/ops/tagged_union.rs @@ -12,12 +12,12 @@ impl UnaryOp for Tag { /// Can this unary operation be applied to the given type? fn can_apply(&self, ty: &Type, env: &Env) -> Result { let ty = ty.clone().simplify(env)?; - Ok(ty.simplify_until_has_variants(env).is_ok()) + Ok(ty.simplify_until_has_variants(env, false).is_ok()) } /// Get the type of the result of applying this unary operation to the given type. fn return_type(&self, expr: &Expr, env: &Env) -> Result { - let ty = expr.get_type(env)?.simplify_until_has_variants(env)?; + let ty = expr.get_type(env)?.simplify_until_has_variants(env, false)?; match ty { Type::EnumUnion(variants) => Ok(Type::Enum(variants.into_keys().collect())), @@ -101,12 +101,12 @@ impl UnaryOp for Data { /// Can this unary operation be applied to the given type? fn can_apply(&self, ty: &Type, env: &Env) -> Result { let ty = ty.clone().simplify(env)?; - Ok(ty.simplify_until_has_variants(env).is_ok()) + Ok(ty.simplify_until_has_variants(env, false).is_ok()) } /// Get the type of the result of applying this unary operation to the given type. fn return_type(&self, expr: &Expr, env: &Env) -> Result { - let ty = expr.get_type(env)?.simplify_until_has_variants(env)?; + let ty = expr.get_type(env)?.simplify_until_has_variants(env, false)?; match ty { Type::EnumUnion(variants) => Ok(Type::Union(variants)), diff --git a/src/lir/expr/pattern.rs b/src/lir/expr/pattern.rs index fbf37e67..0a5c3ac4 100644 --- a/src/lir/expr/pattern.rs +++ b/src/lir/expr/pattern.rs @@ -70,7 +70,7 @@ impl Pattern { env: &Env, ) -> Result { // Get the type of the expression being matched. - let ty = expr.get_type(env)?.simplify_until_concrete(env)?; + let ty = expr.get_type(env)?.simplify_until_concrete(env, false)?; // Get the bindings for the pattern. let bindings = self.get_bindings(expr, &ty, env)?; // Create a new environment with the bindings. @@ -98,7 +98,7 @@ impl Pattern { matching_expr_ty: &Type, env: &Env, ) -> Result { - let matching_expr_ty = &matching_expr_ty.simplify_until_concrete(env)?; + let matching_expr_ty = &matching_expr_ty.simplify_until_concrete(env, false)?; match matching_expr_ty { Type::Bool => { // If the type is a boolean, the patterns are exhaustive if they match both `true` and `false`. @@ -389,7 +389,7 @@ impl Pattern { pub fn type_check(&self, matching_expr: &Expr, branch: &Expr, env: &Env) -> Result<(), Error> { trace!("Type checking pattern match: {} => {}", self, branch); // Get the type of the expression being matched. - let matching_ty = matching_expr.get_type(env)?.simplify_until_concrete(env)?; + let matching_ty = matching_expr.get_type(env)?.simplify_until_concrete(env, false)?; // Get the type of the branch as a result of the match. let expected = self.get_branch_result_type(matching_expr, branch, env)?; // Type-check the expression generated to match the pattern. @@ -498,7 +498,7 @@ impl Pattern { // Create a new environment with the bindings let mut new_env = env.clone(); // Get the type of the expression being matched - let match_type = expr.get_type(env)?.simplify_until_concrete(env)?; + let match_type = expr.get_type(env)?.simplify_until_concrete(env, false)?; // Define the variable in the new environment. new_env.define_var(var_name.clone(), Mutability::Immutable, match_type.clone())?; // Generate the expression which evaluates the `match` expression. @@ -570,7 +570,7 @@ impl Pattern { env: &Env, mut origin: usize, ) -> Result, Error> { - let ty = &ty.simplify_until_concrete(env)?; + let ty = &ty.simplify_until_concrete(env, false)?; Ok(match (self, ty) { // If the pattern is a tuple, and the type is a tuple, then // get the bindings for each element of the tuple. @@ -719,7 +719,7 @@ impl Pattern { /// Does this pattern match the given expression? /// This function returns an expression which evaluates to true if the expression matches the pattern. fn matches(&self, expr: &Expr, ty: &Type, env: &Env) -> Result { - let ty = &ty.simplify_until_concrete(env)?; + let ty = &ty.simplify_until_concrete(env, false)?; Ok(match (self, ty) { // If the pattern is a variant, and the type is a EnumUnion, // check if the variant matches the pattern. @@ -879,7 +879,7 @@ impl Pattern { /// then this will not work correctly. This function does not check the arguments.*** pub fn declare_let_bind(&self, expr: &Expr, ty: &Type, env: &mut Env) -> Result<(), Error> { // Get the type of the expression being matched. - let ty = &ty.simplify_until_concrete(env)?; + let ty = &ty.simplify_until_concrete(env, false)?; // Get the variable bindings for the pattern. // This tells us the type and mutability of each variable. let bindings = self.get_bindings_with_offset(expr, ty, env, 0)?; @@ -905,7 +905,7 @@ impl Pattern { /// added to the environment, and will be bound to the corresponding value in /// the expression which is being matched. fn bind(&self, expr: &Expr, ty: &Type, ret: &Expr, env: &Env) -> Result { - let ty = &ty.simplify_until_concrete(env)?; + let ty = &ty.simplify_until_concrete(env, false)?; Ok(match (self, ty) { // If the pattern is a variant, and the type is a tagged union, // bind the pattern to the corresponding variant type in the tagged union. diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index 763943d7..9cd6f13b 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -115,20 +115,20 @@ impl PolyProcedure { // This is a helper function to distribute the defined type // arguments over the body and arguments of the function. - for ((_name, ty_param), ty_arg) in self.ty_params.iter().zip(ty_args.iter()) { - if let Some(ty_param) = ty_param { - if !ty_param.equals(&ty_arg, env)? { - return Err(Error::MismatchedTypes { expected: ty_param.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) - } - } else { - use crate::lir::Simplify; - if matches!(ty_arg.clone().simplify(env)?, Type::ConstParam(..)) { - return Err(Error::UnexpectedConstParam { - found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) - }) - } - } - } + // for ((_name, ty_param), ty_arg) in self.ty_params.iter().zip(ty_args.iter()) { + // if let Some(ty_param) = ty_param { + // if !ty_param.equals(&ty_arg, env)? { + // return Err(Error::MismatchedTypes { expected: ty_param.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + // } + // } else { + // use crate::lir::Simplify; + // if matches!(ty_arg.clone().simplify(env)?, Type::ConstParam(..)) { + // return Err(Error::UnexpectedConstParam { + // found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) + // }) + // } + // } + // } // Simplify all the type arguments until they are concrete let simplified_ty_args = ty_args @@ -136,7 +136,7 @@ impl PolyProcedure { .into_iter() .map(|ty| { // Simplify the type until it is concrete - let concrete = ty.simplify_until_concrete(env)?; + let concrete = ty.simplify_until_concrete(env, true)?; // concrete.add_monomorphized_associated_consts(env)?; Ok(concrete) }) @@ -153,7 +153,7 @@ impl PolyProcedure { ); // Simplify the type until it is simple. // This reduces to the concrete version of the type application. - let concrete = ty.simplify_until_concrete(env)?; + let concrete = ty.simplify_until_concrete(env, true)?; // concrete.add_monomorphized_associated_consts(env)?; Ok(concrete) }; @@ -226,12 +226,18 @@ impl GetType for PolyProcedure { fn substitute(&mut self, name: &str, ty: &Type) { if self.type_param_names().contains(&name.to_string()) { + debug!("Not substituting {name} in {ty} because of symbol conflict"); return; } + for (_, ty_arg) in &mut self.ty_params { + *ty_arg = ty_arg.as_mut().map(|ty_arg| ty_arg.substitute(name, ty)); + } + self.args .iter_mut() .for_each(|(_, _, t)| *t = t.substitute(name, ty)); self.ret = self.ret.substitute(name, ty); + self.body.substitute(name, ty); } } diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index 1e492a44..3b0431ea 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -72,7 +72,7 @@ impl TypeCheck for Type { len.clone().type_check(env)?; // Check that the length is non-negative. - warn!("About to convert {len} to int"); + debug!("About to convert {len} to int"); match len.clone().as_int(env) { Ok(n) if n < 0 => { // If it is negative, return an error. @@ -158,14 +158,14 @@ impl TypeCheck for Type { .try_for_each(|t| t.type_check(env))?; // Try to confirm that the polymorphic type is a template. - match poly.simplify_until_poly(env)? { + match poly.simplify_until_poly(env, true)? { Type::Symbol(name) => { // Get the type definition. let ty = env .get_type(&name) .ok_or(Error::TypeNotDefined(name.clone()))?; // Check that the type is a template. - match ty.simplify_until_poly(env)? { + match ty.simplify_until_poly(env, true)? { Type::Poly(ty_params, _) => { // Check that the number of type arguments matches the number of type parameters. if ty_args.len() != ty_params.len() { @@ -631,7 +631,7 @@ impl TypeCheck for Expr { f.type_check(env)?; // Get the type of the function. - let f_type = f.get_type(env)?.simplify_until_concrete(env)?; + let f_type = f.get_type(env)?.simplify_until_concrete(env, true)?; // Infer the types of the supplied arguments. let mut found_arg_tys = vec![]; for arg in args { @@ -686,7 +686,7 @@ impl TypeCheck for Expr { } // Get the type of the function. - let f_type = f.get_type(env)?.simplify_until_concrete(env)?; + let f_type = f.get_type(env)?.simplify_until_concrete(env, true)?; // Infer the types of the supplied arguments. let mut found_arg_tys = vec![]; for arg in args { @@ -789,7 +789,7 @@ impl TypeCheck for Expr { Self::Union(t, field, val) => { // Typecheck the type. t.type_check(env)?; - let t = t.simplify_until_union(env)?; + let t = t.simplify_until_union(env, true)?; match t { Type::Union(fields) => { // Confirm that the variant is a valid variant. @@ -823,7 +823,7 @@ impl TypeCheck for Expr { Self::EnumUnion(t, variant, val) => { // Typecheck the type t.type_check(env)?; - let t = t.simplify_until_union(env)?; + let t = t.simplify_until_union(env, true)?; match t { Type::EnumUnion(fields) => { @@ -882,7 +882,7 @@ impl TypeCheck for Expr { match e_type.type_check_member(field, e, env) { Ok(_) => Ok(()), Err(e) => { - warn!("Type {e_type} doesn't have member {field} in environment {env}"); + debug!("Type {e_type} doesn't have member {field} in environment {env}"); match field .clone() .as_symbol(env) @@ -972,21 +972,21 @@ impl TypeCheck for ConstExpr { match e_type.type_check_member(field, &Expr::ConstExpr(*e.clone()), env) { Ok(_) => Ok(()), Err(_err) => { - warn!("Member {field} not found in type {e_type} in environment {env}"); + debug!("Member {field} not found in type {e_type} in environment {env}"); match field .clone() .as_symbol(env) .map(|name| env.get_associated_const(&e_type, &name)) { Ok(_) => { - warn!("Associated constant {field} found in type {e_type} in environment {env}"); + debug!("Associated constant {field} found in type {e_type} in environment {env}"); Ok(()) } // Err(_) => Err(e), Err(_) => { // Try to perform the member op as a regular member op. - warn!("Associated constant {field} not found in type {e_type} in environment {env}"); - warn!("Falling back on regular member access"); + debug!("Associated constant {field} not found in type {e_type} in environment {env}"); + debug!("Falling back on regular member access"); Expr::Member(Box::new(Expr::ConstExpr(*e.clone())), *field.clone()) .type_check(env) } @@ -1030,27 +1030,36 @@ impl TypeCheck for ConstExpr { match **expr { Self::Template(ref ty_params, ref template) => { // Create a new environment with the type parameters defined. - let mut new_env = env.clone(); // Define the type parameters in the environment. // new_env.define_types( // ty_params.clone().into_iter().map(|x| x.0).zip(ty_args.clone()).collect(), // ); - for ((name, ty_param), ty_arg) in ty_params.iter().zip(ty_args) { - new_env.define_type(name, match ty_param { - Some(ty_param) => { - if !ty_arg.equals(ty_param, env)? { - return Err(Error::InvalidMonomorphize(self.clone())) + + let mut ret = template.clone(); + let mut new_env = env.clone(); + for ((param, ty), ty_arg) in ty_params.iter().zip(ty_args.iter()) { + if let Type::ConstParam(cexpr) = ty_arg { + if let Some(expected_ty) = ty { + let expected = expected_ty.clone(); + let found = cexpr.get_type(env)?; + if !found.equals(expected_ty, env)? { + error!("Mismatch in expected type for constant parameter"); + return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() }) } - ty_arg.clone() - } - None => { - ty_arg.clone() + ret.substitute(param, ty_arg) } - }) + ret.substitute(param, ty_arg); + new_env.define_const(param, *cexpr.clone()); + } else { + ret.substitute(param, ty_arg); + new_env.define_type(param, ty_arg.clone()); + } } - + debug!("Result: {ret}"); + let ret = ret.get_type(&new_env)? + .simplify_until_poly(&new_env, true)?; // Check the template type. - template.type_check(&new_env) + ret.type_check(&new_env) // Ok(()) } Self::PolyProc(ref poly) => { @@ -1142,7 +1151,7 @@ impl TypeCheck for ConstExpr { // Typecheck a variant of an enum. Self::Of(t, variant) => { let t = t - .simplify_until_has_variants(env) + .simplify_until_has_variants(env, true) .map_err(|_| Error::VariantNotFound(t.clone(), variant.clone()))?; match t { @@ -1264,7 +1273,7 @@ impl TypeCheck for ConstExpr { // Typecheck a union literal. Self::Union(t, field, val) => { // Confirm the type supplied is a union. - let t = t.simplify_until_union(env)?; + let t = t.simplify_until_union(env, true)?; match t { Type::Union(fields) => { @@ -1303,7 +1312,7 @@ impl TypeCheck for ConstExpr { // Typecheck a tagged union literal. Self::EnumUnion(t, variant, val) => { // Confirm the type supplied is a union. - let t = t.simplify_until_union(env)?; + let t = t.simplify_until_union(env, true)?; match t { Type::EnumUnion(fields) => { // Confirm that the variant is a valid variant. diff --git a/src/lir/types/inference.rs b/src/lir/types/inference.rs index 73cfa50b..8aabc9cd 100644 --- a/src/lir/types/inference.rs +++ b/src/lir/types/inference.rs @@ -232,7 +232,7 @@ impl GetType for Expr { // Get the type of the expression. let t = expr .get_type_checked(env, i)? - .simplify_until_concrete(env)?; + .simplify_until_concrete(env, false)?; // If the type is a pointer, return the inner type of the pointer. if let Type::Pointer(_, inner) = t { // If the type *evaluates* to a pointer, return that inner type. @@ -253,7 +253,7 @@ impl GetType for Expr { // Get the type of the function. let ty = func .get_type_checked(env, i)? - .simplify_until_concrete(env)?; + .simplify_until_concrete(env, false)?; match ty { Type::Proc(_, ret) => *ret, _ => return Err(Error::ApplyNonProc(self.clone())), @@ -313,7 +313,7 @@ impl GetType for Expr { // Get the type of the value to get the member of. let val_type = val.get_type_checked(env, i)?; // val_type.add_monomorphized_associated_consts(env)?; - let val_type = val_type.simplify_until_concrete(env)?; + let val_type = val_type.simplify_until_concrete(env, false)?; // val_type.add_monomorphized_associated_consts(env)?; match val_type { Type::Type(ty) => { diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 55d34505..4f65c75a 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -366,6 +366,7 @@ impl Type { self.clone() } } + Self::Pointer(mutability, ty) => Self::Pointer(*mutability, ty.strip_template(env).into()), _ => self.clone(), } } @@ -435,8 +436,21 @@ impl Type { } } - (Self::Array(inner1, _), Self::Array(inner2, _)) => { + (Self::Array(inner1, cexpr1), Self::Array(inner2, cexpr2)) => { inner1.get_monomorph_template_args(inner2, matched_symbols, param_symbols, env)?; + + let ty1 = match &**cexpr1 { + ConstExpr::Symbol(name) => Type::Symbol(name.clone()), + ConstExpr::Type(ty) => ty.clone(), + otherwise => Type::ConstParam(otherwise.clone().into()) + }; + let ty2 = match &**cexpr2 { + ConstExpr::Symbol(name) => Type::Symbol(name.clone()), + ConstExpr::Type(ty) => ty.clone(), + _ => return Ok(()) + }; + + ty1.get_monomorph_template_args(&ty2, matched_symbols, param_symbols, env)? } (Self::Pointer(_, inner1), Self::Pointer(_, inner2)) => { @@ -476,7 +490,7 @@ impl Type { } (Self::Apply(template, args), other) => { - if let Ok(Self::Poly(params, ret)) = template.simplify_until_poly(env) { + if let Ok(Self::Poly(params, ret)) = template.simplify_until_poly(env, false) { let mut ret = *ret.clone(); for ((param, _), arg) in params.iter().zip(args.iter()) { ret = ret.substitute(param, arg); @@ -503,7 +517,7 @@ impl Type { (a, b) => { if a != b { - error!( + debug!( "get_monomorph_template_args: Couldn't match {} to {}", self, template ); @@ -515,8 +529,11 @@ impl Type { } pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result { - match (self, template) { - (Self::Apply(template1, _), template2) => template1.equals(template2, env), + debug!("{self} is mono of {template}?"); + let result = match (self, template) { + (Self::Apply(template1, _), template2) => { + template1.equals(template2, env) + }, (concrete, Self::Poly(params, result)) => { let mut result = *result.clone(); for (param, _) in params { @@ -538,8 +555,25 @@ impl Type { Ok(false) } + (Self::Pointer(mut1, ty1), Self::Pointer(mut2, ty2)) => { + Ok(mut1 == mut2 && ty1.is_monomorph_of(ty2, env)?) + } + + (Self::Array(elem1, len1), Self::Array(elem2, len2)) => { + // return Ok(elem1.is_monomorph_of(elem2, env)? && len1.get_type(env)?.equals(&len2.get_type(env)?, env)?) + return Ok(elem1.is_monomorph_of(elem2, env)?) + } + + (Self::ConstParam(cexpr), other) => cexpr.get_type(env)?.equals(other, env), + _ => Ok(false), + }; + if result.clone().is_ok_and(|x| x) { + debug!("{self} is monomorph of {template}"); + } else { + debug!("{self} is NOT monomorph of {template}"); } + result } pub fn add_monomorphized_associated_consts(&self, env: &Env) -> Result<(), Error> { @@ -548,11 +582,11 @@ impl Type { Self::Apply(template, args) => { let simplified_args = args .iter() - .map(|t| t.simplify_until_concrete(env)) + .map(|t| t.simplify_until_concrete(env, false)) .collect::, _>>()?; let mut mono_ty = Self::Apply(template.clone(), simplified_args.clone()); - mono_ty = mono_ty.simplify_until_concrete(env)?; + mono_ty = mono_ty.simplify_until_concrete(env, false)?; // warn!("add_monomorphized_associated_consts: Adding monomorphized associated consts for {self} to {}", mono_ty); env.add_monomorphized_associated_consts(*template, mono_ty, simplified_args)?; @@ -622,7 +656,7 @@ impl Type { pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option)> { debug!("get_template_params: {}", self); - match self.simplify_until_poly(env) { + match self.simplify_until_poly(env, false) { Ok(Self::Poly(params, _)) => { // debug!( // "get_template_params: {} params: {}", @@ -768,7 +802,7 @@ impl Type { /// Is first argument of function a reference? pub fn is_self_param_reference(&self, env: &Env) -> Result { - Ok(match self.simplify_until_concrete(env)? { + Ok(match self.simplify_until_concrete(env, false)? { Self::Proc(args, _) => { matches!(args.first(), Some(Self::Pointer(_, _))) } @@ -778,7 +812,7 @@ impl Type { /// Get the first argument's mutability (if it is a pointer) pub fn get_self_param_mutability(&self, env: &Env) -> Option { - match self.simplify_until_concrete(env) { + match self.simplify_until_concrete(env, false) { Ok(Self::Proc(args, _)) => { if let Some(Self::Pointer(mutability, _)) = args.first() { Some(*mutability) @@ -807,7 +841,7 @@ impl Type { /// Simplify until the type passes the type checker. pub fn simplify_until_type_checks(&self, env: &Env) -> Result { self.clone() - .simplify_until_matches(env, Type::Any, |t, env| t.type_check(env).map(|_| true)) + .simplify_until_matches(env, Type::Any, |t, env| t.type_check(env).map(|_| true), true) } fn possibly_has_members(&self) -> bool { @@ -826,10 +860,10 @@ impl Type { } /// Simplify a type until you can get its members. - pub fn simplify_until_has_members(&self, env: &Env) -> Result { + pub fn simplify_until_has_members(&self, env: &Env, checked: bool) -> Result { let result = self .clone() - .simplify_until_matches(env, Type::Any, |t, _| Ok(t.possibly_has_members())); + .simplify_until_matches(env, Type::Any, |t, _| Ok(t.possibly_has_members()), checked); if result.is_err() { warn!("Couldn't simplify {} to a type with members", self); @@ -851,10 +885,10 @@ impl Type { } /// Simplify a type until it's a union. - pub fn simplify_until_union(&self, env: &Env) -> Result { + pub fn simplify_until_union(&self, env: &Env, checked: bool) -> Result { let result = self .clone() - .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_union())); + .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_union()), checked); if result.is_err() { debug!("Couldn't simplify {} to a union", self); } @@ -874,10 +908,10 @@ impl Type { } /// Simplify a type until you can get its variants. - pub fn simplify_until_has_variants(&self, env: &Env) -> Result { + pub fn simplify_until_has_variants(&self, env: &Env, checked: bool) -> Result { let result = self .clone() - .simplify_until_matches(env, Type::Enum(vec![]), |t, _| Ok(t.has_variants())); + .simplify_until_matches(env, Type::Enum(vec![]), |t, _| Ok(t.has_variants()), checked); if result.is_err() { debug!("Couldn't simplify {} to a type with variants", self); } @@ -896,19 +930,19 @@ impl Type { false } - pub fn simplify_until_atomic(&self, env: &Env) -> Result { + pub fn simplify_until_atomic(&self, env: &Env, checked: bool) -> Result { let result = self .clone() - .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_atomic())); + .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_atomic()), checked); if result.is_err() { debug!("Couldn't simplify {} to an atomic type", self); } result } - pub fn simplify_until_simple(&self, env: &Env) -> Result { + pub fn simplify_until_simple(&self, env: &Env, checked: bool) -> Result { let result = self .clone() - .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_simple())); + .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_simple()), checked); if result.is_err() { debug!("Couldn't simplify {} to a simple type", self); } @@ -916,11 +950,12 @@ impl Type { } /// Simplify until the type is a polymorphic type. - pub fn simplify_until_poly(&self, env: &Env) -> Result { + pub fn simplify_until_poly(&self, env: &Env, checked: bool) -> Result { let result = self.clone().simplify_until_matches( env, Type::Poly(vec![], Box::new(Type::Any)), |t, _| Ok(t.is_polymorphic()), + checked ); if result.is_err() { debug!("Couldn't simplify {} to a polymorphic type", self); @@ -929,10 +964,10 @@ impl Type { } /// Simplify until the type is concrete. - pub fn simplify_until_concrete(&self, env: &Env) -> Result { + pub fn simplify_until_concrete(&self, env: &Env, checked: bool) -> Result { let result = self .clone() - .simplify_until_matches(env, Type::Any, |t, _env| Ok(t.is_concrete())); + .simplify_until_matches(env, Type::Any, |t, _env| Ok(t.is_concrete()), checked); if result.is_err() { debug!("Couldn't simplify {} to a concrete type", self); } @@ -949,6 +984,7 @@ impl Type { env: &Env, expected: Self, f: impl Fn(&Self, &Env) -> Result, + checked: bool ) -> Result { let mut simplified = self; // for _ in 0..Self::SIMPLIFY_RECURSION_LIMIT { @@ -956,7 +992,7 @@ impl Type { if f(&simplified, env)? || simplified.is_atomic() { return Ok(simplified); } - simplified = simplified.perform_template_applications(env, &mut HashMap::new())? + simplified = simplified.perform_template_applications(env, &mut HashMap::new(), checked)? } Err(Error::CouldntSimplify(simplified, expected)) } @@ -1039,7 +1075,7 @@ impl Type { /// Substitute all occurences of a symbol with another type. /// This will not traverse into let-bindings when the symbol is overshadowed. pub fn substitute(&self, name: &str, substitution: &Self) -> Self { - warn!("Subbing {name} for {substitution} in {self}"); + // warn!("Subbing {name} for {substitution} in {self}"); let result = match self { Self::Type(t) => Self::Type(Box::new(t.substitute(name, substitution))), Self::Let(typename, binding, ret) => Self::Let( @@ -1066,7 +1102,7 @@ impl Type { } else { // Does the inner symbol use this type variable? Self::Poly( - ty_params.clone(), + ty_params.iter().map(|(x, ty)| (x.clone(), ty.as_ref().map(|ty| ty.substitute(name, substitution)))).collect(), template.substitute(name, substitution).into(), ) } @@ -1150,7 +1186,7 @@ impl Type { Self::Pointer(*mutability, Box::new(ptr.substitute(name, substitution))) } }; - warn!("Got back {result}"); + // warn!("Got back {result}"); result } @@ -1174,7 +1210,7 @@ impl Type { /// For all cases right now, a decay does nothing; the representations of the types /// in the compiler are the same for all types of decay. pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result { - trace!("Checking if {} can decay to {}", self, desired); + // trace!("Checking if {} can decay to {}", self, desired); if self.equals(desired, env)? { return Ok(true); } @@ -1234,6 +1270,8 @@ impl Type { return Ok(true); } + debug!("Could not decay {self} into {desired}"); + Ok(false) } @@ -1258,7 +1296,7 @@ impl Type { (Self::Array(found_elem_ty, found_len), Self::Array(desired_elem_ty, expected_len)) => { // Check if the element types can decay, and if the sizes are equal. if found_elem_ty.can_decay_to(desired_elem_ty, env)? - && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?) + && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?, env) { trace!("{} can decay to {}", self, desired); return Ok(true); @@ -1266,7 +1304,7 @@ impl Type { // Check if the element types are compatible, and if the sizes are equal. if found_elem_ty.has_element_type(desired_elem_ty, env)? - && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?) + && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?, env) { trace!("{} can decay to {}", self, desired); return Ok(true); @@ -1472,6 +1510,7 @@ impl Type { &self, env: &Env, previous_applications: &mut HashMap<(Type, Vec), Type>, + checked: bool, ) -> Result { let _before = self.to_string(); trace!("Performing template applications on {}", self); @@ -1482,10 +1521,10 @@ impl Type { Ok(match self.clone().simplify(env)? { Self::Apply(poly, ty_args) => { let pair = ( - poly.perform_template_applications(env, previous_applications)?, + poly.perform_template_applications(env, previous_applications, checked)?, ty_args .into_iter() - .map(|t| t.perform_template_applications(env, previous_applications)) + .map(|t| t.perform_template_applications(env, previous_applications, checked)) .collect::, _>>()?, ); if let Some(t) = previous_applications.get(&pair) { @@ -1497,21 +1536,46 @@ impl Type { Self::Poly(params, mono_ty) => { let _poly = Self::Poly(params.clone(), mono_ty.clone()); let mut mono_ty = *mono_ty; - for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { - if let Some(expected_ty) = expected_ty { - if !expected_ty.equals(ty_arg, env)? && !matches!(ty_arg, Type::Unit(name, ..) if param == name) { - return Err(Error::MismatchedTypes { expected: expected_ty.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + if !checked { + for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + mono_ty = mono_ty.substitute(param, ty_arg); + } + } else { + let mut new_env = env.clone(); + for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + new_env.define_type(param, ty_arg.clone()); + } + for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + if let Some(expected_ty) = expected_ty { + if !expected_ty.equals(ty_arg, &new_env)? && !matches!(ty_arg, Type::Unit(name, inner) if param == name || **inner == Type::None) { + return Err(Error::MismatchedTypes { expected: expected_ty.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + } } + mono_ty = mono_ty.substitute(param, ty_arg); } - mono_ty = mono_ty.substitute(param, ty_arg); } mono_ty } Self::Symbol(s) => match env.get_type(s.as_str()).cloned() { Some(Self::Poly(params, mono_ty)) => { let mut mono_ty = *mono_ty; - for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) { - mono_ty = mono_ty.substitute(param, ty_arg); + if !checked { + for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + mono_ty = mono_ty.substitute(param, ty_arg); + } + } else { + let mut new_env = env.clone(); + for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + new_env.define_type(param, ty_arg.clone()); + } + for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + if let Some(expected_ty) = expected_ty { + if !expected_ty.equals(ty_arg, &new_env)? && !matches!(ty_arg, Type::Unit(name, inner) if param == name || **inner == Type::None) { + return Err(Error::MismatchedTypes { expected: expected_ty.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + } + } + mono_ty = mono_ty.substitute(param, ty_arg); + } } mono_ty } @@ -1524,13 +1588,13 @@ impl Type { } Self::Pointer(mutability, inner) => Self::Pointer( mutability, - Box::new(inner.perform_template_applications(env, previous_applications)?), + Box::new(inner.perform_template_applications(env, previous_applications, checked)?), ), Self::Proc(args, ret) => Self::Proc( args.into_iter() - .map(|t| t.perform_template_applications(env, previous_applications)) + .map(|t| t.perform_template_applications(env, previous_applications, checked)) .collect::, _>>()?, - Box::new(ret.perform_template_applications(env, previous_applications)?), + Box::new(ret.perform_template_applications(env, previous_applications, checked)?), ), Self::Struct(fields) if !self.is_recursive(env)? => Self::Struct( fields @@ -1538,7 +1602,7 @@ impl Type { .map(|(name, t)| { Ok(( name, - t.perform_template_applications(env, previous_applications)?, + t.perform_template_applications(env, previous_applications, checked)?, )) }) .collect::, Error>>()?, @@ -1549,7 +1613,7 @@ impl Type { .map(|(name, t)| { Ok(( name, - t.perform_template_applications(env, previous_applications)?, + t.perform_template_applications(env, previous_applications, checked)?, )) }) .collect::, Error>>()?, @@ -1561,26 +1625,26 @@ impl Type { .map(|(name, t)| { Ok(( name, - t.perform_template_applications(env, previous_applications)?, + t.perform_template_applications(env, previous_applications, checked)?, )) }) .collect::, Error>>()?, ), Self::Type(ty) if !self.is_recursive(env)? => { - ty.perform_template_applications(env, previous_applications)?; + ty.perform_template_applications(env, previous_applications, checked)?; Self::Type(ty) } Self::Tuple(items) if !self.is_recursive(env)? => Self::Tuple( items .into_iter() - .map(|t| t.perform_template_applications(env, previous_applications)) + .map(|t| t.perform_template_applications(env, previous_applications, checked)) .collect::, _>>()?, ), Self::Array(item_t, size) if !self.is_recursive(env)? => Self::Array( - Box::new(item_t.perform_template_applications(env, previous_applications)?), + Box::new(item_t.perform_template_applications(env, previous_applications, checked)?), size, ), @@ -1608,7 +1672,7 @@ impl Type { ); return Ok(false); } - trace!("Checking if {} equals {}", self, other); + // trace!("Checking if {} equals {}", self, other); let i = i + 1; @@ -1738,7 +1802,7 @@ impl Type { } (Self::Array(t1, size1), Self::Array(t2, size2)) => { t1.equals_checked(t2, compared_symbols, env, i)? - && size1.clone().eval(env)?.equals(&size2.clone().eval(env)?) + && size1.clone().eval(env)?.equals(&size2.clone().eval(env)?, env) } (Self::Struct(a), Self::Struct(b)) => { if a.len() != b.len() { @@ -1806,20 +1870,20 @@ impl Type { // Create a new environment. let mut new_env = env.clone(); for ((name1, ty1), (name2, ty2)) in ty_params1.iter().zip(ty_params2.iter()) { - match (ty1, ty2) { - (Some(ty1), Some(ty2)) => { - if !ty1.equals_checked(&ty2, compared_symbols, &new_env, i)? { - return Err(Error::MismatchedTypes { expected: ty1.clone(), found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) }) - } - } - (None, None) => {} - (Some(ty1), None) => { - return Err(Error::MismatchedTypes { expected: ty1.clone(), found: Self::Type(Type::Any.into()), expr: Expr::ConstExpr(self.clone().into()) }) - } - (None, Some(ty2)) => { - return Err(Error::UnexpectedConstParam { found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) }) - } - } + // match (ty1, ty2) { + // (Some(ty1), Some(ty2)) => { + // if !ty1.equals_checked(&ty2, compared_symbols, &new_env, i)? { + // return Err(Error::MismatchedTypes { expected: ty1.clone(), found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + // } + // } + // (None, None) => {} + // (Some(ty1), None) => { + // return Err(Error::MismatchedTypes { expected: ty1.clone(), found: Self::Type(Type::Any.into()), expr: Expr::ConstExpr(self.clone().into()) }) + // } + // (None, Some(ty2)) => { + // return Err(Error::UnexpectedConstParam { found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) }) + // } + // } // In the new environment, bind the two type parameters to the same type. let combined_name = format!("{name1}+{name2}"); let combined_ty = Self::Unit(combined_name, Box::new(Type::Any)); @@ -1875,7 +1939,7 @@ impl Type { (Self::Apply(poly, ty_args), b) | (b, Self::Apply(poly, ty_args)) => { Self::Apply(poly.clone(), ty_args.clone()) - .simplify_until_concrete(env)? + .simplify_until_concrete(env, false)? .equals_checked(b, compared_symbols, env, i)? } @@ -1883,8 +1947,8 @@ impl Type { (Self::ConstParam(cexpr), other) | (other, Self::ConstParam(cexpr)) => { cexpr.get_type(env)?.equals_checked(other, compared_symbols, env, i)? }, - _ => { - // trace!("{} is not equal to {}", a, b); + (a, b) => { + // error!("{} is not equal to {}", a, b); false } }) @@ -1958,7 +2022,7 @@ impl Type { Type::Unit(_unit_name, t) => t.get_member_offset(member, expr, env), Type::Apply(_, _) | Type::Poly(_, _) => { - let t = self.simplify_until_concrete(env)?; + let t = self.simplify_until_concrete(env, true)?; t.get_member_offset(member, expr, env) } @@ -2065,7 +2129,7 @@ impl Type { } Type::Apply(_, _) | Type::Poly(_, _) => { - let t = self.simplify_until_concrete(env)?; + let t = self.simplify_until_concrete(env, true)?; trace!("Simplified {self} to {t}"); t.type_check_member(member, expr, env) } @@ -2123,8 +2187,16 @@ impl Simplify for Type { | Self::Char | Self::Bool | Self::Cell - | Self::Enum(_) - | Self::Poly(_, _) => self.clone(), + | Self::Enum(_) => self.clone(), + Self::Poly(mut ty_params, body) => { + for (name, ty) in &mut ty_params { + // *ty = ty.map(|ty| ty.simplify_checked(env, i)); + if let Some(ty) = ty { + *ty = ty.clone().simplify_checked(env, i)?; + } + } + Self::Poly(ty_params, body) + } Self::Pointer(mutability, inner) => { Self::Pointer(mutability, Box::new(inner.simplify_checked(env, i)?)) } @@ -2222,7 +2294,7 @@ impl Simplify for Type { Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args) } }; - warn!("Simplified {_s} into {result}"); + // warn!("Simplified {_s} into {result}"); Ok(result) } } diff --git a/src/lir/types/size.rs b/src/lir/types/size.rs index ec01bb83..abc5812c 100644 --- a/src/lir/types/size.rs +++ b/src/lir/types/size.rs @@ -166,7 +166,7 @@ impl GetSize for Type { return Ok(size); } - let result = self.clone().simplify_until_concrete(env)?; + let result = self.clone().simplify_until_concrete(env, false)?; result.get_size_checked(env, i)? } From 34414dbf58199e02800c5df98f68a5ef3673eec6 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Fri, 6 Sep 2024 19:58:37 -0400 Subject: [PATCH 03/29] Fixed bug where typechecking worked on first pass, but not second --- src/lir/env.rs | 6 +++--- src/lir/expr/procedure/poly.rs | 37 +++++++++++++++++----------------- src/lir/types/check.rs | 2 ++ 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/lir/env.rs b/src/lir/env.rs index 5c343ba0..10a9b5ee 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -252,7 +252,7 @@ impl Env { // Go through all the types and see if any equals the given type. for (other_ty, consts) in associated_constants.iter() { if matches!(ty.is_monomorph_of(other_ty, self), Ok(true)) { - info!("Type {ty} is monomorph of {other_ty}"); + debug!("Type {ty} is monomorph of {other_ty}"); for (name, (constant, ty)) in consts { debug!(" {name}: {ty} = {constant}") } @@ -366,7 +366,7 @@ impl Env { } pub fn get_associated_const(&self, ty: &Type, name: &str) -> Option<(ConstExpr, Type)> { - info!( + debug!( "Getting associated const {name} of type {ty} in {self} with types {:?}", self.types ); @@ -672,7 +672,7 @@ impl Env { expr: ConstExpr, ) -> Result<(), Error> { let associated_const_name = associated_const_name.to_string(); - info!("Defining associated const {associated_const_name} as {expr} to type {ty}"); + debug!("Defining associated const {associated_const_name} as {expr} to type {ty}"); let expr_ty = expr.get_type(self)?; let mut associated_constants = self.associated_constants.write().unwrap(); associated_constants diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index 9cd6f13b..e3c0c113 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -182,30 +182,29 @@ impl PolyProcedure { drop(monomorphs); let mut monomorphs = self.monomorphs.write().unwrap(); + debug!(target: "mono", "Memoizing monomorphized procedure {}", mangled_name); + let mut body = *self.body.clone(); + + // Substitute the type arguments into the body of the function. + body.substitute_types(&self.type_param_names(), &simplified_ty_args); + + // Wrap the body in a let expression to bind the type arguments. + body = body.with( + self.type_param_names() + .iter() + .zip(simplified_ty_args.iter()) + .map(|(a, b)| (a.clone(), b.clone())) + .collect::>(), + ); + + let monomorph = Procedure::new(Some(mangled_name.clone()), args, ret, body); + monomorph.type_check(env)?; // If the monomorphized procedure has already been memoized, return it, otherwise memoize it. debug!(target: "mono", "Inserting entry for {}", mangled_name); let monomorph = monomorphs .entry(mangled_name.clone()) - .or_insert_with(|| { - debug!(target: "mono", "Memoizing monomorphized procedure {}", mangled_name); - let mut body = *self.body.clone(); - - // Substitute the type arguments into the body of the function. - body.substitute_types(&self.type_param_names(), &simplified_ty_args); - - // Wrap the body in a let expression to bind the type arguments. - body = body.with( - self.type_param_names() - .iter() - .zip(simplified_ty_args.iter()) - .map(|(a, b)| (a.clone(), b.clone())) - .collect::>(), - ); - - Procedure::new(Some(mangled_name.clone()), args, ret, body) - }) + .or_insert_with(|| monomorph) .clone(); - // Unlock the mutex to prevent a deadlock. drop(monomorphs); // Return the monomorphized procedure. diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index 3b0431ea..40400552 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -715,6 +715,8 @@ impl TypeCheck for Expr { found, expr: self.clone(), }); + } else { + info!("Found {found} can decay to {expected} in {self}") } } Ok(()) From adf76c1fa68a2c168a02b2d7a23f05152b70a11a Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Fri, 6 Sep 2024 20:51:44 -0400 Subject: [PATCH 04/29] Added matrix const-generics to example --- examples/frontend/matrix.sg | 113 ++++++++++++++++++++++++++ examples/frontend/matrix_point.sg | 79 ++++++++++++++++++ examples/test-output/matrix.txt | 24 ++++++ examples/test-output/matrix_point.txt | 15 ++++ 4 files changed, 231 insertions(+) create mode 100644 examples/frontend/matrix.sg create mode 100644 examples/frontend/matrix_point.sg create mode 100644 examples/test-output/matrix.txt create mode 100644 examples/test-output/matrix_point.txt diff --git a/examples/frontend/matrix.sg b/examples/frontend/matrix.sg new file mode 100644 index 00000000..6f8a033e --- /dev/null +++ b/examples/frontend/matrix.sg @@ -0,0 +1,113 @@ +struct Matrix { + arr: [[T * Cols] * Rows] +} + +impl Matrix { + fun new(x: T): Matrix { + return {arr=[[x] * Cols] * Rows}; + } + + fun get(&self, row: Int, col: Int): &T { + return &self.arr[row][col]; + } + + fun mul( + &self, + other: &Matrix, + zero: T, + add: fun(T, T) -> T, + mul: fun(T, T) -> T + ): Matrix { + let mut result = Matrix.new(zero); + for let mut j=0; j(&mut self, row: Int, col: Int) { + self.arr[row][col] = X; + } + + fun set_range(&mut self, row: Int) { + for let mut i=0; i(&mut self, row: Int) { + for let mut i=0; i(&mut self, col: Int) { + for let mut i=0; i(10); +let mut y = Matrix.new(5); +for let mut row=0; row < 4; row += 1; { + y.set_row<[1, 2, 3, 4]>(row); +} +y.set_range<4, [4, 3, 2, 1]>(0); + +x.set_col<[1, 2, 3, 4]>(0); +x.set<5>(1, 1); + +x.print(); +println(); +y.print(); +println(); + +fun add_ints(a: Int, b: Int): Int = a + b; +fun mul_ints(a: Int, b: Int): Int = a * b; + +let z = y.mul<4>(&x, 0, add_ints, mul_ints); +z.print(); + +struct Test { + a: Matrix, + b: Matrix, + c: Matrix +} + +impl Test { + fun new(): Test { + {a=Matrix.new(10), b=Matrix.new(5), c=Matrix.new(0)} + } + + fun test(&mut self) { + let b = self.b; + self.c = b.mul<1>(&self.a, 0, add_ints, mul_ints); + } +} + +let mut t = Test.new(); +for let mut i=0; i<1; i+=1; { + t.test(); +} +t.c.print(); \ No newline at end of file diff --git a/examples/frontend/matrix_point.sg b/examples/frontend/matrix_point.sg new file mode 100644 index 00000000..4b5ae69f --- /dev/null +++ b/examples/frontend/matrix_point.sg @@ -0,0 +1,79 @@ +struct Matrix { + arr: [[T * Cols] * Rows] +} + +impl Matrix { + fun new(x: T): Matrix { + return {arr=[[x] * Cols] * Rows}; + } + + fun get(&self, row: Int, col: Int): &T { + return &self.arr[row][col]; + } + + fun mul( + &self, + other: &Matrix, + zero: T, + add: fun(T, T) -> T, + mul: fun(T, T) -> T + ): Matrix { + let mut result = Matrix.new(zero); + for let mut j=0; j(Point.new(1, 2)); +let mut y = Matrix.new(Point.new(-4, 5)); + +x.print(); +println(); +y.print(); +println(); + +let z = y.mul<4>(&x, Point.default(), Point.add, Point.mul); + +z.print(); +println(); \ No newline at end of file diff --git a/examples/test-output/matrix.txt b/examples/test-output/matrix.txt new file mode 100644 index 00000000..183a72b4 --- /dev/null +++ b/examples/test-output/matrix.txt @@ -0,0 +1,24 @@ +1 10 10 10 +2 5 10 10 +3 10 10 10 +4 10 10 10 + +4 3 2 1 +1 2 3 4 +1 2 3 4 +1 2 3 4 + +20 85 100 100 +30 90 100 100 +30 90 100 100 +30 90 100 100 +500 +500 +500 +500 +500 +500 +500 +500 +500 +500 diff --git a/examples/test-output/matrix_point.txt b/examples/test-output/matrix_point.txt new file mode 100644 index 00000000..ebd27e76 --- /dev/null +++ b/examples/test-output/matrix_point.txt @@ -0,0 +1,15 @@ +{x=1, y=2} {x=1, y=2} {x=1, y=2} {x=1, y=2} +{x=1, y=2} {x=1, y=2} {x=1, y=2} {x=1, y=2} +{x=1, y=2} {x=1, y=2} {x=1, y=2} {x=1, y=2} +{x=1, y=2} {x=1, y=2} {x=1, y=2} {x=1, y=2} + +{x=-4, y=5} {x=-4, y=5} {x=-4, y=5} {x=-4, y=5} +{x=-4, y=5} {x=-4, y=5} {x=-4, y=5} {x=-4, y=5} +{x=-4, y=5} {x=-4, y=5} {x=-4, y=5} {x=-4, y=5} +{x=-4, y=5} {x=-4, y=5} {x=-4, y=5} {x=-4, y=5} + +{x=-16, y=40} {x=-16, y=40} {x=-16, y=40} {x=-16, y=40} +{x=-16, y=40} {x=-16, y=40} {x=-16, y=40} {x=-16, y=40} +{x=-16, y=40} {x=-16, y=40} {x=-16, y=40} {x=-16, y=40} +{x=-16, y=40} {x=-16, y=40} {x=-16, y=40} {x=-16, y=40} + From 63309c9ef220062b91d0201954737dd491fdd2ca Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Fri, 6 Sep 2024 20:56:42 -0400 Subject: [PATCH 05/29] Added an example typechecking against const generics --- examples/frontend/typecheck-const-generics.sg | 113 ++++++++++++++++++ .../typecheck-const-generics.error.txt | 1 + 2 files changed, 114 insertions(+) create mode 100644 examples/frontend/typecheck-const-generics.sg create mode 100644 examples/test-output/typecheck-const-generics.error.txt diff --git a/examples/frontend/typecheck-const-generics.sg b/examples/frontend/typecheck-const-generics.sg new file mode 100644 index 00000000..81d79352 --- /dev/null +++ b/examples/frontend/typecheck-const-generics.sg @@ -0,0 +1,113 @@ +struct Matrix { + arr: [[T * Cols] * Rows] +} + +impl Matrix { + fun new(x: T): Matrix { + return {arr=[[x] * Cols] * Rows}; + } + + fun get(&self, row: Int, col: Int): &T { + return &self.arr[row][col]; + } + + fun mul( + &self, + other: &Matrix, + zero: T, + add: fun(T, T) -> T, + mul: fun(T, T) -> T + ): Matrix { + let mut result = Matrix.new(zero); + for let mut j=0; j(&mut self, row: Int, col: Int) { + self.arr[row][col] = X; + } + + fun set_range(&mut self, row: Int) { + for let mut i=0; i(&mut self, row: Int) { + for let mut i=0; i(&mut self, col: Int) { + for let mut i=0; i(10); +let mut y = Matrix.new(5); +for let mut row=0; row < 4; row += 1; { + y.set_row<[1, 2, 3, 4]>(row); +} +y.set_range<4, [4, 3, 2, 1]>(0); + +x.set_col<[1, 2, 3, 4, 5]>(0); +x.set<5>(1, 1); + +x.print(); +println(); +y.print(); +println(); + +fun add_ints(a: Int, b: Int): Int = a + b; +fun mul_ints(a: Int, b: Int): Int = a * b; + +let z = y.mul<4>(&x, 0, add_ints, mul_ints); +z.print(); + +struct Test { + a: Matrix, + b: Matrix, + c: Matrix +} + +impl Test { + fun new(): Test { + {a=Matrix.new(10), b=Matrix.new(5), c=Matrix.new(0)} + } + + fun test(&mut self) { + let b = self.b; + self.c = b.mul<1>(&self.a, 0, add_ints, mul_ints); + } +} + +let mut t = Test.new(); +for let mut i=0; i<1; i+=1; { + t.test(); +} +t.c.print(); \ No newline at end of file diff --git a/examples/test-output/typecheck-const-generics.error.txt b/examples/test-output/typecheck-const-generics.error.txt new file mode 100644 index 00000000..331eb684 --- /dev/null +++ b/examples/test-output/typecheck-const-generics.error.txt @@ -0,0 +1 @@ +mismatched types: expected [Int * 4], found const param [1, 2, 3, 4, 5] in ((X: [Int * 4]) => (&mut (Matrix), Int) -> None) \ No newline at end of file From ad6991048e01eb4c1ccc696729e20d991ead85a4 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Fri, 6 Sep 2024 21:25:46 -0400 Subject: [PATCH 06/29] Fixed warning --- src/lir/types/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 4f65c75a..41337ad1 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -1537,12 +1537,12 @@ impl Type { let _poly = Self::Poly(params.clone(), mono_ty.clone()); let mut mono_ty = *mono_ty; if !checked { - for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { mono_ty = mono_ty.substitute(param, ty_arg); } } else { let mut new_env = env.clone(); - for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { new_env.define_type(param, ty_arg.clone()); } for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { @@ -1560,12 +1560,12 @@ impl Type { Some(Self::Poly(params, mono_ty)) => { let mut mono_ty = *mono_ty; if !checked { - for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { mono_ty = mono_ty.substitute(param, ty_arg); } } else { let mut new_env = env.clone(); - for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { + for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { new_env.define_type(param, ty_arg.clone()); } for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) { From fdffb3c3e998c54642374468324b391f5ce5eea7 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 01:59:09 -0400 Subject: [PATCH 07/29] Fixed const generics for structs and tuples --- examples/frontend/const-generics-member.sg | 38 +++++ examples/frontend/matrix.sg | 1 + src/frontend/parse.rs | 19 ++- src/lir/compile.rs | 7 +- src/lir/env.rs | 20 ++- src/lir/expr/const_expr.rs | 75 +++++++--- src/lir/expr/ops/io.rs | 2 +- src/lir/expr/procedure/poly.rs | 7 +- src/lir/types/check.rs | 6 +- src/lir/types/mod.rs | 158 ++++++++++++++++++--- tests/c_target.rs | 2 +- tests/examples.rs | 3 +- 12 files changed, 279 insertions(+), 59 deletions(-) create mode 100644 examples/frontend/const-generics-member.sg diff --git a/examples/frontend/const-generics-member.sg b/examples/frontend/const-generics-member.sg new file mode 100644 index 00000000..e835587e --- /dev/null +++ b/examples/frontend/const-generics-member.sg @@ -0,0 +1,38 @@ +fun test() { + println(X.0); +} + +fun test2() { + println(X); + println("x: ", X.x); + println("y: ", X.y); +} + +test<(5, 6)>(); +test2<{x=45, y=37}>(); + +type Test = {x: Int, y: Int}; +struct Point { + x: Int, + y: Int +} + +impl Point { + fun new(x: Int, y: Int): Point { + {x=x, y=y} + } + + fun move(&mut self, dx: Int, dy: Int) { + self.x += dx; + self.y += dy; + } +} + + +fun test3() { + let mut p = P; + p.move(1, 1); + println(p) +} + +test3<{x=5, y=6}>(); \ No newline at end of file diff --git a/examples/frontend/matrix.sg b/examples/frontend/matrix.sg index 6f8a033e..a3a22573 100644 --- a/examples/frontend/matrix.sg +++ b/examples/frontend/matrix.sg @@ -63,6 +63,7 @@ impl Matrix { } } + #![(defun echo(x) { (println x) x diff --git a/src/frontend/parse.rs b/src/frontend/parse.rs index 7dfcdaef..293b9154 100644 --- a/src/frontend/parse.rs +++ b/src/frontend/parse.rs @@ -4100,9 +4100,26 @@ fn parse_const_struct<'a, E: ParseError<&'a str> + ContextError<&'a str>>( #[cfg(test)] mod tests { fn compile_and_run(code: &str, input: &str) -> Result { + // let has_init = {*INIT.read().unwrap()}; + // if !has_init { + // let mut builder = env_logger::Builder::from_default_env(); + // builder.format_timestamp(None); + // builder.filter( + // None, + // // LogLevel::Error if args.debug.is_none() => log::LevelFilter::Error, + // // LogLevel::Warn if args.debug.is_none() => log::LevelFilter::Warn, + // // LogLevel::Off if args.debug.is_none() => log::LevelFilter::Error, + // // LogLevel::Info if args.debug.is_none() => log::LevelFilter::Info, + // log::LevelFilter::Trace, + // // log::LevelFilter::Info, + // ); + // builder.init(); + // *INIT.write().unwrap() = true; + // } + let _ = rayon::ThreadPoolBuilder::new() .num_threads(16) - .stack_size(2048 * 1024 * 1024) + .stack_size(512 * 1024 * 1024) .build_global(); // Compiling most examples overflows the tiny stack for tests. // So, we spawn a new thread with a larger stack size. diff --git a/src/lir/compile.rs b/src/lir/compile.rs index 68e360cb..40609e8b 100644 --- a/src/lir/compile.rs +++ b/src/lir/compile.rs @@ -1080,7 +1080,9 @@ impl Compile for ConstExpr { Self::Type(t) => { match t.simplify(env)? { Type::ConstParam(cexpr) => cexpr.compile_expr(env, output)?, - _ => {} + _ => { + return Err(Error::UnsizedType(ty)); + } } } Self::Member(container, member) => { @@ -1101,6 +1103,9 @@ impl Compile for ConstExpr { } fields[&name].clone().compile_expr(env, output)? } + (Self::Type(ty), member) if ty.is_const_param() => { + ty.simplify_until_const_param(env, false)?.field(member).compile_expr(env, output)? + } (Self::Type(ty), Self::Symbol(name)) => { if let Some((constant, _)) = env.get_associated_const(&ty, &name) { debug!("Compiling associated constant {constant} in environment {env}"); diff --git a/src/lir/env.rs b/src/lir/env.rs index 10a9b5ee..506e5f80 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -1003,17 +1003,17 @@ impl Env { /// Define a type with a given name under this environment. pub(super) fn define_type(&mut self, name: impl ToString, ty: Type) { let name = name.to_string(); - + trace!("Defining type {name} as {ty}"); + if ty.is_const_param() { + if let Ok(ty) = ty.clone().simplify_until_const_param(self, false) { + self.define_const(&name, ty); + } + } match &ty { Type::Symbol(sym) if sym == &name => { trace!("Defining type {ty} to itself as {name}"); } - Type::ConstParam(cexpr) => { - trace!("Defining constant param: {name} => {cexpr}"); - self.define_const(&name, *cexpr.clone()); - } _ => { - trace!("Defining type {name} as {ty}"); Arc::make_mut(&mut self.consts).insert(name.clone(), ConstExpr::Type(ty.clone())); Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone()); @@ -1077,6 +1077,7 @@ impl Env { /// Define a constant with a given name under this environment. pub(super) fn define_const(&mut self, name: impl ToString, e: ConstExpr) { let name = name.to_string(); + trace!("Defining constant {name} as {e}"); /* Removed this code in favor of using Declaration::FromImport @@ -1233,6 +1234,13 @@ impl Env { // so that the next variable is allocated directly after this variable. debug!("Defining variable {var} of type {ty} at {offset} in\n{self}"); self.fp_offset += size; + + let ty = match ty { + Type::Type(ty) => *ty, + Type::ConstParam(ty) => ty.get_type(self)?, + other => other + }; + // Store the variable's type and offset in the environment. Arc::make_mut(&mut self.vars).insert(var, (mutability, ty, offset)); // Return the offset of the variable from the frame pointer. diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index f715946b..537d7024 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -247,7 +247,7 @@ impl ConstExpr { Self::Member(container, member) => { let container_ty = container.get_type_checked(env, i)?; - trace!("Member access on type: {container_ty}: {container} . {member}"); + info!("Member access on type: {container_ty:?}: {container} . {member}"); Ok(match (*container.clone(), *member.clone()) { (Self::Annotated(inner, metadata), member) => { Self::Member(inner, member.into()) @@ -314,7 +314,23 @@ impl ConstExpr { trace!("Found struct field: {container_ty} . {member}"); fields[&name].clone().eval_checked(env, i)? } + (Self::Type(ty), Self::Int(n)) => { + warn!("Getting member {n} from {ty}"); + if ty.is_const_param() { + let cexpr = ty.simplify_until_const_param(env, false)?; + return cexpr.field(Self::Int(n)).eval_checked(env, i) + } else { + // return Err(Error::MemberNotFound((*container).into(), *member)); + return Ok(Self::Type(ty).field(Self::Int(n))); + } + } (Self::Type(ty), Self::Symbol(name)) => { + info!("Getting member {name} from {ty}"); + if ty.is_const_param() { + let cexpr = ty.simplify_until_const_param(env, false)?; + return cexpr.eval_checked(env, i)?.field(Self::Symbol(name)).eval_checked(env, i) + } + if let Some((constant, _)) = env.get_associated_const(&ty, &name) { constant.eval_checked(env, i)? } else { @@ -328,7 +344,7 @@ impl ConstExpr { error!( "Type member access not implemented for: {container_ty} . {member}, symbol {name} not defined" ); - return Err(Error::SymbolNotDefined(name)); + return Ok(Self::Type(ty).field(Self::Symbol(name))); } } @@ -343,6 +359,7 @@ impl ConstExpr { } debug!("Member access not implemented for: {container_ty} . {member}"); return Err(Error::MemberNotFound((*container).into(), member)); + // return container.eval_checked(env, i)?.field(member).eval(env) } _ => { if let Ok(Some((constant, _))) = member @@ -374,10 +391,9 @@ impl ConstExpr { | Self::Proc(_) | Self::PolyProc(_) => Ok(self), Self::Type(ty) => { - if let Type::ConstParam(cexpr) = ty { - cexpr.eval_checked(env, i) - } else { - Ok(Self::Type(ty.clone().simplify(env)?)) + match ty.clone().simplify(env)? { + Type::ConstParam(cexpr) => cexpr.eval_checked(env, i), + ty => Ok(Self::Type(ty.clone())) } } @@ -543,7 +559,10 @@ impl ConstExpr { // If not, evaluate it and see if it's a symbol. other => match other.eval(env)? { Self::Symbol(name) => Ok(name), - other => Err(Error::NonSymbol(other)), + other => { + error!("Could not convert {other} to symbol"); + Err(Error::NonSymbol(other)) + }, }, } } @@ -573,12 +592,19 @@ impl GetType for ConstExpr { } Self::Type(t) => { - if let Type::ConstParam(cexpr) = t.clone().simplify(env)? { - // Type::ConstParam(cexpr.eval(env)?.into()) - cexpr.get_type(env)? - } else { - Type::Type(t.into()) - } + info!("Getting type of type {t}"); + let result = match t.clone().simplify(env)? { + Type::ConstParam(cexpr) => cexpr.get_type(env)?, + t => Type::Type(t.into()) + }; + // let result = if let Type::ConstParam(cexpr) = t.clone().simplify(env)? { + // // Type::ConstParam(cexpr.eval(env)?.into()) + // cexpr.get_type(env)? + // } else { + // Type::Type(t.clone().into()) + // }; + info!("Got type of type {t} = {result}"); + result } Self::Member(val, field) => { @@ -589,10 +615,11 @@ impl GetType for ConstExpr { let as_int = field.clone().as_int(env); let val_type = val.get_type_checked(env, i)?; - debug!("Got type of container access {val} . {field}\nContainer: {val_type}"); + info!("Got type of container access {val} . {field}\nContainer: {val_type:?}, is_const_param: {}", val_type.is_const_param()); // val_type.add_monomorphized_associated_consts(env)?; // Get the type of the value to get the member of. - match &val_type.simplify_until_concrete(env, false)? { + let val_type = val_type.simplify_until_concrete(env, false)?; + match &val_type { Type::Unit(_unit_name, inner_ty) => { // Get the type of the field. env.get_type_of_associated_const(inner_ty, &as_symbol?) @@ -616,9 +643,17 @@ impl GetType for ConstExpr { } Type::Type(ty) => { - // Get the associated constant expression's type. - env.get_type_of_associated_const(ty, &as_symbol?) - .ok_or(Error::MemberNotFound((*val.clone()).into(), *field.clone()))? + info!("Got type {ty}"); + if ty.is_const_param() { + ty.simplify_until_const_param(env, false)?.eval(env)?.field(*field).get_type_checked(env, i)? + } else { + // Get the associated constant expression's type. + if let Ok((ty, _)) = ty.get_member_offset(&field, &Expr::from(self.clone()), env) { + return Ok(ty); + } + env.get_type_of_associated_const(ty, &as_symbol?) + .ok_or(Error::MemberNotFound((*val.clone()).into(), *field.clone()))? + } } // If we're accessing a member of a tuple, // we use the `as_int` interpretation of the field. @@ -961,9 +996,9 @@ impl GetType for ConstExpr { } Self::Symbol(symbol_name) if symbol_name == name => { // A constant symbol cannot be substituted for a type variable. - // debug!("Subbing {self} for {substitution}"); + debug!("Subbing {self} for {substitution}"); *self = ConstExpr::Type(substitution.clone()); - // debug!("Subbed into {self}"); + debug!("Subbed into {self}"); } _ => {} } diff --git a/src/lir/expr/ops/io.rs b/src/lir/expr/ops/io.rs index 7eb545f7..c1d06422 100644 --- a/src/lir/expr/ops/io.rs +++ b/src/lir/expr/ops/io.rs @@ -6,7 +6,7 @@ use crate::{ side_effects::*, }; use ::core::fmt::{Debug, Display, Formatter, Result as FmtResult}; - +use log::info; #[derive(Clone, Copy, PartialOrd, Ord, PartialEq, Eq, Hash)] pub struct Get; diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index e3c0c113..32878dfd 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -12,7 +12,7 @@ use std::{ }; use std::{hash::Hash, hash::Hasher}; -use log::{debug, error, trace}; +use log::{debug, error, trace, info}; use serde_derive::{Deserialize, Serialize}; /// A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments. @@ -247,7 +247,7 @@ impl TypeCheck for PolyProcedure { } *self.has_type_checked.write().unwrap() = true; - trace!("Type checking {self}"); + info!("Type checking {self}"); // Create a new scope for the procedure's body, and define the arguments for the scope. let mut new_env = env.new_scope(); // Define the type parameters of the procedure. @@ -280,7 +280,9 @@ impl TypeCheck for PolyProcedure { self.ret.type_check(&new_env)?; // Get the type of the procedure's body, and confirm that it matches the return type. + info!("Getting body type of {}", self.name); let body_type = self.body.get_type(&new_env)?; + info!("Got body type {body_type} of {}", self.name); if !body_type.can_decay_to(&self.ret, &new_env)? { error!( @@ -295,6 +297,7 @@ impl TypeCheck for PolyProcedure { }) } else { // Typecheck the procedure's body. + info!("Typechecking body of {} = {}", self.name, self.body); self.body.type_check(&new_env) } } diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index 40400552..91eec06d 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -491,7 +491,7 @@ impl TypeCheck for Expr { Err(Error::InvalidRefer(self.clone())) } } - Expr::ConstExpr(_cexpr) => Ok(()), + Expr::ConstExpr(cexpr) => cexpr.type_check(env), Expr::Deref(inner) | Expr::Index(inner, _) => { // Confirm that the inner expression can be referenced. match inner.get_type(env)? { @@ -933,11 +933,11 @@ impl TypeCheck for Expr { // Typecheck a constant expression. impl TypeCheck for ConstExpr { fn type_check(&self, env: &Env) -> Result<(), Error> { + info!("Typechecking constant expression: {}", self); if env.has_type_checked_const(self) { return Ok(()); } - debug!("Typechecking constant expression: {}", self); match self { Self::Any => Ok(()), Self::Template(_ty_params, _template) => { @@ -974,7 +974,7 @@ impl TypeCheck for ConstExpr { match e_type.type_check_member(field, &Expr::ConstExpr(*e.clone()), env) { Ok(_) => Ok(()), Err(_err) => { - debug!("Member {field} not found in type {e_type} in environment {env}"); + info!("Member {field} not found in type {e_type} in environment {env}"); match field .clone() .as_symbol(env) diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 41337ad1..f97608e0 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -220,6 +220,17 @@ impl Type { self.is_recursive_helper(&mut symbols, env) } + pub fn is_const_param(&self) -> bool { + // matches!(self, Type::ConstParam(..)) + match self { + Type::ConstParam(..) => true, + Type::Struct(fields) => fields.iter().map(|(_name, ty)| ty).all(Self::is_const_param), + Type::Tuple(items) => items.iter().all(Self::is_const_param), + Type::Type(t) => t.is_const_param(), + _ => false, + } + } + pub(crate) fn discard_type_wrapper(self) -> Self { match self { Self::Type(ty) | Self::Unit(_, ty) => *ty, @@ -751,6 +762,7 @@ impl Type { pub fn is_concrete(&self) -> bool { match self { Self::Poly(_, _) | Self::Symbol(_) | Self::Apply(_, _) | Self::Let(_, _, _) => false, + Self::None | Self::Int | Self::Float @@ -767,8 +779,8 @@ impl Type { | Self::Proc(_, _) | Self::Tuple(_) | Self::Unit(_, _) - | Self::Type(_) | Self::Array(_, _) + | Self::Type(_) | Self::Pointer(_, _) => true, } } @@ -787,6 +799,7 @@ impl Type { | Self::Enum(_) | Self::ConstParam(_) | Self::Type(_) => true, + Self::Unit(_, t) => t.is_atomic(), Self::Tuple(inner) => inner.iter().all(|t| t.is_atomic()), Self::Array(inner, expr) => inner.is_atomic() && matches!(**expr, ConstExpr::Int(_)), @@ -971,9 +984,69 @@ impl Type { if result.is_err() { debug!("Couldn't simplify {} to a concrete type", self); } + result } + + /// Simplify until the type is concrete. + pub fn simplify_until_const_param(&self, env: &Env, checked: bool) -> Result { + let mut simplified = self.clone().simplify(env)?; + for _ in 0..3 { + if let Self::ConstParam(cexpr) = simplified { + return Ok(*cexpr); + } + simplified = simplified.simplify(env)?; + simplified = match simplified { + Self::Tuple(items) => { + let simple_items = items + .into_iter() + .map(|t| t.simplify(env)) + .collect::, Error>>()?; + + if simple_items.iter().all(Self::is_const_param) { + Self::ConstParam(ConstExpr::Tuple(simple_items + .into_iter() + .map(|t| Ok(match t { + Type::ConstParam(cexpr) => cexpr.eval(env)?, + _ => unreachable!() + })) + .collect::>()?).into()) + } else { + Self::Tuple(simple_items) + } + } + Self::Struct(fields) => { + let simple_fields = fields + .into_iter() + .map(|(name, t)| Ok((name, t.simplify(env)?))) + .collect::, Error>>()?; + + if simple_fields.iter().map(|(_x, t)| t).all(Self::is_const_param) { + Self::ConstParam(ConstExpr::Struct(simple_fields + .into_iter() + .map(|(name, t)| Ok(match t { + Type::ConstParam(cexpr) => (name, cexpr.eval(env)?), + _ => unreachable!() + })) + .collect::>()?).into()) + } else { + Self::Struct(simple_fields) + } + } + other => other + }; + } + // if result.is_err() { + // debug!("Couldn't simplify {} to a constant param", self); + // } + + match simplified { + Type::ConstParam(cexpr) => Ok(*cexpr), + result => panic!("Unexpected {result}") + } + } + /// Simplify an expression until it matches a given function which "approves" of a type. /// This will perform template applications to simplify the type if possible as well. /// @@ -2022,7 +2095,7 @@ impl Type { Type::Unit(_unit_name, t) => t.get_member_offset(member, expr, env), Type::Apply(_, _) | Type::Poly(_, _) => { - let t = self.simplify_until_concrete(env, true)?; + let t = self.simplify_until_concrete(env, false)?; t.get_member_offset(member, expr, env) } @@ -2035,6 +2108,14 @@ impl Type { } } + Type::Type(ty) => { + if ty.is_const_param() { + ty.simplify_until_const_param(env, false)?.get_type(env)?.get_member_offset(member, expr, env) + } else { + Err(Error::MemberNotFound(expr.clone(), member.clone())) + } + } + _ => Err(Error::MemberNotFound(expr.clone(), member.clone())), } } @@ -2048,12 +2129,19 @@ impl Type { trace!("Typechecking member \"{member}\" of {expr} in {env}"); match self { Type::Type(ty) => { - let name = member.clone().as_symbol(env)?; - - if env.has_associated_const(ty, &name) { - Ok(()) + if ty.type_check_member(member, expr, env).is_ok() { + return Ok(()) + } + if ty.is_const_param() { + ty.simplify_until_const_param(env, true)?.get_type(env)?.type_check_member(member, expr, env) } else { - Err(Error::MemberNotFound(expr.clone(), member.clone())) + let name = member.clone().as_symbol(env)?; + + if env.has_associated_const(ty, &name) { + Ok(()) + } else { + Err(Error::MemberNotFound(expr.clone(), member.clone())) + } } } @@ -2170,11 +2258,10 @@ impl Simplify for Type { let _s = self.to_string(); let result = match self { Self::Type(t) => { - match *t { - Self::ConstParam(cexpr) => { - Self::ConstParam(cexpr.eval(env)?.into()) - } - t => Self::Type(t.into()) + if t.is_const_param() { + Self::ConstParam(t.simplify_until_const_param(env, false)?.into()) + } else { + Self::Type(t.into()) } }, Self::ConstParam(cexpr) => Self::ConstParam(cexpr.eval(env)?.into()), @@ -2246,22 +2333,47 @@ impl Simplify for Type { Box::new(ret.simplify_checked(env, i)?), ), - Self::Tuple(items) => Self::Tuple( - items - .into_iter() - .flat_map(|t| t.simplify_checked(env, i)) - .collect(), - ), Self::Array(inner, size) => Self::Array( Box::new(inner.simplify_checked(env, i)?), Box::new(size.eval(env)?), ), - Self::Struct(fields) => Self::Struct( - fields + + Self::Tuple(items) => { + let simple_items = items .into_iter() - .map(|(k, t)| Ok((k, t.simplify_checked(env, i)?))) - .collect::, Error>>()?, - ), + .map(|t| t.simplify_checked(env, i)) + .collect::, Error>>()?; + + if simple_items.iter().all(Self::is_const_param) { + Self::ConstParam(ConstExpr::Tuple(simple_items + .into_iter() + .map(|t| Ok(match t { + Type::ConstParam(cexpr) => cexpr.eval(env)?, + _ => unreachable!() + })) + .collect::>()?).into()) + } else { + Self::Tuple(simple_items) + } + } + Self::Struct(fields) => { + let simple_fields = fields + .into_iter() + .map(|(name, t)| Ok((name, t.simplify_checked(env, i)?))) + .collect::, Error>>()?; + + if simple_fields.iter().map(|(_x, t)| t).all(Self::is_const_param) { + Self::ConstParam(ConstExpr::Struct(simple_fields + .into_iter() + .map(|(name, t)| Ok(match t { + Type::ConstParam(cexpr) => (name, cexpr.eval(env)?), + _ => unreachable!() + })) + .collect::>()?).into()) + } else { + Self::Struct(simple_fields) + } + } Self::Union(types) => Self::Union( types .into_iter() diff --git a/tests/c_target.rs b/tests/c_target.rs index 03a7b7dc..ad65a238 100644 --- a/tests/c_target.rs +++ b/tests/c_target.rs @@ -99,7 +99,7 @@ fn test_c_target_frontend_examples_helper() { if let Some(correct_error) = correct_error { let text = e.to_string(); if text != correct_error { - panic!("{text:?} != {correct_error:?}, error did not match correct error for program {path:?}") + panic!("{text:?} (incorrect) != {correct_error:?} (correct), error did not match correct error for program {path:?}") } else { continue; } diff --git a/tests/examples.rs b/tests/examples.rs index 29e9bcec..a158d4a3 100644 --- a/tests/examples.rs +++ b/tests/examples.rs @@ -109,7 +109,8 @@ fn test_frontend_examples_helper() { if let Some(correct_error) = correct_error { let text = e.to_string(); if text != correct_error { - panic!("{text:?} != {correct_error:?}, error did not match correct error for program {path:?}") + panic!("{text:?} (incorrect) != {correct_error:?} (correct), error did not match correct error for program {path:?}") + // panic!("{text:?} != {correct_error:?}, error did not match correct error for program {path:?}") } else { continue; } From 066a6e3c4294d76d4ceb53fd49b77584cef5c434 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 02:30:43 -0400 Subject: [PATCH 08/29] A little optimization --- src/lir/expr/const_expr.rs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index 537d7024..ce5ffc2a 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -391,10 +391,16 @@ impl ConstExpr { | Self::Proc(_) | Self::PolyProc(_) => Ok(self), Self::Type(ty) => { - match ty.clone().simplify(env)? { - Type::ConstParam(cexpr) => cexpr.eval_checked(env, i), - ty => Ok(Self::Type(ty.clone())) + if ty.is_const_param() { + let cexpr = ty.simplify_until_const_param(env, false)?; + cexpr.eval_checked(env, i) + } else { + Ok(Self::Type(ty.clone())) } + // match ty.clone().simplify(env)? { + // Type::ConstParam(cexpr) => , + // ty => Ok(Self::Type(ty.clone())) + // } } Self::Declare(bindings, expr) => { @@ -560,7 +566,7 @@ impl ConstExpr { other => match other.eval(env)? { Self::Symbol(name) => Ok(name), other => { - error!("Could not convert {other} to symbol"); + // error!("Could not convert {other} to symbol"); Err(Error::NonSymbol(other)) }, }, @@ -593,17 +599,23 @@ impl GetType for ConstExpr { Self::Type(t) => { info!("Getting type of type {t}"); - let result = match t.clone().simplify(env)? { - Type::ConstParam(cexpr) => cexpr.get_type(env)?, - t => Type::Type(t.into()) + let result = if t.is_const_param() { + let cexpr = t.simplify_until_const_param(env, false)?; + cexpr.get_type(env)? + } else { + Type::Type(t.into()) }; + // let result = match t.clone().simplify(env)? { + // Type::ConstParam(cexpr) => cexpr.get_type(env)?, + // t => Type::Type(t.into()) + // }; // let result = if let Type::ConstParam(cexpr) = t.clone().simplify(env)? { // // Type::ConstParam(cexpr.eval(env)?.into()) // cexpr.get_type(env)? // } else { // Type::Type(t.clone().into()) // }; - info!("Got type of type {t} = {result}"); + // info!("Got type of type {t} = {result}"); result } From d4f282907f2d8c0999d43e9bd0ab03f6241490a0 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 03:46:24 -0400 Subject: [PATCH 09/29] Fixed warnings --- examples/frontend/const-generics-member.sg | 1 - examples/frontend/matrix.sg | 2 +- .../test-output/const-generics-member.txt | 5 ++++ src/lir/env.rs | 1 - src/lir/expr/ops/arithmetic/mod.rs | 10 +++---- src/lir/expr/ops/comparison.rs | 4 +-- src/lir/expr/ops/io.rs | 3 ++- src/lir/expr/procedure/poly.rs | 11 ++------ src/lir/types/mod.rs | 26 +++++++++---------- 9 files changed, 29 insertions(+), 34 deletions(-) create mode 100644 examples/test-output/const-generics-member.txt diff --git a/examples/frontend/const-generics-member.sg b/examples/frontend/const-generics-member.sg index e835587e..aec8cd41 100644 --- a/examples/frontend/const-generics-member.sg +++ b/examples/frontend/const-generics-member.sg @@ -28,7 +28,6 @@ impl Point { } } - fun test3() { let mut p = P; p.move(1, 1); diff --git a/examples/frontend/matrix.sg b/examples/frontend/matrix.sg index a3a22573..0bc5926c 100644 --- a/examples/frontend/matrix.sg +++ b/examples/frontend/matrix.sg @@ -18,7 +18,7 @@ impl Matrix { add: fun(T, T) -> T, mul: fun(T, T) -> T ): Matrix { - let mut result = Matrix.new(zero); + let mut result = Matrix.new(0); for let mut j=0; j FmtResult { - return Ok(()); writeln!(f, "Env")?; writeln!(f, " Types:")?; for (name, ty) in self.types.iter() { diff --git a/src/lir/expr/ops/arithmetic/mod.rs b/src/lir/expr/ops/arithmetic/mod.rs index cbdaf75e..08424393 100644 --- a/src/lir/expr/ops/arithmetic/mod.rs +++ b/src/lir/expr/ops/arithmetic/mod.rs @@ -228,7 +228,7 @@ impl BinaryOp for Arithmetic { (Type::Int | Type::Float | Type::Cell, Type::Cell) | (Type::Cell, Type::Int | Type::Float) => Type::Cell, - (Type::Array(elem, size), other) => { + (Type::Array(elem, size), _other) => { if let (Self::Multiply, Expr::ConstExpr(const_rhs)) = (self, rhs) { let size = size.as_int(env)?; if let Ok(n) = const_rhs.clone().as_int(env) { @@ -403,10 +403,10 @@ impl BinaryOp for Arithmetic { /// Compile the binary operation. fn compile_types( &self, - lhs: &Type, - rhs: &Type, - env: &mut Env, - output: &mut dyn AssemblyProgram, + _lhs: &Type, + _rhs: &Type, + _env: &mut Env, + _output: &mut dyn AssemblyProgram, ) -> Result<(), Error> { Ok(()) } diff --git a/src/lir/expr/ops/comparison.rs b/src/lir/expr/ops/comparison.rs index 3c76a67c..4c3f7676 100644 --- a/src/lir/expr/ops/comparison.rs +++ b/src/lir/expr/ops/comparison.rs @@ -23,7 +23,7 @@ pub enum Comparison { impl BinaryOp for Comparison { /// Can this binary operation be applied to the given types? fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result { - match (&lhs.clone().discard_type_wrapper(), self, &rhs.clone().discard_type_wrapper()) { + match (&lhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper(), self, &rhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper()) { (Type::Int, Self::LessThan, Type::Int) | (Type::Int, Self::LessThanOrEqual, Type::Int) | (Type::Int, Self::GreaterThan, Type::Int) @@ -198,7 +198,7 @@ impl BinaryOp for Comparison { let dst = SP.deref().offset(-1); let tmp = SP.deref().offset(1); // Now, perform the correct assembly expressions based on the types of the two expressions. - match (lhs, self, rhs) { + match (&lhs.clone().discard_type_wrapper(), self, &rhs.clone().discard_type_wrapper()) { // If a `Float` and a `Cell` are used, we just interpret the `Cell` as a `Float`. (Type::Cell, _, Type::Float) | (Type::Float, _, Type::Cell) => { output.op(CoreOp::Move { src: dst, dst: tmp }); diff --git a/src/lir/expr/ops/io.rs b/src/lir/expr/ops/io.rs index c1d06422..c37cd089 100644 --- a/src/lir/expr/ops/io.rs +++ b/src/lir/expr/ops/io.rs @@ -6,7 +6,8 @@ use crate::{ side_effects::*, }; use ::core::fmt::{Debug, Display, Formatter, Result as FmtResult}; -use log::info; + + #[derive(Clone, Copy, PartialOrd, Ord, PartialEq, Eq, Hash)] pub struct Get; diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index 32878dfd..c9163d58 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -12,7 +12,7 @@ use std::{ }; use std::{hash::Hash, hash::Hasher}; -use log::{debug, error, trace, info}; +use log::{debug, error, info}; use serde_derive::{Deserialize, Serialize}; /// A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments. @@ -250,15 +250,8 @@ impl TypeCheck for PolyProcedure { info!("Type checking {self}"); // Create a new scope for the procedure's body, and define the arguments for the scope. let mut new_env = env.new_scope(); + // Define the type parameters of the procedure. - // new_env.define_types( - // self.type_param_names() - // .clone() - // .into_iter() - // .map(|ty_param| (ty_param.clone(), Type::Unit(ty_param, Box::new(Type::None)))) - // .collect(), - // ); - for (name, ty) in &self.ty_params { match ty { Some(ty) => { diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index f97608e0..3970c642 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -571,8 +571,8 @@ impl Type { } (Self::Array(elem1, len1), Self::Array(elem2, len2)) => { - // return Ok(elem1.is_monomorph_of(elem2, env)? && len1.get_type(env)?.equals(&len2.get_type(env)?, env)?) - return Ok(elem1.is_monomorph_of(elem2, env)?) + return Ok(elem1.is_monomorph_of(elem2, env)? && len1.get_type(env)?.equals(&len2.get_type(env)?, env)?) + // return Ok(elem1.is_monomorph_of(elem2, env)?) } (Self::ConstParam(cexpr), other) => cexpr.get_type(env)?.equals(other, env), @@ -990,7 +990,7 @@ impl Type { /// Simplify until the type is concrete. - pub fn simplify_until_const_param(&self, env: &Env, checked: bool) -> Result { + pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result { let mut simplified = self.clone().simplify(env)?; for _ in 0..3 { if let Self::ConstParam(cexpr) = simplified { @@ -1293,12 +1293,12 @@ impl Type { // } match (self, desired) { - (Type::Type(ty), desired) => { - ty.can_decay_to(desired, env) - } - (ty, Type::Type(desired)) => { - ty.can_decay_to(desired, env) - } + // (Type::Type(ty), desired) => { + // ty.can_decay_to(desired, env) + // } + // (ty, Type::Type(desired)) => { + // ty.can_decay_to(desired, env) + // } // (Self::Unit(_, inner), _) => inner.can_decay_to(desired, env), (Self::Unit(name1, t1), Self::Unit(name2, t2)) => { if name1 == name2 { @@ -1942,7 +1942,7 @@ impl Type { // Create a new environment. let mut new_env = env.clone(); - for ((name1, ty1), (name2, ty2)) in ty_params1.iter().zip(ty_params2.iter()) { + for ((name1, _ty1), (name2, _ty2)) in ty_params1.iter().zip(ty_params2.iter()) { // match (ty1, ty2) { // (Some(ty1), Some(ty2)) => { // if !ty1.equals_checked(&ty2, compared_symbols, &new_env, i)? { @@ -2020,7 +2020,7 @@ impl Type { (Self::ConstParam(cexpr), other) | (other, Self::ConstParam(cexpr)) => { cexpr.get_type(env)?.equals_checked(other, compared_symbols, env, i)? }, - (a, b) => { + (_a, _b) => { // error!("{} is not equal to {}", a, b); false } @@ -2276,8 +2276,7 @@ impl Simplify for Type { | Self::Cell | Self::Enum(_) => self.clone(), Self::Poly(mut ty_params, body) => { - for (name, ty) in &mut ty_params { - // *ty = ty.map(|ty| ty.simplify_checked(env, i)); + for (_name, ty) in &mut ty_params { if let Some(ty) = ty { *ty = ty.clone().simplify_checked(env, i)?; } @@ -2315,7 +2314,6 @@ impl Simplify for Type { Self::Unit(unit_name, t) => { Self::Unit(unit_name, Box::new(t.simplify_checked(env, i)?)) - // self } Self::Symbol(ref name) => { From 8faccaf5b03c2b240ccf86064237fbf5c9dd0011 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 04:23:12 -0400 Subject: [PATCH 10/29] Added `const` keyword to template constants --- docs/sage/asm/enum.Error.html | 4 +- docs/sage/lir/enum.Arithmetic.html | 33 +- docs/sage/lir/enum.ConstExpr.html | 56 +- docs/sage/lir/enum.Declaration.html | 18 +- docs/sage/lir/enum.Error.html | 19 +- docs/sage/lir/enum.Expr.html | 8 +- docs/sage/lir/enum.Put.html | 26 +- docs/sage/lir/enum.Type.html | 116 ++- docs/sage/lir/struct.CoreBuiltin.html | 4 +- docs/sage/lir/struct.Env.html | 12 +- docs/sage/lir/struct.FFIProcedure.html | 4 +- docs/sage/lir/struct.Get.html | 20 +- docs/sage/lir/struct.PolyProcedure.html | 25 +- docs/sage/lir/struct.Procedure.html | 10 +- docs/sage/lir/struct.StandardBuiltin.html | 4 +- docs/sage/lir/trait.AssignOp.html | 6 +- docs/sage/lir/trait.BinaryOp.html | 10 +- docs/sage/lir/trait.Compile.html | 2 +- docs/sage/lir/trait.GetSize.html | 4 +- docs/sage/lir/trait.GetType.html | 4 +- docs/sage/lir/trait.Simplify.html | 2 +- docs/sage/lir/trait.TernaryOp.html | 26 +- docs/sage/lir/trait.TypeCheck.html | 6 +- docs/sage/lir/trait.UnaryOp.html | 6 +- docs/sage/web/web_bg.wasm | Bin 2281924 -> 2350220 bytes docs/search-index.js | 2 +- docs/src/sage/frontend/mod.rs.html | 2 +- docs/src/sage/frontend/parse.rs.html | 70 +- docs/src/sage/lir/compile.rs.html | 38 +- docs/src/sage/lir/env.rs.html | 142 ++-- docs/src/sage/lir/error.rs.html | 16 +- docs/src/sage/lir/expr/const_expr.rs.html | 387 +++++++-- docs/src/sage/lir/expr/declaration.rs.html | 6 +- .../sage/lir/expr/ops/arithmetic/mod.rs.html | 336 +++++--- docs/src/sage/lir/expr/ops/comparison.rs.html | 4 +- docs/src/sage/lir/expr/ops/io.rs.html | 10 +- docs/src/sage/lir/expr/ops/mod.rs.html | 2 + .../sage/lir/expr/ops/tagged_union.rs.html | 8 +- docs/src/sage/lir/expr/pattern.rs.html | 16 +- docs/src/sage/lir/expr/procedure/poly.rs.html | 142 +++- docs/src/sage/lir/types/check.rs.html | 122 ++- docs/src/sage/lir/types/inference.rs.html | 6 +- docs/src/sage/lir/types/mod.rs.html | 776 +++++++++++++++--- docs/src/sage/lir/types/size.rs.html | 6 +- docs/trait.impl/core/clone/trait.Clone.js | 2 +- docs/trait.impl/core/cmp/trait.PartialEq.js | 2 +- docs/trait.impl/core/convert/trait.From.js | 2 +- docs/trait.impl/core/fmt/trait.Debug.js | 2 +- .../core/marker/trait.StructuralPartialEq.js | 2 +- examples/frontend/const-generics-member.sg | 6 +- examples/frontend/matrix.sg | 12 +- examples/frontend/matrix_point.sg | 4 +- examples/frontend/typecheck-const-generics.sg | 12 +- src/frontend/parse.rs | 7 +- src/lir/expr/const_expr.rs | 14 +- src/lir/expr/procedure/poly.rs | 10 +- src/lir/types/check.rs | 6 +- tests/c_target.rs | 2 +- 58 files changed, 1909 insertions(+), 690 deletions(-) diff --git a/docs/sage/asm/enum.Error.html b/docs/sage/asm/enum.Error.html index 1889a510..b79216d4 100644 --- a/docs/sage/asm/enum.Error.html +++ b/docs/sage/asm/enum.Error.html @@ -14,8 +14,8 @@
§

Unmatched(CoreOp, usize)

The given instruction did not have a matching “end”. This is used for If, Else, While, For, and Fn statements.

§

Unexpected(CoreOp, usize)

The given instruction was not expected, or cannot be used in this context.

-

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

Create an IR error from an assembly error.

-
source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Error

source§

fn eq(&self, other: &Error) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

Create an IR error from an assembly error.

+
source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Error

source§

fn eq(&self, other: &Error) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Error

source§

fn partial_cmp(&self, other: &Error) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= diff --git a/docs/sage/lir/enum.Arithmetic.html b/docs/sage/lir/enum.Arithmetic.html index c0179d70..9fc7f80a 100644 --- a/docs/sage/lir/enum.Arithmetic.html +++ b/docs/sage/lir/enum.Arithmetic.html @@ -7,33 +7,34 @@ Remainder, Power, }
Expand description

An arithmetic operation.

-

Variants§

§

Add

§

Subtract

§

Multiply

§

Divide

§

Remainder

§

Power

Trait Implementations§

source§

impl BinaryOp for Arithmetic

source§

fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result<bool, Error>

Can this binary operation be applied to the given types?

-
source§

fn return_type(&self, lhs: &Expr, rhs: &Expr, env: &Env) -> Result<Type, Error>

Get the type of the result of applying this binary operation to the given types.

-
source§

fn eval( +

Variants§

§

Add

§

Subtract

§

Multiply

§

Divide

§

Remainder

§

Power

Trait Implementations§

source§

impl BinaryOp for Arithmetic

source§

fn compile( + &self, + lhs: &Expr, + rhs: &Expr, + env: &mut Env, + output: &mut dyn AssemblyProgram +) -> Result<(), Error>

Compiles the operation on the given expressions.

+
source§

fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result<bool, Error>

Can this binary operation be applied to the given types?

+
source§

fn return_type(&self, lhs: &Expr, rhs: &Expr, env: &Env) -> Result<Type, Error>

Get the type of the result of applying this binary operation to the given types.

+
source§

fn eval( &self, lhs: &ConstExpr, rhs: &ConstExpr, env: &mut Env ) -> Result<ConstExpr, Error>

Evaluate this binary operation on the given constant values.

-
source§

fn compile_types( +

source§

fn compile_types( &self, - lhs: &Type, - rhs: &Type, - env: &mut Env, - output: &mut dyn AssemblyProgram + _lhs: &Type, + _rhs: &Type, + _env: &mut Env, + _output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compile the binary operation.

-
source§

fn clone_box(&self) -> Box<dyn BinaryOp>

Clones the operation into a boxed trait object.
source§

fn name(&self) -> String

source§

fn type_check(&self, lhs: &Expr, rhs: &Expr, env: &Env) -> Result<(), Error>

Typechecks the operation on the given expressions.
source§

fn display(&self, lhs: &Expr, rhs: &Expr) -> String

Formats the operation for display.
source§

fn can_apply_exprs( +

source§

fn clone_box(&self) -> Box<dyn BinaryOp>

Clones the operation into a boxed trait object.
source§

fn name(&self) -> String

source§

fn type_check(&self, lhs: &Expr, rhs: &Expr, env: &Env) -> Result<(), Error>

Typechecks the operation on the given expressions.
source§

fn display(&self, lhs: &Expr, rhs: &Expr) -> String

Formats the operation for display.
source§

fn can_apply_exprs( &self, lhs: &Expr, rhs: &Expr, env: &Env -) -> Result<bool, Error>

Checks if the operation can be applied to the given expressions.
source§

fn compile( - &self, - lhs: &Expr, - rhs: &Expr, - env: &mut Env, - output: &mut dyn AssemblyProgram -) -> Result<(), Error>

Compiles the operation on the given expressions.
source§

impl Clone for Arithmetic

source§

fn clone(&self) -> Arithmetic

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Copy for Arithmetic

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<bool, Error>

Checks if the operation can be applied to the given expressions.
source§

impl Clone for Arithmetic

source§

fn clone(&self) -> Arithmetic

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Copy for Arithmetic

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.ConstExpr.html b/docs/sage/lir/enum.ConstExpr.html index a8fffecb..37ec0db5 100644 --- a/docs/sage/lir/enum.ConstExpr.html +++ b/docs/sage/lir/enum.ConstExpr.html @@ -1,7 +1,8 @@ -ConstExpr in sage::lir - Rust -

Enum sage::lir::ConstExpr

source ·
pub enum ConstExpr {
-
Show 29 variants Annotated(Box<Self>, Annotation), +ConstExpr in sage::lir - Rust +

Enum sage::lir::ConstExpr

source ·
pub enum ConstExpr {
+
Show 30 variants Annotated(Box<Self>, Annotation), Declare(Box<Declaration>, Box<Self>), + Any, None, Null, Symbol(String), @@ -26,11 +27,12 @@ Proc(Procedure), PolyProc(PolyProcedure), Monomorphize(Box<Self>, Vec<Type>), - Template(Vec<String>, Box<Self>), + Template(Vec<(String, Option<Type>)>, Box<Self>), Member(Box<Self>, Box<Self>), As(Box<Self>, Type),
}
Expand description

A compiletime expression.

Variants§

§

Annotated(Box<Self>, Annotation)

§

Declare(Box<Declaration>, Box<Self>)

Bind a list of types in a constant expression.

+
§

Any

The expression equal to any other expression.

§

None

The unit, or “void” instance.

§

Null

The null pointer constant.

§

Symbol(String)

A named constant.

@@ -58,50 +60,50 @@
§

Proc(Procedure)

A procedure.

§

PolyProc(PolyProcedure)

A polymorphic procedure.

§

Monomorphize(Box<Self>, Vec<Type>)

Monomorphize a constant expression with some type arguments.

-
§

Template(Vec<String>, Box<Self>)

§

Member(Box<Self>, Box<Self>)

Get an attribute of a constant expression.

+
§

Template(Vec<(String, Option<Type>)>, Box<Self>)

§

Member(Box<Self>, Box<Self>)

Get an attribute of a constant expression.

§

As(Box<Self>, Type)

Cast a constant expression to another type.

-

Implementations§

source§

impl ConstExpr

source

pub fn monomorphize(self, ty_args: Vec<Type>) -> Self

source

pub fn template(&self, params: Vec<String>) -> Self

source

pub fn var(var: impl ToString) -> Self

Evaluate a variable in the current scope.

-
source

pub fn proc( +

Implementations§

source§

impl ConstExpr

source

pub fn monomorphize(self, ty_args: Vec<Type>) -> Self

source

pub fn equals(&self, other: &Self, env: &Env) -> bool

source

pub fn template(&self, params: Vec<(String, Option<Type>)>) -> Self

source

pub fn var(var: impl ToString) -> Self

Evaluate a variable in the current scope.

+
source

pub fn proc( common_name: Option<String>, args: Vec<(String, Mutability, Type)>, ret: Type, body: impl Into<Expr> ) -> Self

Construct a procedure.

-
source

pub fn with(&self, older_decls: impl Into<Declaration>) -> Self

Return this expression, but with a given declaration in scope.

-
source

pub fn annotate(self, annotation: Annotation) -> Self

Annotate this constant expression with a source code location.

-
source

pub fn app(self, args: Vec<Expr>) -> Expr

Apply this procedure or builtin to a list of expressions at runtime.

-
source

pub fn eval(self, env: &Env) -> Result<Self, Error>

Evaluate this constant expression at compile time, +

source

pub fn with(&self, older_decls: impl Into<Declaration>) -> Self

Return this expression, but with a given declaration in scope.

+
source

pub fn annotate(self, annotation: Annotation) -> Self

Annotate this constant expression with a source code location.

+
source

pub fn app(self, args: Vec<Expr>) -> Expr

Apply this procedure or builtin to a list of expressions at runtime.

+
source

pub fn eval(self, env: &Env) -> Result<Self, Error>

Evaluate this constant expression at compile time, and get the result.

-
source

pub fn as_type(self, t: Type) -> Self

Cast an expression as another type.

-
source

pub fn field(self, field: ConstExpr) -> Self

Get a field from a structure, union, or tuple.

+
source

pub fn as_type(self, t: Type) -> Self

Cast an expression as another type.

+
source

pub fn field(self, field: ConstExpr) -> Self

Get a field from a structure, union, or tuple.

For tuples, use an Int constant expression to access the nth field (zero indexed). For unions or structures, use a Symbol constant expression to access the field.

-
source

pub fn as_int(self, env: &Env) -> Result<i64, Error>

Try to get this constant expression as an integer.

-
source

pub fn as_char(self, env: &Env) -> Result<char, Error>

Try to get this constant expression as a character.

-
source

pub fn as_float(self, env: &Env) -> Result<f64, Error>

Try to get this constant expression as a float.

-
source

pub fn as_bool(self, env: &Env) -> Result<bool, Error>

Try to get this constant expression as a boolean value.

-
source

pub fn as_symbol(self, env: &Env) -> Result<String, Error>

Try to get this constant expression as a symbol (like in LISP).

-

Trait Implementations§

source§

impl Clone for ConstExpr

source§

fn clone(&self) -> ConstExpr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Compile for ConstExpr

Compile a constant expression.

-
source

pub fn as_int(self, env: &Env) -> Result<i64, Error>

Try to get this constant expression as an integer.

+
source

pub fn as_char(self, env: &Env) -> Result<char, Error>

Try to get this constant expression as a character.

+
source

pub fn as_float(self, env: &Env) -> Result<f64, Error>

Try to get this constant expression as a float.

+
source

pub fn as_bool(self, env: &Env) -> Result<bool, Error>

Try to get this constant expression as a boolean value.

+
source

pub fn as_symbol(self, env: &Env) -> Result<String, Error>

Try to get this constant expression as a symbol (like in LISP).

+

Trait Implementations§

source§

impl Clone for ConstExpr

source§

fn clone(&self) -> ConstExpr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Compile for ConstExpr

Compile a constant expression.

+
source§

fn compile_expr( self, env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ConstExpr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl GetType for ConstExpr

source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check -recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, subsitution: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for ConstExpr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetType for ConstExpr

source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check +recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, substitution: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for ConstExpr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ConstExpr

source§

fn eq(&self, other: &ConstExpr) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ConstExpr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for ConstExpr

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit + __S: Serializer,
Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for ConstExpr

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit the number of recursive calls to prevent stack overflow. i is a -counter to prevent infinite recursion.
source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for ConstExpr

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for ConstExpr

source§

impl Send for ConstExpr

source§

impl StructuralPartialEq for ConstExpr

source§

impl Sync for ConstExpr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +counter to prevent infinite recursion.

source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for ConstExpr

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for ConstExpr

source§

impl Send for ConstExpr

source§

impl StructuralPartialEq for ConstExpr

source§

impl Sync for ConstExpr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive + T: ?Sized,
source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/enum.Declaration.html b/docs/sage/lir/enum.Declaration.html index b697fff6..ae002542 100644 --- a/docs/sage/lir/enum.Declaration.html +++ b/docs/sage/lir/enum.Declaration.html @@ -35,21 +35,21 @@
§

FromImport

Fields

§module: ConstExpr

Import an element from a module.

§

FromImportAll(ConstExpr)

Implementations§

source§

impl Declaration

source

pub fn many(decls: impl Into<Vec<Self>>) -> Self

Create a collection of declarations

source

pub fn module(name: impl ToString, decls: impl Into<Vec<Self>>) -> Self

Create a module with a given name and a list of declarations

-

Trait Implementations§

source§

impl<T> Add<T> for Declaration
where - T: Into<Declaration>,

§

type Output = Declaration

The resulting type after applying the + operator.
source§

fn add(self, other: T) -> Self::Output

Performs the + operation. Read more
source§

impl<T> AddAssign<T> for Declaration
where - T: Into<Declaration>,

source§

fn add_assign(&mut self, other: T)

Performs the += operation. Read more
source§

impl Clone for Declaration

source§

fn clone(&self) -> Declaration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Declaration

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<(&str, ConstExpr)> for Declaration

source§

fn from((name, proc): (&str, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Expr)> for Declaration

source§

fn from((name, expr): (&str, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, FFIProcedure)> for Declaration

source§

fn from((name, proc): (&str, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (&str, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration

Trait Implementations§

source§

impl<T> Add<T> for Declaration
where + T: Into<Declaration>,

§

type Output = Declaration

The resulting type after applying the + operator.
source§

fn add(self, other: T) -> Self::Output

Performs the + operation. Read more
source§

impl<T> AddAssign<T> for Declaration
where + T: Into<Declaration>,

source§

fn add_assign(&mut self, other: T)

Performs the += operation. Read more
source§

impl Clone for Declaration

source§

fn clone(&self) -> Declaration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Declaration

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<(&str, ConstExpr)> for Declaration

source§

fn from((name, proc): (&str, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Expr)> for Declaration

source§

fn from((name, expr): (&str, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, FFIProcedure)> for Declaration

source§

fn from((name, proc): (&str, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (&str, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( (name, mutability, ty, expr): (&str, Mutability, Option<Type>, Expr) -) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (&str, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, PolyProcedure)> for Declaration

source§

fn from((name, proc): (&str, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Procedure)> for Declaration

source§

fn from((name, proc): (&str, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Type)> for Declaration

source§

fn from((name, expr): (&str, Type)) -> Self

Converts to this type from the input type.
source§

impl From<(Pattern, Expr)> for Declaration

source§

fn from((pat, expr): (Pattern, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, ConstExpr)> for Declaration

source§

fn from((name, expr): (String, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Expr)> for Declaration

source§

fn from((name, expr): (String, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, FFIProcedure)> for Declaration

source§

fn from((name, proc): (String, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (String, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( +) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (&str, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, PolyProcedure)> for Declaration

source§

fn from((name, proc): (&str, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Procedure)> for Declaration

source§

fn from((name, proc): (&str, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Type)> for Declaration

source§

fn from((name, expr): (&str, Type)) -> Self

Converts to this type from the input type.
source§

impl From<(Pattern, Expr)> for Declaration

source§

fn from((pat, expr): (Pattern, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, ConstExpr)> for Declaration

source§

fn from((name, expr): (String, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Expr)> for Declaration

source§

fn from((name, expr): (String, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, FFIProcedure)> for Declaration

source§

fn from((name, proc): (String, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (String, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( (name, mutability, ty, expr): (String, Mutability, Option<Type>, Expr) -) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (String, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, PolyProcedure)> for Declaration

source§

fn from((name, proc): (String, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Procedure)> for Declaration

source§

fn from((name, proc): (String, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Type)> for Declaration

source§

fn from((name, ty): (String, Type)) -> Self

Converts to this type from the input type.
source§

impl<K, V> From<BTreeMap<K, V>> for Declaration

source§

fn from(bt: BTreeMap<K, V>) -> Self

Converts to this type from the input type.
source§

impl From<Box<Declaration>> for Declaration

source§

fn from(x: Box<Self>) -> Self

Converts to this type from the input type.
source§

impl<T> From<Vec<T>> for Declaration
where - T: Into<Declaration>,

source§

fn from(decls: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl Hash for Declaration

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (String, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, PolyProcedure)> for Declaration

source§

fn from((name, proc): (String, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Procedure)> for Declaration

source§

fn from((name, proc): (String, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Type)> for Declaration

source§

fn from((name, ty): (String, Type)) -> Self

Converts to this type from the input type.
source§

impl<K, V> From<BTreeMap<K, V>> for Declaration

source§

fn from(bt: BTreeMap<K, V>) -> Self

Converts to this type from the input type.
source§

impl From<Box<Declaration>> for Declaration

source§

fn from(x: Box<Self>) -> Self

Converts to this type from the input type.
source§

impl<T> From<Vec<T>> for Declaration
where + T: Into<Declaration>,

source§

fn from(decls: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl Hash for Declaration

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Declaration

source§

fn eq(&self, other: &Declaration) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Declaration

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Declaration

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl StructuralPartialEq for Declaration

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Declaration

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl StructuralPartialEq for Declaration

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.Error.html b/docs/sage/lir/enum.Error.html index 04f46787..d577fe91 100644 --- a/docs/sage/lir/enum.Error.html +++ b/docs/sage/lir/enum.Error.html @@ -1,7 +1,11 @@ -Error in sage::lir - Rust -
§1: Annotation

The location of the source code that caused the error. This is used for error reporting.

An error with some annotation about the source code that caused the error.

-
§

UnimplementedOperator(String)

§

AssemblyError(Error)

An error caused by trying to assemble invalid code generated by the compiler. +

§

UnimplementedOperator(String)

§

UnexpectedConstParam

Fields

§found: Type
§expr: Expr

An error caused by unexpectedly passing a constant parameter to a template.

+
§

AssemblyError(Error)

An error caused by trying to assemble invalid code generated by the compiler. This should be taken seriously, unless the error is due to an invalid handwritten builtin.

§

VariantNotFound(Type, String)

The variant of an enum is not defined.

§

MemberNotFound(Expr, ConstExpr)

Tried to access an undefined member of a tuple, struct, or union.

@@ -102,9 +107,9 @@
§

CompilePolyProc(PolyProcedure)

Tried to compile a polymorphic procedure without monomorphing it.

§

InvalidMonomorphize(ConstExpr)

Cannot monomorphize a constant expression.

§

DuplicateMember(Type, String)

Duplicate implementations of a member for a type

-

Implementations§

source§

impl Error

source

pub fn annotate(self, annotation: Annotation) -> Self

Annotate an error with some metadata.

-

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

Create an IR error from an assembly error.

-
source§

fn from(e: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where +

Implementations§

source§

impl Error

source

pub fn annotate(self, annotation: Annotation) -> Self

Annotate an error with some metadata.

+

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

Create an IR error from an assembly error.

+
source§

fn from(e: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.Expr.html b/docs/sage/lir/enum.Expr.html index 99b13f4e..4f8e86b6 100644 --- a/docs/sage/lir/enum.Expr.html +++ b/docs/sage/lir/enum.Expr.html @@ -181,13 +181,13 @@ Self: Sized,
Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Expr

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Expr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

-
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

+
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/enum.Put.html b/docs/sage/lir/enum.Put.html index 79dac75f..bf893341 100644 --- a/docs/sage/lir/enum.Put.html +++ b/docs/sage/lir/enum.Put.html @@ -1,43 +1,43 @@ Put in sage::lir - Rust -

Enum sage::lir::Put

source ·
pub enum Put {
+    

Enum sage::lir::Put

source ·
pub enum Put {
     Debug,
     Display,
 }
Expand description

Print a value to a given output.

-

Variants§

§

Debug

§

Display

Implementations§

source§

impl Put

source

pub fn debug( +

Variants§

§

Debug

§

Display

Implementations§

source§

impl Put

source

pub fn debug( addr: Location, t: &Type, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>

source

pub fn display( +) -> Result<(), Error>

source

pub fn display( addr: Location, t: &Type, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>

Trait Implementations§

source§

impl Clone for Put

source§

fn clone(&self) -> Put

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Put

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Put

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Put

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Result<(), Error>

Trait Implementations§

source§

impl Clone for Put

source§

fn clone(&self) -> Put

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Put

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Put

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Put

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Put

source§

fn cmp(&self, other: &Put) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Put

source§

fn cmp(&self, other: &Put) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Put

source§

fn eq(&self, other: &Put) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,
Restrict a value to a certain interval. Read more
source§

impl PartialEq for Put

source§

fn eq(&self, other: &Put) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Put

source§

fn partial_cmp(&self, other: &Put) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Put

source§

fn partial_cmp(&self, other: &Put) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl UnaryOp for Put

source§

fn can_apply(&self, _expr: &Type, _env: &Env) -> Result<bool, Error>

Can this unary operation be applied to the given type?

-
source§

fn return_type(&self, _expr: &Expr, _env: &Env) -> Result<Type, Error>

Get the type of the result of applying this unary operation to the given type.

-
source§

fn eval(&self, _expr: &ConstExpr, _env: &mut Env) -> Result<ConstExpr, Error>

Evaluate this unary operation on the given constant values.

-
source§

fn compile_types( +operator. Read more

source§

impl UnaryOp for Put

source§

fn can_apply(&self, _expr: &Type, _env: &Env) -> Result<bool, Error>

Can this unary operation be applied to the given type?

+
source§

fn return_type(&self, _expr: &Expr, _env: &Env) -> Result<Type, Error>

Get the type of the result of applying this unary operation to the given type.

+
source§

fn eval(&self, _expr: &ConstExpr, _env: &mut Env) -> Result<ConstExpr, Error>

Evaluate this unary operation on the given constant values.

+
source§

fn compile_types( &self, ty: &Type, env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compile the unary operation.

-
source§

fn clone_box(&self) -> Box<dyn UnaryOp>

Clone this operation into a box.

+
source§

fn clone_box(&self) -> Box<dyn UnaryOp>

Clone this operation into a box.

source§

fn name(&self) -> String

source§

fn type_check(&self, expr: &Expr, env: &Env) -> Result<(), Error>

Typechecks the operation on the given expression.
source§

fn display(&self, expr: &Expr) -> String

Formats the operation for display.
source§

fn can_apply_exprs(&self, expr: &Expr, env: &Env) -> Result<bool, Error>

Checks if the operation can be applied to the given expression.
source§

fn compile( &self, expr: &Expr, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>

Compiles the operation on the given expression.
source§

impl Copy for Put

source§

impl Eq for Put

source§

impl StructuralEq for Put

source§

impl StructuralPartialEq for Put

Auto Trait Implementations§

§

impl RefUnwindSafe for Put

§

impl Send for Put

§

impl Sync for Put

§

impl Unpin for Put

§

impl UnwindSafe for Put

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<(), Error>

Compiles the operation on the given expression.
source§

impl Copy for Put

source§

impl Eq for Put

source§

impl StructuralEq for Put

source§

impl StructuralPartialEq for Put

Auto Trait Implementations§

§

impl RefUnwindSafe for Put

§

impl Send for Put

§

impl Sync for Put

§

impl Unpin for Put

§

impl UnwindSafe for Put

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.Type.html b/docs/sage/lir/enum.Type.html index 7db0d8a7..a140e3a8 100644 --- a/docs/sage/lir/enum.Type.html +++ b/docs/sage/lir/enum.Type.html @@ -1,6 +1,6 @@ -Type in sage::lir - Rust -

Enum sage::lir::Type

source ·
pub enum Type {
-
Show 22 variants Let(String, Box<Self>, Box<Self>), +Type in sage::lir - Rust +

Enum sage::lir::Type

source ·
pub enum Type {
+
Show 23 variants Let(String, Box<Self>, Box<Self>), Unit(String, Box<Self>), Symbol(String), None, @@ -20,8 +20,9 @@ Pointer(Mutability, Box<Self>), Any, Never, - Poly(Vec<String>, Box<Self>), + Poly(Vec<(String, Option<Type>)>, Box<Self>), Apply(Box<Self>, Vec<Self>), + ConstParam(Box<ConstExpr>),
}
Expand description

The representation of a type in the LIR type system.

Variants§

§

Let(String, Box<Self>, Box<Self>)

Bind a type to a name in a temporary scope.

§

Unit(String, Box<Self>)

This type is identified by its name. Most types are checked according @@ -59,28 +60,30 @@ This type is equal to any other type. The NULL pointer, for example, is of type Pointer(Any).

§

Never

The type of an expression that will never return, or doesn’t resolve to a value.

-
§

Poly(Vec<String>, Box<Self>)

A polymorphic, parametric type. +

§

Poly(Vec<(String, Option<Type>)>, Box<Self>)

A polymorphic, parametric type. This type is used with the Apply type to create a concrete type. The type takes a list of symbols that are substituted with concrete types. The type is then simplified to a concrete type when combined with Apply. This type is used to implement generics.

§

Apply(Box<Self>, Vec<Self>)

A type that constructs a concrete type from a polymorphic type. This type is used to implement generics.

-

Implementations§

source§

impl Type

source

pub const SIMPLIFY_RECURSION_LIMIT: usize = 30usize

This is the maximum number of times a type will be simplified recursively.

-
source

pub fn is_recursive(&self, env: &Env) -> Result<bool, Error>

source

pub fn is_recursive_helper( +

§

ConstParam(Box<ConstExpr>)

A constant literal used in a type expression, like a template application +with a constant parameter.

+

Implementations§

source§

impl Type

source

pub const SIMPLIFY_RECURSION_LIMIT: usize = 30usize

This is the maximum number of times a type will be simplified recursively.

+
source

pub fn is_recursive(&self, env: &Env) -> Result<bool, Error>

source

pub fn is_const_param(&self) -> bool

source

pub fn is_recursive_helper( &self, symbols: &mut HashSet<String>, env: &Env -) -> Result<bool, Error>

source

pub fn strip_template(&self, env: &Env) -> Self

source

pub fn is_poly(&self) -> bool

source

pub fn get_monomorph_template_args( +) -> Result<bool, Error>

source

pub fn strip_template(&self, env: &Env) -> Self

source

pub fn is_poly(&self) -> bool

source

pub fn get_monomorph_template_args( &self, template: &Self, - matched_symbols: &mut HashMap<String, Self>, + matched_symbols: &mut HashMap<String, (Self, Option<Type>)>, param_symbols: &HashSet<String>, env: &Env -) -> Result<(), Error>

source

pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result<bool, Error>

source

pub fn add_monomorphized_associated_consts( +) -> Result<(), Error>

source

pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result<bool, Error>

source

pub fn add_monomorphized_associated_consts( &self, env: &Env -) -> Result<(), Error>

source

pub fn get_template_params(&self, env: &Env) -> Vec<String>

source

pub fn apply(&self, args: Vec<Self>) -> Self

source

pub fn is_simple(&self) -> bool

Is this type in a simple form? +) -> Result<(), Error>

source

pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option<Type>)>

source

pub fn apply(&self, args: Vec<Self>) -> Self

source

pub fn is_simple(&self) -> bool

Is this type in a simple form? A simple form is a form that does not require any immediate simplification. For example, a Poly type is not simple, because it requires a Apply type to deduce anything about the type. A let binding is also not simple, because @@ -88,62 +91,97 @@ because it requires a lookup in the environment to determine the type. Other types, like a tagged union, which may be pattern matched over the inner types, does not require an immediate lookup to use some of its type information.

-
source

pub fn is_concrete(&self) -> bool

source

pub fn is_atomic(&self) -> bool

Is this type an irreducible, atomic type?

-
source

pub fn is_self_param_reference(&self, env: &Env) -> Result<bool, Error>

Is first argument of function a reference?

-
source

pub fn get_self_param_mutability(&self, env: &Env) -> Option<Mutability>

Get the first argument’s mutability (if it is a pointer)

-
source

pub fn simplify_until_type_checks(&self, env: &Env) -> Result<Self, Error>

Simplify until the type passes the type checker.

-
source

pub fn simplify_until_has_members(&self, env: &Env) -> Result<Self, Error>

Simplify a type until you can get its members.

-
source

pub fn simplify_until_union(&self, env: &Env) -> Result<Self, Error>

Simplify a type until it’s a union.

-
source

pub fn simplify_until_has_variants(&self, env: &Env) -> Result<Self, Error>

Simplify a type until you can get its variants.

-
source

pub fn simplify_until_atomic(&self, env: &Env) -> Result<Self, Error>

source

pub fn simplify_until_simple(&self, env: &Env) -> Result<Self, Error>

source

pub fn simplify_until_poly(&self, env: &Env) -> Result<Self, Error>

Simplify until the type is a polymorphic type.

-
source

pub fn simplify_until_concrete(&self, env: &Env) -> Result<Self, Error>

Simplify until the type is concrete.

-
source

pub fn simplify_until_matches( +

source

pub fn is_concrete(&self) -> bool

source

pub fn is_atomic(&self) -> bool

Is this type an irreducible, atomic type?

+
source

pub fn is_self_param_reference(&self, env: &Env) -> Result<bool, Error>

Is first argument of function a reference?

+
source

pub fn get_self_param_mutability(&self, env: &Env) -> Option<Mutability>

Get the first argument’s mutability (if it is a pointer)

+
source

pub fn simplify_until_type_checks(&self, env: &Env) -> Result<Self, Error>

Simplify until the type passes the type checker.

+
source

pub fn simplify_until_has_members( + &self, + env: &Env, + checked: bool +) -> Result<Self, Error>

Simplify a type until you can get its members.

+
source

pub fn simplify_until_union( + &self, + env: &Env, + checked: bool +) -> Result<Self, Error>

Simplify a type until it’s a union.

+
source

pub fn simplify_until_has_variants( + &self, + env: &Env, + checked: bool +) -> Result<Self, Error>

Simplify a type until you can get its variants.

+
source

pub fn simplify_until_atomic( + &self, + env: &Env, + checked: bool +) -> Result<Self, Error>

source

pub fn simplify_until_simple( + &self, + env: &Env, + checked: bool +) -> Result<Self, Error>

source

pub fn simplify_until_poly( + &self, + env: &Env, + checked: bool +) -> Result<Self, Error>

Simplify until the type is a polymorphic type.

+
source

pub fn simplify_until_concrete( + &self, + env: &Env, + checked: bool +) -> Result<Self, Error>

Simplify until the type is concrete.

+
source

pub fn simplify_until_const_param( + &self, + env: &Env, + _checked: bool +) -> Result<ConstExpr, Error>

Simplify until the type is concrete.

+
source

pub fn simplify_until_matches( self, env: &Env, expected: Self, - f: impl Fn(&Self, &Env) -> Result<bool, Error> + f: impl Fn(&Self, &Env) -> Result<bool, Error>, + checked: bool ) -> Result<Self, Error>

Simplify an expression until it matches a given function which “approves” of a type. This will perform template applications to simplify the type if possible as well.

This is usually too verbose to be used on its own, better to make a wrapper function that calls this with a more specific use case/purpose.

-
source

pub fn let_bind(name: &str, t: Self, ret: Self) -> Self

Create a let-bound type.

-
source

pub fn variant_index(variants: &[String], variant: &String) -> Option<usize>

Calculate the integral value of a variant in an enum.

-
source

pub fn contains_symbol(&self, name: &str) -> bool

Does this type contain a symbol with the given name? +

source

pub fn let_bind(name: &str, t: Self, ret: Self) -> Self

Create a let-bound type.

+
source

pub fn variant_index(variants: &[String], variant: &String) -> Option<usize>

Calculate the integral value of a variant in an enum.

+
source

pub fn contains_symbol(&self, name: &str) -> bool

Does this type contain a symbol with the given name? This will not count overshadowded versions of the symbol (overwritten by let-bindings).

-
source

pub fn substitute(&self, name: &str, substitution: &Self) -> Self

Substitute all occurences of a symbol with another type. +

source

pub fn substitute(&self, name: &str, substitution: &Self) -> Self

Substitute all occurences of a symbol with another type. This will not traverse into let-bindings when the symbol is overshadowed.

-
source

pub fn has_element_type(&self, element: &Self, env: &Env) -> Result<bool, Error>

Does this type have an element type matching the supplied type? +

source

pub fn has_element_type(&self, element: &Self, env: &Env) -> Result<bool, Error>

Does this type have an element type matching the supplied type? If this type is an array of Integers, for example, then this function will return true if the supplied type is an Integer.

-
source

pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result<bool, Error>

Can this type decay into another type?

+
source

pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result<bool, Error>

Can this type decay into another type?

A type can decay into another type if the compiler can automatically convert the type into the other type. This is distinct from the compiler seeing the types as equal. The two types are not equal; the compiler will just automatically perform the conversion.

For all cases right now, a decay does nothing; the representations of the types in the compiler are the same for all types of decay.

-
source

pub fn can_cast_to(&self, other: &Self, env: &Env) -> Result<bool, Error>

Can this type be cast to another type?

-
source

pub fn equals(&self, other: &Self, env: &Env) -> Result<bool, Error>

Are two types structurally equal?

-
source

pub fn perform_template_applications( +

source

pub fn can_cast_to(&self, other: &Self, env: &Env) -> Result<bool, Error>

Can this type be cast to another type?

+
source

pub fn equals(&self, other: &Self, env: &Env) -> Result<bool, Error>

Are two types structurally equal?

+
source

pub fn perform_template_applications( &self, env: &Env, - previous_applications: &mut HashMap<(Type, Vec<Type>), Type> + previous_applications: &mut HashMap<(Type, Vec<Type>), Type>, + checked: bool ) -> Result<Self, Error>

Perform type applications if possible.

Trait Implementations§

source§

impl Clone for Type

source§

fn clone(&self) -> Type

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Type

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl GetSize for Type

Calculate the size of a type in units of cells.

-
source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetSize for Type

Calculate the size of a type in units of cells.

+
source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite -recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl Hash for Type

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +recursion.

source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl Hash for Type

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Type

source§

fn eq(&self, other: &Type) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Type

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for Type

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit + __S: Serializer,
Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for Type

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit the number of recursive calls to prevent stack overflow. i is a -counter to prevent infinite recursion.
source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

-
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for Type

source§

impl Send for Type

source§

impl StructuralPartialEq for Type

source§

impl Sync for Type

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +counter to prevent infinite recursion.

source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

+
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for Type

source§

impl Send for Type

source§

impl StructuralPartialEq for Type

source§

impl Sync for Type

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+ T: ?Sized,
source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of diff --git a/docs/sage/lir/struct.CoreBuiltin.html b/docs/sage/lir/struct.CoreBuiltin.html index 12ff8e33..395beba1 100644 --- a/docs/sage/lir/struct.CoreBuiltin.html +++ b/docs/sage/lir/struct.CoreBuiltin.html @@ -29,8 +29,8 @@ T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.Env.html b/docs/sage/lir/struct.Env.html index 9771d411..ed69cd45 100644 --- a/docs/sage/lir/struct.Env.html +++ b/docs/sage/lir/struct.Env.html @@ -1,27 +1,27 @@ Env in sage::lir - Rust

Struct sage::lir::Env

source ·
pub struct Env { /* private fields */ }
Expand description

An environment under which expressions and types are compiled and typechecked. This is essentially the scope of an expression.

-

Implementations§

source§

impl Env

Implementations§

source§

impl Env

source

pub fn get_type_of_associated_const( &self, ty: &Type, name: &str ) -> Option<Type>

Get the type of an associated constant of a type.

-
source

pub fn get_associated_const( +

source

pub fn get_associated_const( &self, ty: &Type, name: &str -) -> Option<(ConstExpr, Type)>

source

pub fn has_associated_const(&self, ty: &Type, name: &str) -> bool

source

pub fn get_all_associated_consts(&self, ty: &Type) -> Vec<(String, ConstExpr)>

source

pub fn add_associated_const( +) -> Option<(ConstExpr, Type)>

source

pub fn has_associated_const(&self, ty: &Type, name: &str) -> bool

source

pub fn get_all_associated_consts(&self, ty: &Type) -> Vec<(String, ConstExpr)>

source

pub fn add_associated_const( &self, ty: Type, associated_const_name: impl ToString, expr: ConstExpr -) -> Result<(), Error>

source

pub fn define_types(&mut self, types: Vec<(String, Type)>)

Define multiple types with the given names under this environment.

+) -> Result<(), Error>
source

pub fn define_types(&mut self, types: Vec<(String, Type)>)

Define multiple types with the given names under this environment.

This must be used in situations where the different types depend on each other. This is because the sizes of types are memoized, and this will interfere with the memoization process if the types are defined separately. It will lead to typechecking errors if the environment does not already have a memoized size for the type of a subexpression.

-
source

pub fn define_var( +

source

pub fn define_var( &mut self, var: impl ToString, mutability: Mutability, @@ -29,7 +29,7 @@ ) -> Result<isize, Error>

Define a variable in the current scope. This will increment the scope’s frame pointer offset by the size of the variable. This method returns the offset of the variable from the frame pointer under this scope.

-

Trait Implementations§

source§

impl Clone for Env

source§

fn clone(&self) -> Env

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Env

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Env

§

impl Send for Env

§

impl Sync for Env

§

impl Unpin for Env

§

impl !UnwindSafe for Env

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Env

source§

fn clone(&self) -> Env

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Env

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Env

§

impl Send for Env

§

impl Sync for Env

§

impl Unpin for Env

§

impl !UnwindSafe for Env

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.FFIProcedure.html b/docs/sage/lir/struct.FFIProcedure.html index a04554db..98b80b6b 100644 --- a/docs/sage/lir/struct.FFIProcedure.html +++ b/docs/sage/lir/struct.FFIProcedure.html @@ -20,8 +20,8 @@ T: 'static + ?Sized,
source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.Get.html b/docs/sage/lir/struct.Get.html index 60683821..2496e120 100644 --- a/docs/sage/lir/struct.Get.html +++ b/docs/sage/lir/struct.Get.html @@ -1,29 +1,29 @@ Get in sage::lir - Rust -

Struct sage::lir::Get

source ·
pub struct Get;

Trait Implementations§

source§

impl Clone for Get

source§

fn clone(&self) -> Get

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Get

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Struct sage::lir::Get

source ·
pub struct Get;

Trait Implementations§

source§

impl Clone for Get

source§

fn clone(&self) -> Get

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Get

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Get

source§

fn cmp(&self, other: &Get) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Get

source§

fn cmp(&self, other: &Get) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Get

source§

fn eq(&self, other: &Get) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Get

source§

fn eq(&self, other: &Get) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Get

source§

fn partial_cmp(&self, other: &Get) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Get

source§

fn partial_cmp(&self, other: &Get) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl UnaryOp for Get

source§

fn can_apply(&self, ty: &Type, env: &Env) -> Result<bool, Error>

Can this unary operation be applied to the given type?

-
source§

fn return_type(&self, _expr: &Expr, _env: &Env) -> Result<Type, Error>

Get the type of the result of applying this unary operation to the given type.

-
source§

fn eval(&self, expr: &ConstExpr, _env: &mut Env) -> Result<ConstExpr, Error>

Evaluate this unary operation on the given constant values.

-
source§

fn compile_types( +operator. Read more

source§

impl UnaryOp for Get

source§

fn can_apply(&self, ty: &Type, env: &Env) -> Result<bool, Error>

Can this unary operation be applied to the given type?

+
source§

fn return_type(&self, _expr: &Expr, _env: &Env) -> Result<Type, Error>

Get the type of the result of applying this unary operation to the given type.

+
source§

fn eval(&self, expr: &ConstExpr, _env: &mut Env) -> Result<ConstExpr, Error>

Evaluate this unary operation on the given constant values.

+
source§

fn compile_types( &self, ty: &Type, env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compile the unary operation.

-
source§

fn clone_box(&self) -> Box<dyn UnaryOp>

Clone this operation into a box.

+
source§

fn clone_box(&self) -> Box<dyn UnaryOp>

Clone this operation into a box.

source§

fn name(&self) -> String

source§

fn type_check(&self, expr: &Expr, env: &Env) -> Result<(), Error>

Typechecks the operation on the given expression.
source§

fn display(&self, expr: &Expr) -> String

Formats the operation for display.
source§

fn can_apply_exprs(&self, expr: &Expr, env: &Env) -> Result<bool, Error>

Checks if the operation can be applied to the given expression.
source§

fn compile( &self, expr: &Expr, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>

Compiles the operation on the given expression.
source§

impl Copy for Get

source§

impl Eq for Get

source§

impl StructuralEq for Get

source§

impl StructuralPartialEq for Get

Auto Trait Implementations§

§

impl RefUnwindSafe for Get

§

impl Send for Get

§

impl Sync for Get

§

impl Unpin for Get

§

impl UnwindSafe for Get

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<(), Error>

Compiles the operation on the given expression.
source§

impl Copy for Get

source§

impl Eq for Get

source§

impl StructuralEq for Get

source§

impl StructuralPartialEq for Get

Auto Trait Implementations§

§

impl RefUnwindSafe for Get

§

impl Send for Get

§

impl Sync for Get

§

impl Unpin for Get

§

impl UnwindSafe for Get

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.PolyProcedure.html b/docs/sage/lir/struct.PolyProcedure.html index d4912dc1..8369eecc 100644 --- a/docs/sage/lir/struct.PolyProcedure.html +++ b/docs/sage/lir/struct.PolyProcedure.html @@ -1,19 +1,22 @@ -PolyProcedure in sage::lir - Rust +PolyProcedure in sage::lir - Rust

Struct sage::lir::PolyProcedure

source ·
pub struct PolyProcedure { /* private fields */ }
Expand description

A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments. This is mono-morphed into a Procedure when it is called with a list of type arguments. A procedure is compiled down to a label in the assembly code.

-

Implementations§

source§

impl PolyProcedure

source

pub fn new( +

Implementations§

source§

impl PolyProcedure

source

pub fn new( name: String, - ty_params: Vec<String>, + ty_params: Vec<(String, Option<Type>)>, args: Vec<(String, Mutability, Type)>, ret: Type, body: impl Into<Expr> ) -> Self

Construct a new polymorphic procedure with type parameters, a list of arguments + their types, a return type, and the body of the procedure.

-
source

pub fn with(&self, decls: impl Into<Declaration>) -> Self

source

pub fn from_mono(mono: Procedure, ty_params: Vec<String>) -> Self

source

pub fn get_name(&self) -> &str

Get the name of this polymorphic procedure. +

source

pub fn with(&self, decls: impl Into<Declaration>) -> Self

source

pub fn from_mono( + mono: Procedure, + ty_params: Vec<(String, Option<Type>)> +) -> Self

source

pub fn get_name(&self) -> &str

Get the name of this polymorphic procedure. This is not the mangled name, but the name known to the LIR front-end. The mangled name is unique for each monomorph of the procedure.

-
source

pub fn monomorphize( +

source

pub fn monomorphize( &self, ty_args: Vec<Type>, env: &Env @@ -21,18 +24,18 @@ This monomorphized version can then be compiled directly. Additionally, the mono version of the procedure is memoized, so that it is only compiled once.

Trait Implementations§

source§

impl Clone for PolyProcedure

source§

fn clone(&self) -> PolyProcedure

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for PolyProcedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl GetType for PolyProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check -recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for PolyProcedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl GetType for PolyProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check +recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for PolyProcedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for PolyProcedure

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for PolyProcedure

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for PolyProcedure

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for PolyProcedure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for PolyProcedure

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for PolyProcedure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive + T: ?Sized,
source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.Procedure.html b/docs/sage/lir/struct.Procedure.html index 1492b2f3..dc42c4d6 100644 --- a/docs/sage/lir/struct.Procedure.html +++ b/docs/sage/lir/struct.Procedure.html @@ -1,4 +1,4 @@ -Procedure in sage::lir - Rust +Procedure in sage::lir - Rust

Struct sage::lir::Procedure

source ·
pub struct Procedure { /* private fields */ }
Expand description

A monomorphic procedure of LIR code which can be applied to a list of arguments. A procedure is compiled down to a label in the assembly code. The label is called with the Call instruction.

@@ -25,7 +25,7 @@ output: &mut dyn AssemblyProgram ) -> Result<(), Error>
source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Procedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl GetType for Procedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl GetType for Procedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for Procedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Procedure

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used @@ -34,9 +34,9 @@ __S: Serializer,
Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Procedure

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for Procedure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive + T: ?Sized,
source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.StandardBuiltin.html b/docs/sage/lir/struct.StandardBuiltin.html index 274242b9..604a667b 100644 --- a/docs/sage/lir/struct.StandardBuiltin.html +++ b/docs/sage/lir/struct.StandardBuiltin.html @@ -30,8 +30,8 @@ T: 'static + ?Sized,
source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/trait.AssignOp.html b/docs/sage/lir/trait.AssignOp.html index 6d60f040..7de97696 100644 --- a/docs/sage/lir/trait.AssignOp.html +++ b/docs/sage/lir/trait.AssignOp.html @@ -78,8 +78,8 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compiles the operation on the given expressions.

-

Trait Implementations§

source§

impl Clone for Box<dyn AssignOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn AssignOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn AssignOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Box<dyn AssignOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn AssignOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn AssignOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn AssignOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn AssignOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for dyn AssignOp

Implementors§

\ No newline at end of file +operator. Read more
source§

impl Eq for dyn AssignOp

Implementors§

\ No newline at end of file diff --git a/docs/sage/lir/trait.BinaryOp.html b/docs/sage/lir/trait.BinaryOp.html index 9753f5c5..f68ef12f 100644 --- a/docs/sage/lir/trait.BinaryOp.html +++ b/docs/sage/lir/trait.BinaryOp.html @@ -1,5 +1,5 @@ BinaryOp in sage::lir - Rust -

Trait sage::lir::BinaryOp

source ·
pub trait BinaryOp: Debug + Display + Send + Sync {
+    

Trait sage::lir::BinaryOp

source ·
pub trait BinaryOp: Debug + Display + Send + Sync {
     // Required methods
     fn clone_box(&self) -> Box<dyn BinaryOp>;
     fn can_apply(
@@ -55,7 +55,7 @@
     rhs: &ConstExpr,
     env: &mut Env
 ) -> Result<ConstExpr, Error>

Evaluates the operation on the given constant expressions.

-
source

fn compile_types( +

source

fn compile_types( &self, lhs: &Type, rhs: &Type, @@ -78,8 +78,8 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compiles the operation on the given expressions.

-

Trait Implementations§

source§

impl Clone for Box<dyn BinaryOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn BinaryOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn BinaryOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Box<dyn BinaryOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn BinaryOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn BinaryOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn BinaryOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn BinaryOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for dyn BinaryOp

Implementors§

\ No newline at end of file +operator. Read more
source§

impl Eq for dyn BinaryOp

Implementors§

\ No newline at end of file diff --git a/docs/sage/lir/trait.Compile.html b/docs/sage/lir/trait.Compile.html index 17bf8372..55aa27ff 100644 --- a/docs/sage/lir/trait.Compile.html +++ b/docs/sage/lir/trait.Compile.html @@ -21,6 +21,6 @@

On success, this will return an Ok value containing either a successfully compiled core assembly program, or a fallback standard assembly program.

On an error, this will return an Err value containing the error.

-

Implementors§

source§

impl Compile for ConstExpr

Compile a constant expression.

+

Implementors§

source§

impl Compile for ConstExpr

Compile a constant expression.

source§

impl Compile for Expr

Compile an LIR expression into several core assembly instructions.

source§

impl Compile for CoreBuiltin

source§

impl Compile for FFIProcedure

source§

impl Compile for Procedure

source§

impl Compile for StandardBuiltin

\ No newline at end of file diff --git a/docs/sage/lir/trait.GetSize.html b/docs/sage/lir/trait.GetSize.html index ad7afd67..f00aa55f 100644 --- a/docs/sage/lir/trait.GetSize.html +++ b/docs/sage/lir/trait.GetSize.html @@ -10,8 +10,8 @@ calls to prevent stack overflow. i is a counter to prevent infinite recursion.

Provided Methods§

source

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).

-

Implementors§

source§

impl GetSize for Type

Calculate the size of a type in units of cells.

-
source§

impl<T> GetSize for T
where +

Implementors§

source§

impl GetSize for Type

Calculate the size of a type in units of cells.

+
source§

impl<T> GetSize for T
where T: GetType,

Implement GetSize for any type that implements GetType.

We can do this because the size of a variable should be exactly the size of its type.

diff --git a/docs/sage/lir/trait.GetType.html b/docs/sage/lir/trait.GetType.html index b2250a74..19639829 100644 --- a/docs/sage/lir/trait.GetType.html +++ b/docs/sage/lir/trait.GetType.html @@ -12,5 +12,5 @@ recursion depth to prevent a possible stack overflow.

source

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.

Provided Methods§

source

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.

-
source

fn substitute_types(&mut self, names: &[String], types: &[Type])

Implementors§

source§

impl GetType for ConstExpr

source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

-
source§

impl GetType for CoreBuiltin

source§

impl GetType for FFIProcedure

source§

impl GetType for PolyProcedure

source§

impl GetType for Procedure

source§

impl GetType for StandardBuiltin

\ No newline at end of file +
source

fn substitute_types(&mut self, names: &[String], types: &[Type])

Implementors§

source§

impl GetType for ConstExpr

source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

+
source§

impl GetType for CoreBuiltin

source§

impl GetType for FFIProcedure

source§

impl GetType for PolyProcedure

source§

impl GetType for Procedure

source§

impl GetType for StandardBuiltin

\ No newline at end of file diff --git a/docs/sage/lir/trait.Simplify.html b/docs/sage/lir/trait.Simplify.html index 272b628a..cb1fed26 100644 --- a/docs/sage/lir/trait.Simplify.html +++ b/docs/sage/lir/trait.Simplify.html @@ -10,4 +10,4 @@ the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.

Provided Methods§

source

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/sage/lir/trait.TernaryOp.html b/docs/sage/lir/trait.TernaryOp.html index 83a15e91..5198065e 100644 --- a/docs/sage/lir/trait.TernaryOp.html +++ b/docs/sage/lir/trait.TernaryOp.html @@ -1,5 +1,5 @@ TernaryOp in sage::lir - Rust -

Trait sage::lir::TernaryOp

source ·
pub trait TernaryOp: Debug + Display + Send + Sync {
+    

Trait sage::lir::TernaryOp

source ·
pub trait TernaryOp: Debug + Display + Send + Sync {
     // Required methods
     fn clone_box(&self) -> Box<dyn TernaryOp>;
     fn can_apply(
@@ -58,22 +58,22 @@
         output: &mut dyn AssemblyProgram
     ) -> Result<(), Error> { ... }
 }
Expand description

A trait used to implement a ternary operation.

-

Required Methods§

source

fn clone_box(&self) -> Box<dyn TernaryOp>

Clones the operation into a boxed trait object.

-
source

fn can_apply( +

Required Methods§

source

fn clone_box(&self) -> Box<dyn TernaryOp>

Clones the operation into a boxed trait object.

+
source

fn can_apply( &self, a: &Type, b: &Type, c: &Type, env: &Env ) -> Result<bool, Error>

Checks if the operation can be applied to the given types.

-
source

fn eval( +

source

fn eval( &self, a: &ConstExpr, b: &ConstExpr, c: &ConstExpr, env: &mut Env ) -> Result<ConstExpr, Error>

Evaluates the operation on the given constant expressions.

-
source

fn compile_types( +

source

fn compile_types( &self, a: &Type, b: &Type, @@ -81,29 +81,29 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compiles the operation on the given types. (Generates the code for the operation.)

-

Provided Methods§

Provided Methods§

source

fn name(&self) -> String

source

fn type_check( &self, a: &Expr, b: &Expr, c: &Expr, env: &Env ) -> Result<(), Error>

Typechecks the operation on the given expressions.

-
source

fn return_type( +

source

fn return_type( &self, a: &Expr, b: &Expr, c: &Expr, env: &Env ) -> Result<Type, Error>

Gets the type of the operation on the given expressions.

-
source

fn display(&self, a: &Expr, b: &Expr, c: &Expr) -> String

Formats the operation for display.

-
source

fn can_apply_exprs( +

source

fn display(&self, a: &Expr, b: &Expr, c: &Expr) -> String

Formats the operation for display.

+
source

fn can_apply_exprs( &self, a: &Expr, b: &Expr, c: &Expr, env: &Env ) -> Result<bool, Error>

Checks if the operation can be applied to the given expressions.

-
source

fn compile( +

source

fn compile( &self, a: &Expr, b: &Expr, @@ -111,8 +111,8 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compiles the operation on the given expressions.

-

Trait Implementations§

source§

impl Clone for Box<dyn TernaryOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn TernaryOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn TernaryOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Box<dyn TernaryOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn TernaryOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn TernaryOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn TernaryOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn TernaryOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for dyn TernaryOp

Implementors§

\ No newline at end of file +operator. Read more
source§

impl Eq for dyn TernaryOp

Implementors§

\ No newline at end of file diff --git a/docs/sage/lir/trait.TypeCheck.html b/docs/sage/lir/trait.TypeCheck.html index 714565ee..2b08a4e5 100644 --- a/docs/sage/lir/trait.TypeCheck.html +++ b/docs/sage/lir/trait.TypeCheck.html @@ -6,6 +6,6 @@

Whenever this is applied, it will return Ok(()) if the typing is sound, and Err(...) if it is not.

Required Methods§

source

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

-

Implementors§

source§

impl TypeCheck for ConstExpr

source§

impl TypeCheck for Declaration

source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

-
source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

-
source§

impl TypeCheck for CoreBuiltin

source§

impl TypeCheck for FFIProcedure

source§

impl TypeCheck for PolyProcedure

source§

impl TypeCheck for Procedure

source§

impl TypeCheck for StandardBuiltin

\ No newline at end of file +

Implementors§

source§

impl TypeCheck for ConstExpr

source§

impl TypeCheck for Declaration

source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

+
source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

+
source§

impl TypeCheck for CoreBuiltin

source§

impl TypeCheck for FFIProcedure

source§

impl TypeCheck for PolyProcedure

source§

impl TypeCheck for Procedure

source§

impl TypeCheck for StandardBuiltin

\ No newline at end of file diff --git a/docs/sage/lir/trait.UnaryOp.html b/docs/sage/lir/trait.UnaryOp.html index a13d019f..02e5bf70 100644 --- a/docs/sage/lir/trait.UnaryOp.html +++ b/docs/sage/lir/trait.UnaryOp.html @@ -44,8 +44,8 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

Compiles the operation on the given expression.

-

Trait Implementations§

source§

impl Clone for Box<dyn UnaryOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn UnaryOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn UnaryOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Box<dyn UnaryOp>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Ord for dyn UnaryOp

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl PartialEq for dyn UnaryOp

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn UnaryOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for dyn UnaryOp

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Eq for dyn UnaryOp

Implementors§

\ No newline at end of file +operator. Read more
source§

impl Eq for dyn UnaryOp

Implementors§

\ No newline at end of file diff --git a/docs/sage/web/web_bg.wasm b/docs/sage/web/web_bg.wasm index 0281e6fd769c78e505d1b0329cb27b089785097a..6e029e00a8281f5be3c8b775d174894ca46edb82 100644 GIT binary patch literal 2350220 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 z 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�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

yZS{ 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�kh*U}Us^%9~ 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

)i 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 z]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

%~^<=&f2(?{^_EnNZY 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

JL((otDA26-+T|2k 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%0A|94FDU-%5b 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

9ehOw&?C^>4w{wZvEVJ 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 s@SDF+XRpfj#B16K;{^aqq7udwG=%kmG4dd^yx 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�C#?l zNksC!va_f;o6H3JaACf6Z? zVP0tjm$zzKAj?5QGqkPPRR^3-V8h9<1?d2E0j6jB3pDsU@o0+lVO^;OZXR)!bSrqO zs9>Sa_LP?#J;e^b;{;%itbcwT9Li6A6H=WJ1P`4Q0AP7JQu!HpwkR(Kb=(=KN$#H% z1n(}W;NXc&aka09CpX1a$@v`fKzcdWDg!X@zM@-$#(gYq>$ry*Gx`eD-Cb00&u-D> zsxC_;w`WDR0Z+0)hK<QyZdsHi^+8c};gK~fPn)21Jc2m6znxxMXW)1? zI;jyr&L|2bPzMB(6Crn#5kblCn#%%@`*-KPU!+o#d}SU2{_FG@L;=0$%p!DSsWV8U z`~qy&)iqGl4SEHGZ}-WQqd8n($U7Pl?_@$G*>PjW!+-FqXq`JvcE0~mv9bpx0}`tP z{GO;rls_6?m(@{q^ozPPVE-C2~VD~>%L z$TQBiV5d)RvyJrDb9{EUS?C%oQ-pdX57-Fm*im$Dgy@}JTjzu6z%JK_vUp?m(e8UC zLx(t`B~{4cS^Z*i9S&)nviO;-HPkPNib_N z#WPaWxBFMEo)}os`8C2O%8YU!wo_^@ZKRg1|H0)dF4uY_qdvlTil%ppya zp&L3((70kueEgpu|zK$Ml+VX+TD=rgWq7w)lyS$m4TV z8H_EHDLY2GtyY=wZeB*B?I2m^)4GctnEb<-t$nm%%_NH^R=iH88F*{(&QxkqseBL@Ok4yz6r7AsGVLqt05i^piAA%tjSPWLa9Hb+;QbkSa*5jK?Cayg+` zmjv6XJ4c~dZF;s4)54HLVmrssI{kD{r(a_od`kAvouW=cXZ{1t5fTB_)0>8@P<3iw zFJ111?x=x(h1Hox>Qvs_};v%#Zf3Wt_mpTB6J!Id0LmNU%aAPLc(1x~4Zk&u}y!%b%}@a|IEZ~^r}SVNnHZB-aO zKXv%JpJlDZDV~VdI)UzvcXV1c5};CX_!OE=<{FYzV&nCW_Z4W3l%*34eBXBI?u$4fTwMKfj`P_0=Pl)SFoEJwK)Ob6O(3dDX z-jWoj$H@rz&wtyRAHz zwmVA9+UMylYpD`)S&6$^7ac=WJCLBlm}R zt_}Woef_oe&#K6)+ZQO)zi+Qn;;*+?>+RRubUpiesR&p#9sHl|3svO*Zlfix4*p~N z#Y+6m_Dl5ko9&lU8hk-8`;wWiMPCJfyO_tnBLaMcuOZb<5sMfmN>Thk3lfmHpYZ!3S0L zeO7ilUD+-B2P82?>L@ZIJ>Ql6Jsy9?m3`sb;0~32mz6y)UC}N3c9OsdmA#Du9ar{u zcx=0}=~~d9ueVs)bJ^Zp!0IUXX!x7Oeu!3djw{On%jt4gcG=qC4HU(F0hrHZhip;w zFiDVyn*9gz+m+No_8lIVx}s;V4gMn^zhOlu*?e3S{kv{a6!i2A*Xmb!T;hr*YlDAJ z(JxxjVQ!zLC_#bN*yk;ABpvP6_c=LZy>uY;qF_SBb+RiI#>lC%Mi`vqj+Rml6 zvy0l!C?nwK3^vG0Cf2qT*LDldnz znU?WNE zOFl2>hzR;-Cg)^cIS?3?v7oK#SPV|*P^gPy?UaTTmUhrirLR{Inf%m|k@6rT6=T%c z_8AxlF-j~7KI$_8JJ_YkPL5DfaFrd#mBRgNQcXCHcsiPvcHL0iH42dY3Kr9%qMaZ; zTjz*iX~|h;m7c{cN=+Y2zHO1;DR^Lq0;?t@vbBPKQtp5oNYMw*mas^W{yq@qy;vX6 zZF>4J(%T1?ht!9*>%%g-9q@k@#wWdz;nv#`u<`pbP*1J~nw%sNnb9M&sM8`>%W`21 z$un|nt|1vYQb4Qek_}TBGy(sj4O6HzG`>7r<1VGJt}JT@-HD}P%vGIiNq!eYxrU81 zZi=)@$@I##WuKX!HM4xgB|qC)iob&Z%^~h>?bKdD1)9)yO&%?qq~$hAK!&N)9v>M4 zXE+62-Z=1$U^Z~)W$WVk5M>gT)sh?O%b*3Vuv>*4g5S?dmuqt6^cYl+ta(?qr^=X$ z;%)MQNe;#6l)i>zaPTohm}yipLy~j#W2mSo`$l?>!^3mCIN)lO!tW~GzeH|%7A&u% zfI3Y$tY{a|U8^8WJv)=T2mOTqdD|={yTDy*d)%GOi+^Y~4;x$VYglRkN5l!vEJ(Y~ z!K;LzY+SH~?AXkt^XT3)#c8svzO9U2!%5h5ktsugq^ad#3O|!q**4MQ7g#X>2K%#hs$i@-VqE`M#~bkAV9!WULb7 zJzyO5j63*_3k@o6Jyf>K3zS^p$1qF26b*uIEFEkNk?f5j?X4^sLxPnY0{qHNyoQ)m z5SZw5{Kq1-6_*677z52r<6g&@BcMo_vy2}wXOf?eJS#!Eyjbi#5BzX+pxS||abH7I zp_XPRV4T*Zz_ZbakI`m_J~SU>=V!O?m=BU|V~jImWbLJ15{#r{76XfpO%-l)4#&=j zIzcmu5+jOKLs$yKJlrIeIG??cO3MB!wk~L?7ILwT8jLfW*RhsOu?3+HGwo#nJOhY< zJ*3Fm^rws-V>jxcQKl`O#N#~TpoAAw%7U~6AuYvG2e4^W-=u*8zf3x^!QIkqeMha3 zo!K*h>OupUlpi*rMZytfK=LeZs3Yi$kwqY4F*cnI$q8;?r!Zb9MM9;Gt3f!dL%$7g z@UqFJ^?Gw)E z5&wv00WCkB0P4cu6-)R*r<$^q9|2z%C-7vB*j4JIyjR)`rXI*4z%hg@Psc)tAsYid zpr7q3!vzS)P5r>|p=wUC2_g7UN=}6zLq`Q&YFUJIyqMXeJ`p_vCw;c%3!fl?$RGQ# zfj4FRuha>a*8Ujd?>>5dU|*sIJz5 z)ZF@&NX)nd9=v>n;u0fngl#{r%U4q*+b&WiR`jQy{1dD&R|X)Q*!IAQA$twR%m?1#nqrgq1nCv;Qn>J- zTdJt)m3+jhfM+Sro@T3xwojuH<24hAa&_6uEmLaCs45C{;{F))9e~oJ0d|L>c*7V( z>uMl~d62$>Am5n$i+C_f9&7-6!7e^AG9a+phP%u~`#Wip|D}dFk26Z6^%T`w#v8T#+I4zJ#@%6ODWP@LAmwwAHZ*UtZYA3Z*F{hA zoXw#GdunZ09g7TLky@%thtnm=O^qBP`W1N5ehYPtJaj~V>e+kPcEAG*RIA4Ex3fIB zEUTE~b!EJ)^Rk(v;Vmg+q`W>F!)uI-)}mYRb`z??dxl1?l{c|>Z^l+4T-PGZVz<8L?k-`Pr4SeO)Ez7 ztc=*$Pnv0qE)t}iiE;Oq0&u+v@TlGdHCd`xZ3!T2WX6Mma|m;dRQq2M03An#!X(Fu z$Z}tpe3&RuJHD5^SAefZ{ChyjlGQ0iMB<76Oc#*MQAiiDe~gVQVr=p$`TvjQLq5W%6qQuHX(UV{xSBqc=F z9;X*9Sp+F;-zhOe$n+78zCvPeTonY_`m0(?hsj0oC>oZ_#m|+kGsJ9aKG(-LT|+iH z2&LORj9UeK4`$t*&>Sd2ztyYzLb~LHuou|LYNh8BYa@J`AY>cEGb}`iQ@7Fy*@6X2 zOw$RJ%Gfj);9Q0dLp2sfqaE-X=x9Ti&CMar3F!Qc<^(qIw1#mxr?S=@gtRc<0Yc(- zLAL2Xr?rivQ8N(t6_aFDLR?sC{9FXu=#YEQ;9zXT0l?UzO<9nhp?c1w7dUKi1M|xG zlOHtr1b+)GU1>h#M%QVvC5TsBj@7hN`}RFp zZcSAU%kSYeHGm2)6<=TgTOu@Dem6rx8(KpeWB>Fs*3$IXHT^6ZBH7&Z^K)gZq3K5h zHzd*YOY6&?MIwj{*@lU1;;ZP`VStTh;d`HHmz{JFx_VKzW@}X;_ns*PLf!qPuz%vW(uo(?q+`*U| z+-|9%n_L`tBfvoGVxEaUne(hC(fA}B?+g?IvBElQdjKwb>O*MkpPm$bibmiq(wR`_ z3>>!9g(b=4n$A`hktPhfB2vhcbe849QD2#F6J(_Ji^qX1ouMc=#x2&GC_)%|@rX{C z{eZEpqTk3?@O+x5Aaln+7P673m_=lxHBjnXNj5IrAscB8qy`MhBfw1~HHV|fB0tTm z=&loK>aLTVlIzn#Kamifi@@#G!E_-zr@OKfq+r@Le@s=?iL|N{X$U6-sBP?&HGocT zT4HY|l`mzI)uU#6_4h4K2INGmBLU21-~Mu6W$D9O$WK z+yj$j{p=_1!>|pQJ8Y|EPnNI^EirjO5k;a0^L-@15}ZMz7{6gtMPL$!+JGK54vt9S z6u1~9?=f~UA7b*GCr&O2SIqAo1XuB6!Sw(DHf~qD86m;V5mtqtBWBAcsO~1nO%XmX zuU+A{%r!WT*iDg*-4u$3O_3mNHx0!6B!AN-%v`nuLW7-s6~Pg-f!7K6a5~B*LE*pW z%w8#=w$XfJ@}IX7jI9IC;Z2A_9w3m9xru~G-aww4!|E4@7ptn`Z%j*|DqjFFdZ z?h=&y+b@%2S~E@<0|90)6Og2tUx|`lmx57AU-t8ng)0R2r_uc!Ouv~+6ttwzGG{5g z!U9HId<8b8-Rk(Tf*c5a5z*f1!T=O(0ebGPq{<^~BJ`c9mEBUw?&B^rdzjv|3ozTemBD3jn)Lq_=Rcwtm)WM=yE0X@tkMw_ZIaZzu)lORnd6m~!*PnKxc{Ix4 zD)QI3xd8>Zo<-dc>wk$4QTBrC%s|L9#C;jYiVT#m=yNu7T~@o{dhR^%e`LF$q}!2? z1QA;hKkRZ(!2Wl%;}}JoE2gmKxpwdD>`i)1?D37+je41@a6Uweg&5-cl>k7Eb<7tw zE}&@MFSREv*YaZU>D1+I209lL>BL4Y%fM=^6kxo77Wlh{!?Hb>M6>Ln~t>$1QDXpN=O$pH)I=`>M*66 z)~n^fA94&@PIGPHO|HPSq;20Pf=$_dNy4c1rQ>l6nXI(IA9NfAfi!2^{Gqoats%Ep zW$YD}8EgA~(Z!xU&U zw41#-)8J*LjVo@?;@Si?6+l|vTxNL1(|X>LZcv|kPnU7VFm|u zSpkgJr^6H)CyNk&&8&sdG+CO#8YR&(wumbQgnFHzytP?5o1$Ep@QS?2P-e!&Dk}N- zreD+*@tlvsV5`}dCxMNb9HLvs=%x;}3LwjTb6MR8vLk<)=hg^@J1ia3ne1`#nmREQ zb=y!IQVHlLcX>FQjnB5Z^+gF0kP|5Y%cb;loKs=iV-D*)lM>{BJ|i-dm|$m(0Pl%_ zHj*wiprLE_Kx}N5j*w01yL%S|2`x=IuZN%#(-g3G;;BX7}v}KDNAusaAydYOZmXgqjGvZcanc9_8+e zb`fc<<#h298xU&;F77%2O#=0f7B!jDWN2TVlzURgLZ}BYH+$AOJQjTKbP~5;m~qL4 z6lO;>i6Za2Cc>(A5W77n;#Q~j4>Cu=(0L`Lt;J`%t;J{6Y_kpfi+ip}<(>@qzue6@ z;_Tdi>?^nHXoNs+mQ6n%^Vt-THtsK;E%rtJ9A%4vi*j7vlJU+avvv?;Y%t5xU$rho zDSdFZ=7=5pPwZpfgl_<>ktM>+2-gCaEm|NOHT!IKB|yALHhC+pE9y4&>PCR9(pP{+ z$+m}jwHoLP5CTUDJM|xn@|X_iCEQJ~rJi;OPB)0)`p9c?&_fTP-#yU7+OfP~m7vVl zVVVSf2;1bZR2t zhl2*MU144D76Z{#aA6#4vE|;wT4BO+4^ipotI{w0%SX9nkY@w+!qwZ{*a1nD-(#1} zp6HN;>&G9maVZ<}=NT|#xXR5RPuKV-ZAt;L+ z32F*P?4k!&k8@MNb^kFV3B{27LVX;Q&!Kc8X1~Qgi}Mz!Rb@8PtT)^pWs*WLyw{i7cy*F#H^1 zU7(y&bLRE>_x165BaZ zFh_T^6#5M3PDx|nL@F3H2Tk!j%`+Kv3>O(vmq7>TSQ8cj6es&Rgx)x!^kOYBNKU|$ zgs;+Z#7e8iN`Jw6^$S>HCR-emTHKKO>MI&)Ga3ye#+Z_=AvMKzuxCq-8NRp}Bb7k+ z-28~YrJH!09zgYoPcKrXw?)~~0Xe;r;6=G*lP0Dk;-z{8IAMa}KN$;aQjNAByU#d{ z0YpWcq)=+31a0N3V$yJhZaO+S$X_rM}hBM(T*LuuU4&Av*M#1{5rbGE^RVk?a zJNVwmyrJsKNrzcKn@w9ZMn%U2mpqqS^>y=hT@$iJkDp=^_v3=#abJv^PflIwiu>f2 zID#Q9R}ROcYIj^fpKs%=*yNw;=Ejty*Qk}1o!@#S_jGg_>r53P%t2l)0$m6D9^eHf zfidX-qOEEZDZNF%c=$H^_c?M%+f_EJhF){`gH!=)d|9W)KB zuCOczSkH`;518xcV5I%*e0&OYzj>V{Bu^a@i1gdA6_SL%g^D=_3Vt&XTH9Vya82euhj{YpLwm{$io<80J16uyFY znl;)J0mHlUXIBx4JZP*gpNL+Qfp>w6F+igu#d)Us^zI4pBvq4h?x1g`+yavT6UPWU z956lCcEswdCjPbSVi~@uRkk!{Q!mD$(RdyL@rs9N%wXSdxgVhrLdY!C1DavLis{8n zTilCfebU|~pkOF_eWpD=(>%Ybujhn%p^zK%H+9Mx5IY#=5My_;GZhSVdT32B1hs57 z1|X9=`cw1f7`$UCnlrH!k30_f#hx@FhE33BflWD&ao99e%re7%2v}*@y96`d@6#{X zv{S#}kjEy?ct19&7lLdVb3}#eDIF==q4%V)90xX4lQ-Md8~X}u;;Y9J;cSjg?%7r3 zut{Te*i?pe0cR8A4*uVk0&HvtMp9-wuT^XWK6-~RWi&(*(v})MA)bZQ$lrUt9!?PGA{%z?gKp^x5t31wQgVJy0G&Hme{#SiJuu*;^9R~yl`NNeT$S> zF|fqbi)G{3?BI+_OjtbFuW5czBT#=6C5Uv44>g=7Q-f zacGeeI)AW#1*TmMM|Im4rt@PMM{`=rLT?oMM{`=qp!q)MM{_hqp!r_ zMM~g89Wah9-(4717%cK+E1XB$k7x~(6m>G^+1rb<-$HrhXP+}Mx_tTavBVZ-I6r=e6gG>ql5-ZvNF{ks z=zh7PQofVqj^-FkqTPS`S|6>NPv5Em&VLljtpdbR2e~LKVyoGP)`ZHW;b;_u3K#cL z683e)h86*b`S-Iz>It)-kv(X=IkLp6vug@2ClXz;oz%=qpHEMG4hy`vyfwkXOSgkG zs;(%$j7XI1b8LJQ_I#e-^EXV5p3ic`Ip@Tc<>vs2 zZcIKuW^LP3J{bC@r6d_weD9_%89`S00lVJ01oNp|0b4DyOkL>Nbl5Zq>^F-B4q|LS z7+J%7eN=WF`ETw`AzW@pr9TgOu?bu~^H_m{N|A@I8xmYpt|dnc`(0Bmn}7MpkhNIu zs84b$P%_hnKFooO97#UJva7rY?U2bRV)=w}$|@J5PAe)8&>EJP-H_tu$UOpxHxK8H zKNz`3bGgIL1aw?`S{nhad9oE8L!=yg*wk!uWpifrSW5SaqV|p7Rr$OVh}dn?o=U{i zg}#3>sN}i2vqpt(MtVNk^tm>7RQ`?G!M*+LfG|;G3pqR3n;f4V{OM0CJMaSoJq{G? z;6RD+yX>HxdXntGHv)p)TPfJVtvNgRmtNwB9o*WR0zTc_#}2Hxkk1~(4hEHSSZGK9 zJLuMuqlNuKmEE%Wmj?@WP;}HM{Rr5BZ_XMn*ukw`cJMm|JNTDVVh1)?-8qFF_}R55 z2NcT#J8)l0?4UazIV{R>%b7+OVmUh~&B(Frz$&6Y_x@Y6g9rQB!Cj}o4*u+?l^ytj zF;#zEu!FxI$PUV>C&>nb(ma&e9V6GYFsN8?Ccck2rR?e3K8Yqk zC>CyJ0=hDH@k2FxI`Ris*wuNH2=i72G7 z8byoest~Dzwy>?2YW8hb1@enS0+yg4lI%ig5|eTN5>VbbPpug&9|> zwYvLn2+smvv@^-yyu+`NrFBh>tEaAgZF_Yj=E!q6lASUalE8<73kr zQNv<;3E<3hZrmHL;NhM2aD7YXl&Fq~NZ;(RYds3;KtI$b{qRbiXs2jri>8h?To1H{ zTnqI5idJnf;Q+7^&J!n;0jwIwVZ_C;S1J(R0ZQAZ-IHRKBSid%@At9GN_O3NC!ZhZ6riXo|-9FPpdguGDC|=J~)z+x?Snvjx_vNi| zA$f%rIXb`%k4n;NoL0fKa_J^7t*#EfO#Hll53t`?m$cIr)_6eW3q)=B59`^O!x6`_ zOG5;4|Mi9l6njQVk z+hKfDtO)i36uxBuZ3>``)J_Ta0L6u?`=h}NZ5M$!iB+EM)NEO8Ap*-M1GlNK#cW~Y zR9XOxuFvjZpB|f>!LCchn6#K~SJwIbV5)z@Wf^G8wd1r4mDIj&hX62%1@f~Vtd?|o zrb5kK=RvMGx!X2mfLA`1wP9k|a)yz!<1QMCwON0lpE&t`tlOj%@x)RjOXe^eyHHA3 zoOM9(Y@THCMuj<=rV>`Dkj&O%t65?RV-$Ez;`hFjV$ZEsP3zY#(s z*tIqU<84ffaW^7AzJ%w1*<5D#zJmxnp9Ql}m-QsMVBqA!p)xd?06~Z8@FC@P+bHYl zq-(T?ZTa%+lhM$o=uHG3&Bw$<5cRKf6!NT zriA|k5AHRv#}EXEOEL)l=nRcW`vdr-A1%#;xD`X(S_an#nwgzsSX~uVZHo!>AdZ)z z8f>N`Zc{s(S)+CnsIiYJ&hAE3GC#}|n50{(*_?xkui_f!j;N@x0qgdrR|`wQ~SujvxuQlVDol5sKAK1D2ou^xRwUyTN!VU z>~KFSWqizq0E)P_x#KSzXt_Poh}3sLAy2VxO6UOojL-#-p0sKQ+v#L>9VWydroS_k z7muZ6KvIVPhAxyBx(InFs>>E^o00&?FH{RnVw!!>G#14;=$I9vO*p>FqUf;3D4l9E<#u;IF3>}jgeo~5 zEv?dFB3$4-#dnHMDk=nqc?EE&po$O(@(y?XNE`6+1&K*@E)ort^fgO0&@O20PNcti zPgS7kAt5LOdRR2B&KWb%sc{-9v3h@)aC5;;3{W>jP_+!q`y~0m_GGi)UrBte^?8Nv znIHg67>M309u5Sh-Dwz9>KKJ$ps-~>Ydg+IgiRV1>{~1ut=e|DzP;KWveD%XDODj6x-Ho*nJ9E1nzevSA_kBfWp=|yT{Y@Yj|s}i#d%exo~M)4^Xq1SM4atbgb*_AE#ROj z@ecdUKG6ED@b-TMM0V)hDw_7j5?%+)hQ4VHoWUE%d8ziC?fTO~sOu$mVzhHsG=%76&gc!dA zjnNic&g&|ydI*!)S#4;#K%Pf;^OQcxiw z0$p{(hGl#O(7f8D)O7S8JYPYf)>>~Vcd07LV{sXVB&H^{MVQ22C)7K}f;{S}TL^Y@ zLs+``41AxCX+*^1Cf@WYu~VD20_FmbjVA8`hu=!MS%wCnqVusG6=E zdfx4?2`Kf~KnO*tM33I??I+!0FhVd>)wvd~Y@I39ubOSu=yaqR7E(2PyL($|=TE!4 zjIY4;fY%2N#rHk;q2QK@RkJs{b}+{CWFB#; zxnw}^;DhWh+z-f4K$BaoCXNM4TZ1iiK?hF=9OxbD!jS8N&f(3$N(aQ#0hkE@xgQWJ zRfA;S8|>$*yD9z3md-&C))=4DAK8Phb}$ATyNgG9vgT>c_bJYTa_eHBY9 zz8bJhCAky?(q3(~*ufp(?`%gIamC~Z5jLnNC0w|YqXsne%kz9M@imH)V_RXb+vZ-oHA8zq z$$CoVEy5qX(}+$8x0%+(+LBq@*H_c6phnRKevHM+Yy5rX;dd+~Ip0JHmlbg0u^pFp z)!lD@WeXoij@PvkUURa7&GZmBij%XJnR4Pe1@=ZbEG0#LDX>H8#zp+l@)~|P?q(J6 zM@yRKji8|w?px}QfKHEIT^PLFM?Cd8pi@iCOp9?}zHE56%nn*kveUvYxbZ zH&kDC5MS9X)*LU?3FCj4YO#xQ^s^ul8?{BC98W$V=})*lrW4BXqEu76Pe+Xne}6Qp zxg&h$ysEAs3!N2d%#oKmS3e6ovNPoqp&IdY+*9U$!DGci$8mB8-e$6*wa|LRzy~OR;Pu(UG&WNJf*F(~bJ1t@Do>oPz3zPLXSL z$6~USBhsE4NeR_}@)dDnPPxVi7e-H&^ctJ2!_J~q#AFR$)GHqrdrRw_i!(dg3di+d zFwW}6_!x`@P+XMN@vqoMV_uMJ*p}=p%U*aTnu@L~7fG=8p_f(VmuV*@RmTd33?JZ# z1-DZQh&bTb(AY6ULQ;%X`fQ+~yjI;h(`+gW^ZDNBaPr&)yJaG~>B*EnoD~9?<{%Dc zHobY~7q%F{a%1_mG#y##KL}xR?5>)C*I?r+0$8JKu>Mo2DvmaPtJWYny)oF~+0ok2 z$Vh#p0h-%(6e&c=9Y2*?o4DBdwXW(JUIpf?$2MHH%65 zBO7HObTP1wg>ENI{y-BwEQlcf;Lyy3B$RsNSW;cf10-ufMNCZnCKAEf`AnNQ56XZeFnfpXbsY=T)MZD~&3|No z=1$KZbb`x^kuiX_`e>|!i4}uDZT?X;E6Dv;K4(#ulsa+DtfJBsvnp{Q1~AHbwx`|| zombo-;&Oh#_FjCtSf2B zMmP!|r1J%Q*RZ*5}JW!$8Sh>(&yxH8b0DTkGb=3o`3Xpw7&PB z!LTDhc48lX9OvQ35?tr|^HBQF$~k*#`8mB?$Xu{_n7x1hBkbp82%M7g$@?24 z+AwDNwjE)T?Nk@Slf1oUQr;99f zpzX3KfJE-cTfd-cv$xt0K;Qsq0U>X$+jnYbc~F4MVX;+Zd>p5+9^iS9Fp&~qP>Wstzo4s?;nsw zd%;RsJ~$wYHh-0}>>Q9qyS++T?p2m!W>wp}N?9HpkVX5sN?ATSAPY9MvgkHwVcwrA zOCy`t58SxGyhri`Pmlem_}2|n>`HY#sxq}xtV=3zsq1@H*D)lC&0Ws&X=OPEMi_qO zET1c7Il!}MU;1aM)6XbNZ9&p2cue-)QeDrgE&w3DT&ipH7oSI6+WS?i>ut}cF6{~{ z)wS*U)TRAmrMm8TK6Pm)8Fl4s?`~ID!Blg$*9U6Y9>#RJ8}ENU-Oy&UQa5&=NxDxZxBi7k%U;ib{zrwYv8tib^k{XwGFm z>&Ci}d|Q;rs0oBY^SSB5X!)j?xD(s}EE7~_v-Q_$ZGcq*rwqxEV^kU<}hm2ClYCLd4+PLajo_x!G-uG_OeEH6h{~}9}V5PaA=ZpGF(Q!N_HXqay`Fz zKswDCZfE7|3`@Plzg5g~nCE4lmyAdsTV$tC!z)zB`q@s)e7tSk$cp{aN}C+Kx&jkL zC#~U{&h${FVa}(N63d@@r=cs_Ssx~hG1(6HBaw@;@Ks1VYs`|L^0w5h9PcIvW7D8H zWmSVFLd>l!vtz3Um{JS8mA=Ojm^wNgpr|UqqwX}+8czY|0&`gZY8N{&5i8t_AzEfpqIsmx|qC|H~@yF^-q2!XDT=7Oba_^ z#45+OYxt#C4rwK?^E2smD^0Nuxl&~)zR7KgrK&O=ghgesRmS0Iyl9&69$FS(2gjOn z#<49}R52xNuz~KQ*1&ZISkTrnD*HjlQN0kfF%2?u*fGC*BAv@T4L)*SEx%7jT*1-w zSexyo%!F`PD9mcioI_ov!4AX`3~V%=Xf}-%b_F!>5ceUVJ{Jh696~^0V|&=)T5UyO zxTd3z;&y~4@f? zAzC$#1Cpn8?u4{7fuU&(LY#%AK5-TjXdUL_YOYeVf!N=^*g4l|%iYunl{JlH082th zt+8`=&^9DH(rK8}kpYOYam1(4L`2LybIQ_2U0C5b4qS+X$Rkc4c4-{O$CGXVH}fbU z^4B`$hOWgF-FZk_ieEyXSPz84nKC+27nZ@}6#c_snNsu%R$3TF@^((6_GIRMIK{>@ zOS?7GY6G&-q)2GkCfv=6032s?x-c`_bL8d*<*H0_q(hFkHiZG>4h&5~Neu(i z7zA!=vdi=h!*>(t*g755CEpD<8gMLH5BMN$P~>X6yjO+Aop0zcJp!#=91XC!yqCLd zZm?N{r6e2lGD-P{#4!#ULMp_s)lo%P*!?Fr=;As@u`FHbBN#o&sp!H=-QEk0jc_!( zNX=?7zrF(*h@^=?I06iJ%yJv`5`iS(AUpKcO^z`k6H$@NXeehs8=;y%>$s3922bOF zV%HY;)uxjis>f;kz`}7Djn-jn1Qr_Z5x`^E8X@vQwPMY=nnpM`MQaR?tBO5sHVX_Q zK_`vd-7Br+aiYYsPqB`(L|LgBwMOCMIMtPpH^ti7+j70F0H5tm3xkC4tyvd7s@x7( zT98c55!mF(trQ?RXyOS%PQqYa_yo&mlnce0=6TMJ&~^)VlL9{rB+L<4zvws~BaO9p zg|`+Pr~nm+1HLS7G!}5EHI_&H87WwBwWsw9wH?%N(_b_PU*W*5I0aN3xMk6j`}E6* z=0k?WbGBFEg)8atI>2I|wh&8lNS|~!7uTY=$XBM`zV1R%drn_B+p-u}$9U+ofV9?D z$)5=~=AsaZNQV?fJ?fb7Q}$-vs-#@ZY3G2USkbKt7Z!{mV>)MxS=+lm3T&y}gU5Hf z2pNSDezPPUyBzPks+B;_9zsQ&;+OEdw$^X|kY55G6*7jPwo%xf3!mnFLcYy-y|s9z z)GirMdqZP-utdZs!6>L0Xg2M0DJ$vjxN|X7nDM;Um06{HQmZJfjTZ*G`Er6F@Q$?M zF&#fIUdcrZVyH_+v!*{t)ux^f(?>+JxEoGS1w%5$$tT7YLr)AM)gTh`_OgG{j;wUp z*J(H@+&W_51VcJZy`8N#K|fv|KC5&prY~zXmna8Z>X{O7Jn*iQ9h$CHbmw1Mo=U1}5`UO0HrB zwrK8pSEqQXR$&1Ru5Sf!F~QUT(9KtDRFv6-H`F1pxto`IrGK^Gh{i@t?#3ogtvBbSD{ z462evw1&&R5!yC1sS%EfK$p6%UopIa7C6U${_USMpSbWaf*8O%OUrIb!H8@wwOcnR zSQ$P$ty2^|KuGB)rLL}Fod~WdatyCM>ZEK$^JY*1*$T2w? z^wCaCgBk%A)=S-F&sf-La5(~+y>_q)_DPALCEx(E2rHJJqamkN>|ZLkU@1hD1hCm) z+)yvPl%|N4*l?m>>OzbDFjxFwTFbFdOQq^nhNv>n3D;)xGow#;{2&6`|g|x;(5-eqe!N^xY z+_4MN)($P&*8L1vN#x*K4^1T`quw@5cxx_{>B%$DDo0%aFUpA_Lc67UN1ggSYFZ0# z6vlQP73ig+ng#%uNxHOESA0UfYYl-!W(}p;o!>*lypV4x!Mu9j{g3FH-`4$1$}c=Z z+Cn$O?H1FDKLUfy>?=+;Op?vafq;Wbss}W2_{Zno_Q?R$IonWe-z0YOu(95#E8}g% zQpBNCbvru_Ylxaj0nH20(|20m%wmbwU~pmkI>E{i(ZBKFE%IR8RhDi!CJE)fU=?$XHF5bTsq4 zb~&yDKv0Y|;~q%oqX4@ir)1d=ZjqUrnLOJFzzfa5GoMI0RS*Txh%$WLV3$;OAP zgLzGXs~OaTM5t(<1;Vf3uhw*n%5e91;ad!M8SbhOU9a=XKEM~JDRj; zn=vnzGyv3*d7B9cA=CCfTHFgN0-5nJ$ewhMkkUT)#EqsVBbY?PH%hVtJCk#H(MoGpX2d0IOq1h#?UVm`+BIhz^^`CfYgBB?xML zR#AWr&nx5g$R3gJp+nHnlZkj|FjJL4LWN-G5GZHtoZCEX;}z#!+a?Jc4q4cu2BNBq z;Hare{Hkx`s7a_Owry*0j^%ldhX&OF=T4`RU6`i~g{>$Lx42*j6O|e-1^aL=TCF>^ z6xxzH7>)NMbnCTD@I6FNPjO?5#iOOCu z&Pk#@OPGXMtOT_#-HUg_{9bP=vmR2i~QR)zd@u;9vmp33+Wx?kp*8y#+9QgrFS&Y!It=YVv0} z;WtEf+gv3JubKQ#L-N4Pe1h0-5^+nFMXkXCF*liG8$%|VU=2>mpz6BrTf>Alg=R!r zrj!bKW6dK5A0m!d%H=-1f<>!7NU<{^0f@mabvF)N4@NrNAGf1J{39KpT6P(NfDlAD z+ctZMHc0L?4SH?n5?W>Ga>c;HwEv7zYdMz{w1=JHjiM!($o1%`z+BEcsDB$MA!)@SU2&1P-6!tkcRE@HY8iuB1B7_L2!$8~>TpXQoqCuw z^>ep=Q7#|y@4M&)kYp<)14PHl=BgT~b)|AW#$lX2#}uKAXHSu%6|Z;1A!FL+K#%%l>7pcYB;i}v6tJ%yqj%}06CD|(o zAK^2$i#C=y#8xj>(l8r`WP_y2`KWDrd#(x>rTu5Cn%wE=a1}9RD*@;~;*Kaj>J}o0 zA64W_53#K-0s9URhx+Gu8%nQdA`YnHQ;W3&(>{jo7itHB9Mp_xub_LBJkdQO zN_3CcvrPA7BW}T}!@U8tIZ?R;J~CA}d!CgT|2~1L@pG z4|SskC`O^$mP<>AVV=vfi=f1GSyEJbhe`Jp8L6Sv<+T|xXvet!?y?@+6kmt(1|0ct zM1xAPxCal&?%9nZeO`9^pP@>d@G5mFas_dr%_duG>J>|Yj5oW7+*v!@TNEN4aM6|@ zOr8AlpaHm=CKP+Dr5TmknrD(67o?GEHV-ZY01m;Mi}A%NkXLBKGU?W}fhL^+Zr6jd z*WW3iptAfMOoq4%U6QsLdVh>G2O$t1S2`st`~fFcr1_aoMH$%T6~XN_>+aQ4yF;Q- zdNjGjb1^0uK=Mtk6*)IDgL5iAAGCbSTScvj4+pl8mIhkw8p1RYPP7Ab(;#_NrV2H- zWp@^<o7+W;XdR0VLhRd-29Zzvwh(Sbx=jL$|b1oM(bx6%Ay>24UB-01kO<^1GXcXM$g0 zRirU<5f@w^9lNd*U9VOcr4Hm``D%s<(0}#KDL6Sr-O;V>CI!M15p8n@|MmU1vQg)jS6)uy&tH9g%kCJ*-}pwd#p&oPuhUs> zqFse2Kk`iFb=ia(kFRFaH7#cczW4-(IVxXCuz@;(TmrTFH|r|VVO4UxAkhxIQ)7ToM3I+ZAu&2 zk&f8s#*XanO|RRSz4+=j=eG@1>V%v%+Zg3>VIthKxFTN^wIa;{=wVMu~*hGW{!ULZytNr zeHGt1`iTd(ztBDkUyi=}+fT*zhL?Bd=p$dc&|U~znK^pj*DCfx{KL%0H~%|(W=Un{ zy|>luS%ZDYX99c1qMG^pA$t_#`npR6i+E|gY6=fOD@57&Ri+@v;?@|dU_KDS*0NKw z4E4h4XqTAQcX>idRzU_{7Q10}Cb81T(WWZD%CaFnoJ^ObJS;I(KnCH;q#;JD zZlji^OWsJ1O1Aonsm^#habtVJzyLx_vSvmv$Gr*%`Z%qWN@TT5U(c4zBEyI&h;2M3 z9t|<8*^3}UH#GSHF2t(Oa$g!nB*+*uRt<S~Af2ca zj6P=i6(VyC1gt-Pese%TT}R*X=O6px{fAqxR?`B1JjK98clnoB!IG=lCLA|pi7h^X zth3Zd&^H>C3eF03tOb@SEvkqz;Dql+C7+*|bvlj0_oLz`q|}~cDf+}}IcIVeWVfRcX|7eQ# zH2OcdO${mB)Kx$YB#nRUvUh#q6}8VEp1bV*8c(vLja&a?tQ{pYfhrDF-QKTJ-32(y zmRhEzmSCS|N&Ubu*-?xnP08|m=~6sEAoR=Px^}=wnh>Hik$e~+f#Wo}p!5=V5B!7^-wI<=1 z+QOOU8bR1GUwT79G-H~HSkSda2#h;LDj4?5_uQ_4SMaViQp?~z6qKaK^dnpZM$H#Q zS(mjT(69>C8E_!n2nh9TEr6L-b6tQ&v}~ub*ur<4A+SOsb3%)b5C+CFg|+nRbXvvEoXL^UOI;RBBTv7L$3%!(?9dHM;aQYJ!MUXkwK;nbwLG@ zD9nn464mGeMq7e_(|cJhae_yyMcG{KS`a6a3`%+=b5fSfNsnZ9_(#YqWih1FF)%{s zc>72Ic)EcAxvy^09)65m!eBvLpIxumppsL(j87YupeR_&*Xm%+HSko9)lXyM9jdg7L|zs9aK|~3(E`$tis@lMNMW5P1v+l*veU7HCFS~8IuWW&&fSywTbKy_UmS!TsEa9`8XD;5DQp=NHIyq2#MFOn?Pb* z6==irR>7HRFx94#HD8B9iFZjlDDv&9P9(tr+Tj%d8ePUpwQiV#64f#sGF8P9*e=0v zam{F`VyY8%{0`c9%i92C(n zGA&2POk9o2I}jnm9Eyv#2kkIkpIwUlin1jeAhRgjC8h@OaFv)oN)XIJt6%lb{TB5x zI-`G8gSf-;x^b{dH`Oi?bo6fgj9+Gg{K zu0hTlA4Wg_ZzvOVJRj20v0r3JG(8J-TGKS_rZviLdIN)EiqtB#-uwnt8}jv1wqbEd zQcOW<^L*JLM5ltIEIh{9565}{#5k;qpQCjX@HUj`XiaBWNM+DP<`Htl5Sb^CUJv>P zgSt+Ce3W1N6qShNx5rgnYZa4c=$>8Y7w>YaVD2WykL1%0bmsvEg-gmop7wJ4z5DfYckz3HM*}Yf3ht3C<2^0@NB8R%jrz{Xm>E0}QG{ zZb46qjB<QTD?j z?5}eAEp4e=K*x?V^Qs2A=0&%rXUch75$2k zZRRsK|CxUx?Nd*G_+20QvUH=%0{idqCR7=u5Fu8Ox=%df5{XBZ@9_tVagoMI~qi8*op(w4) z+~gn*JuDvO)9?rE&f&h6qdRnt?npcbJ(mFDfDRBm5L#8FsgBT`;pCTRBqRgAczGg{ z_l&mHp@R`UQXUEAi*b@|@o~o49G3-Ytgv5Bk=3E~8fxTbwHPJX?nX&I z7DndK6X~>#*5<5&vq1oqh_%t$nn4=LV^Uh$aA51$Y}ajCY?^EroE-*;CotJYbg7|_ zCeBtx0HLjap%UrABr9OEI8@7P8i<{I3S15RK?k(38Rb_uZR8`B9E^3GF#R&5C1C6S zPpIe6MgT}Yi$`QSdfHA!o{pZ0AU{B{z`TTu%nQm?F)s#vL>zjOO~^rckC;^#3gXFM zevUl$nRq^q0oSHwu?N<&*axKfE=>@ID0@9{s0jBqYeCs?(9r_pIydb4LzY!tt6Gp%&a5h?tvG(?|YzIsXp(TG8q|1GP>bP`CCI)8w=TzvDo$p<` z+$RI-1n6=fESJ%rI$eSf`+>}K^c1}}vh;v)bZH;jq99^rq`WRfmV|l%TL($Gc*VK^ z_!gYV?oo_sKf9FR{B9l=o<%hVFb9#f>MQ`IIDRKw;K8`Q(WF_ev^z9D%}IDJkaAzu zHsz;i(^}tUwk5701feVZg*_91P$D7wAleffN>C@VgRH=Tl{)Vai#oXn6?b*;8avz= z9;ItL#8#@=mYCIc<>tZwaVhch@;_Ap+iv}`@cvNM9c~QNEVsIeesxK3k6qVfLCk$0m;plk29!X} z;i`@S9}J53&{ZRy_Yq2z(TVLsO}?<>cJRp>bB6 zo87P&R7+RvFx=!|q#Ln{%ih%7eeuTZ!$#xP>>i%)_0NDh`=EaY!bSR_V51BCH-z{N zYB;pz5k&iIcvAkY_)J}EI_^%7x)5%sOO;X%PPiBC)Vx!VByDp^y5M^Yk2Z*B-ttJ0 z{bQIs!u%-4!dBv|*@IeTCd-|1ennd~+i9y%)$E-vO_R@*2XBqn#oMb;Jn@Qzs4Qt zCxh@Y<6;P0PZC5qn~h6sHWr&T_Ock8jTd6GFwEz{X4TDsY_|NNhs~Bh^sw3Thl0&2 zF*!jtE0ow*l@0hK7N;LPEly91)1Mr1>acNuINjyN>8>A_IKA!o;`9qn0g>j?BTn=5 zesQ{UpHAlb(Tmf2KKuA-ae89nbeC~x#Oba|E=~^&7N`HEEKdJRzc@X(SCe^a;&c$3 zJuOb1Ia3yn|LWrO;n67m5n87oIxSBB7Zs=6u5qk&YJO~QHWt?DkZi|#VV!cJ0A_}) z(;mx_46;u7I?y^TOkr84)=b#7PRlLGI`vJ+Iz^9n=8!C4+A!;s@40m<6V2=+ZMUc- zA0=R4)~Veb@)KvBe#DKYPn_oI{o?dr$2#QzDy;%#9bG`Iz?fE9ARj%BU^nC7{ znmcUIQ;?p6xaw)?`O_yoIY&hN%GoieS4LT^{9k2d^rzAG{K=M{UtB64xxJ}o^@+nzr$w&&Yx3)!AKz3sX4$7Oqd_V^2- zcM?}N$o9SzXAFpLC*z(#ctFag4RzI&g0?|W6RR3+IYwp-S6z5C^V)Uo|`?N1+(X$q;cO)w?R~Ki1ROfhXnj@;TTr@7xSmM zk|Ew^mdY( zb(I^P$l=uyvrl&TtAclDzNDl-e7ZBaN+<2u`IsCHL`NB;8ofdBsr$>coMbRLSl@5a zlRAtuQU;o1#AV0%lLQxj)iNhsF2}p2_+t63#`*p74^7_+l$PSl75mTcA$5sk4;bst z_?VsgXE`HcWgjQ-N@hH{U-LPsh4E|+-66@wo*2+A#W!@x_%mol^?I#VPt1fw0uD>e z$6NYq?d&ErjoW?XHnP5ug_)o%>q=2X`M`CyFrJL^|Fe__8oFw+<`{!+cH7NvWrm?w zCV@yj9)=L{dP-7@EO!dSs3THl+ZK4jb?a8u3`aDG%IM| zus7jzj`$=0Wf8>&zFK6|uybhzC{j!dVG3{)!pM}k%w@nCZSSNCVZ>tC6~roh*&!qx zb!)gHuAavRGTH@{qe#Q0kaAWTM{sx&w*tMWUBfV%6covDboA)`xC-Qt|L*-o3h_W@ z-#tJIfRLX7Z6zREYXOpD({zdf;eh5Yosc&TK=v5C07*VQ0aC9-ksPdTfF$QYApQVI zBmS8HNF#jZi8Bz}#|}s`xIxdH*++u7kPQhx?DRII)6OI#Ne@3uWN9?o7`9(j(>a3C zj+*2T6gwgwlbjr)I~|RZpZfdzNK<01wDTv*8_}>KR=M2L4-E{lBhsED0RtgL%KV|@ zz-fZv>r6Wh(ax?Sk%#b^cMdE03tUA+sE#Cn&C+F(E-UF83AQ-zi^M{29M5;ksW46D zbs=Xj!mMt|5ofRP#HsmFr6uF+NyykvaVE9)#K)uAD-0ycHZ%JZcXB*(ek!_FG@c6N zBG3Uu-dj%po;1u*czqdqmx$46=K%~Y9dm8~nLQBwWHx&$l{%^_ z6&&F6!OxRsfEnwbAtUv#en>vq^~(eC7EKpm@RpU2Et~{pEo(lsmJu6jnR!et`_x3G z#!ORN28ui5EB3}&rYo@;)MF1X-Wy-Q?gG&f3QI0#9M3jmGmcO4mLtf7f>5fD6~$oq zEFbLFg9pnx=;=O(*+q^I7%%-z=?`RAAx!q+7sdH)k3l)4W%9L2S*WyIYF$# zX5@Jq{_nAJ@MIX+E=*Rc|SqF z&J&ZIck}Q(&_Sv&dY30R(k`WxXn4ythtvBy45mvuv*KS)=5J&G? zqxHNg7Udu!3wKDIQcQhPr?>A-uAsNfnF++6FNFYn5Gi?WL!np#k1#ehRa1nC)y7|^ zIz8n^0sVey6^}Nn>LlamD&8{xA$iShl!+YiII5>#BkCvp14y65D;icCWQ+pzsp(2b z!mIc!AmIv8*7!J^-^FnnNEN$ursE__ijA|Lo+P`a53pea! zcjI#i&zPK93N^N%FZ-lm@l6`{66Zl~UP2+gwl?N734)GKGrnje?B7;p+U>ccSb5PEAQjVCt)2pe}9G zFte*?nnTnK8xt~yg1ytoO;wb-gbT7{ODQz<>hu!RgiBFI)6)t`Nezn($sveXGRZ|s zA(5qPopY#!I!1i7$pJ80NSVrrIYcy|fO?_6sivkN&Z29QK4g|$rs-eK+VRkccO6DM zY|#u%(+HWvDPA9?od3=TP39X=-nxd{HphFhy5Q^->X3e*0?a7f>zJ3e4pSgyBmb#D z9#K6BtZ(4e;IckhySZ!q8&s+vy^#-x5t*AqM|$3oHrk@iF9-V#3&T_2m|CE_*0p)< zAljtbbv4a&K$~_Cw2oEt?#)cXp2m@MjeCR%7on`@b3ghHyrV-TB22j+0% zZp(A;rbE$-X3xyQ#K=sGp;_2q&noJ&Y=dS zM@4H5V?xW%=C9?X$kkuiKxa@ROl9EwIxBYp{j|fCrRR^gVa0|m(E)u}1`O@x>-okZ z#i>`InnBWjGe7^vk%99pv6 zhO(nORReBy`VeT0>$-WYQ+ltc@WO3G-(u8X6tR(=m} zru{}Xi@X$&M$=Y%rPk?78(-Clab&y_0*2AbHQsr?#v5R;+T_p=1O)!uLZ%b0QR`}| z+q{BKB_oXY1gh>dI^FE;ReJ6q+gwsCUqpvXiXBX)SS_XDIL9MlH=-j5vU@ELMUwVN zE9^ia=+UAnoe*Ivaug`T7HCpn%X`stMLCGi<3OnIujW?h>+gNZ)WymePkzT ztysY=*s$_i(C`d&%J3a#gRqW+fQ)pC=ZG}Gz$)81(6Qd2V3{pU1A(u?J0z?_NskxO zKb(b}jDSq#@t*lg25Lg7M(@%(qqln16&7hmd8cY3!MC*{R}SL+XZJ6wfylxC5Y3Zt zam)GVZ`rzS+m>zH8qMu5XtlS$ptEg$e%nlUTd%)m+x%eb)~&NCjY};|@79u#94?P6 z^hmC)oU!Q#Bme!igjXcedLW%0TOG#x^|n1|SZ+tF2K&Ihk;V%_q<=M-EUofJD5AMI z|7=Z3BIEpFeqVCgw!uqkQM`S7Qs26rZf)JV-T!;R3$|}>_yd2`)B#ULE7{@nzs_2F zc18UL(M$T9dRx?s6;Bs?=jmxEv(Ve@cf%T`dz-x5+}L9dq^K3oismXP@oquo0m_>d z*)K$YGq#>k=;QM|0s?QIe8Q6W?)vI7lx0Ec_1uTqYT8$nVJwCsEcI0_1=8$y*Z8-^ zo0BbTalE79k)%@y-b7 z&9Pqsh+Dfw@Ev>BPo?HhYtT@?lSy`Vrkq*_&PR~3RLU{sV^ z0a?Qk6*}~b3JiIMDsS`ddiU=788W57R2%&B*;2g13)F;Elt(R-x^Zey_k=0f_)P z;PokRz#{6B{*2ci9*KObLdXPV%al>)Q_gSDlfD!d?HB6wH_(Smz)M+MaDYx(Wb8#< zXUUk*v2SV0d$C;xI#D{%E9hXni?LM*A!?&45N%OzqC+Lwh2Bz0HJI?sq(JfY*r=xs zu%M0c?lRAXA(ud)mZuh;*VOXhYHHD=HL2ynl3J`7)MCF-i@zBoii%pik&=umYAKrX z0&7r0U@ypbu?QZ(fS)}R)Dxjwa6W!9mRT0(Cps3kmGNi9`Z3Tmn9 zE2yO^0U@ypbu?QZ(fS)}R)Dxjwa6 zW!9mRT0(Cps3kmGNi9`Z3Tmn9E2yO^0U@ypbu?QZ{A1Sc6*p>-DL{Dzgri)Dn6-K`r6gN@}UPQcz1(UqLNZ8K;)ADhI;z zpISb@np*T|O=|gkNi9|ki#IZbT8gH;z#7!zFW09QtIRr7QcLLV1hs@` zE2*XGN{dsvHQ8U}RbN3ZRT-z2vML9{^PgI93s|{=)}uA4 zpca3*KDAh7)}fMGLT@LiB|KY6Emcpca3*KDAh7 z)}fMGLT@LiB|KY6EmcTxfiPkT^Rec4uRAro6%Bma)&wpz9!fI;Kqcy4J3njH!F_2@wP>a8rN-f^V6ly7& z@&ap6i@#i-TC6hbP)RMJw-eM7o~@*osw)MxRP`0qQk8LPDXVfIIJLa5A9ZwgYzVnJ z{RVE%5y9+pt6_UwThA|}e2>k3Mft3%CV#t1%FzjTJ-^Z3wfT})mB-o;f2t6|a7+?2m$YsOchY@@NB{J>Z@3?!EZl*Hpc{ z+xN=_pq3M6Nu6QdKY)7fTiq5*#xq@5*n;KAjJ8t7K(<)WdM|gJmCfXT3itT z+0x!bA$1PC*Z38Hdp&@|5i}g6SOPe8=L0$EYGnDo;69DFzdT_CZedtnnq1x)u+^Jc z0dfPR;O+nfl#zBeJ}3YhG?&g4nz#rT(DXnnJRu#LO+j;p*A9XL*ehNaQ6FQ#cDfk@ zwxi>$fE_@*v^NeQ-d!T#%z@273SbNF0oZ~&4z_~(T?O1bzCX&~ozx|jxdHCR>Hoec zXS=dit)L{NR9tu^*S}sAY*8V5`=4v_Pz@Sgr$6L7v^upkG*r=jfn)KcA^AJR%@FCK zJFsm1pi}kyf?!HhT6q` z!kw{jWNf%=qXj4$XX1~k(c-l(pj=6x9<43&QIn7=*z~iTRZ1R^_FKmd4Nr!)dop-* zWG(+d=rACGW6TlEpl7bi2sHCukDSGmK$MAyQl2t)605V9Jju+>QEiow_Ci-GT?QAc<$Vr@5=zd$9S0@Xwn}2s9f`$AKhd1J3i`bdPvGUXB z$FU#A^Eg2}gu9(?mh#@WJUq40i18_6K5FGJULM4q89>x@VhX{sZN>{8EnE->wh$f zWTs;7<7J665F?b}z zD`;4lo&aR>S}r!$5u_*)jGQ50oiw21?xN5OBn?F!j1ELcvBE`1oUB`d(S(;pDmxhK zV_;;6P2$;AJH4FsUJ{?&h6DKN;jZ{MzjJ>rIMGIV>u~;e)x9KIKC4SCHJ4CRpgSt7G@nI%?7#Bn9&CFY8FXAB*{a zQyt$wR>$|RQ3rIVVC=Cvws;-e^I!hx2J6sN4g2St%YJ0Op4kBteSum6lSq!{UmU;3 zbN$b&djr_!vZKcC&iuK#8JnW&(*_fa2qeny`_CdA$sbJ{uQp+W<{ay0@UO;~zqQde1K01C6pq}9V`)ak9*TljA|MBX*^?&Oc{YR2W zbd3RNmp8hbM*pI!#DMhIIuXG~uy z?-^56)CQrARd>j%yPWF2Q5FYeRQD!`qpY6lZYuAItsxu^g;wf8!xusgEs0D5k})Ny z(zX(Rnw*Uos-2dzivl4=9igh}pUy~BxS$Y!J#NtwclDx1$yFHC*efXwYT_jfYCvMD zp$(OD^$dLaCsY_M6Gz+Y&UE5dlR0^lS?8WI0Y@*fY|#M-B0P!0lk_(hF6p1A$c&@X zYzOh&fnt|Ig1C4_=|2rM6)M|a2w_*)7{JGQeJp|u)i5= zUBja6tAS>XL9^DEw0WU)3tyTOw(D01``fuJmhYMyXm7|OSk0qNG%oGGP+&nxM{TdC z4=SQuvX2}4t+V8&w6u|EIcr?j-`;zH+OdlGwf2f8__ce3*EWqUWpYAm(M7xsb(L1G z>u>9Aw=k3}xv)lf7x1iYgKT2%WQx1AzqNOMaogXbYZhSX-$j@7&+idEGG&lkiXPC> zse|0A{%?GcYSfWaADsq6bx#=)&==4|kXqNHQBdecGW-B?%)`>}EbNlogZ)L1QgJYf zKX?k^`Mn~UxHm8^h$+&^daz4)wFmnP9^+D&4Fn_wulStJ1-gva9G=L|Vs*c%ZKmnRg1*6RL159EnGE> zQ4PRtFxtD(+l=`K`yDrW+uf!8HZ348ArJnh!c@B}GsSuhp;xc`FmZ!nMJ~gT=$?Mj zzxDZAr91`-DM63;n|@hH2{b#5Xw#^77$Y}o@e$-q!km!+fUUfP3lRvcG(R5!4zdv; zc_RCbU>p@#rXQ~~;w-xP<*55qKTeO-m8<4t!}H-8KVf~A1*AuQhmoSm0cp?72@t5Y zgGx(iqAZ3=Yr<^Q^SibntgJgjL3hVtCeS!P%Axi3>lA-ZJq<;2HyO)Fq5mG5DkPCb z!dObC4Y7gpMES1~7)%R{;v*88)Y8(om<^C3mS@9_L&~!;Z?b=sD$mB8uIr;tHczN( zlFd&^q_b#nw5Z$BLbmwE(YzAr%vS;ZD-!9Ux@N^8e?9irYb^a%Y zo2ZdQI`cQvy(Yn(n=B?iQJL`!8>pu!Ff~$9Wo-ti%`f}OwWx^>Ze!Bd45b@^%*$wf zOW;3CX|rI^V)~8&qqVoB#nCnq&DPNqbfrBU5MsSd|1)T_v@Z)XK>41*yk8>EcyKJy zN25i1rah>m$!L?Mg`v94zOrmC_K_jMiY6I_uuPh562p{t zroT#%qXJZ#ct_Qude6OwyV^YxL9J-#OZUobgT0K@N<2QIIA#MGD7Pl-1jJfSgoJ=5 z%Qq%ju|-C_rp)AIp-A5=h3Ktr54)T%2BXylofn=71DN-yk(WRYA6vZ+} zUW}aM9&&WsWi0a5x}dn{&}--e-q?Z!^2Mz9wn4dJ*XJUMdr>s~69>fFZx!{GRU~$` zk2kkB%=*l-Dt(WL_UBg+EjCP^iempm0z;tpUEv2Zvhf=0(=ppLJ61fBtzfJvnXC6E zPpEE52qZ&%7%5&$|D9KNGzs-B#kV9T+3(^Ed2K&<*H3V#korKthi+F0=gTBaB! z3Yy_dJ`l=TR!Ch>->CE&CmV_=|C_{QX^cGG$UmtR-?h+H)VHsdUL;jS=BHPCqUaIS zG8VQu7K8ffvJNYT0R&1AgZgBb^uMvx9q6O2O+G0)B(Fq& zLXLMrZX%}6dYC~`e zRJm1J6S;}fRk?{IYiL1J^hk?R84)Zu5xW}*Gq;RLi!pl#57|TB%J3(16S1@=H<7fR zoMo^HOLb5Q<3^3K+(gR0F=W3ZYb+}jD3y{0g&bnT4r&z}IHbzq4&+Fav!tr^Q7cRD z9QCgq&9De%8(UdK#?yj~QqTE9t3aDL`nt(a#-uzyEpnJm`N9X9rJm^pU5#?ddU-(- z(E$lcS+DcwdcJW;(Gt@2!kYAvzOwn$Eej0eS5KBHXNh3+)N>QjGdAjOSRU5%s{+CX z2xDqMsPc|c*qy3rW-a}o+d-goTc{8XGE6}@YZSSO>`n)?P39(2Qx4;iDQYBtDl*KN zy4KP3<++JW=~04@;y&vH^rJf&IoRm%n_@|=wlR(st;w&+E%>|`Ha%C7cmO=~q>5XH znqn&MDV-35zz&Y#=Wsres|YqkTP$)FiT&_Wz?PY@M@+6FcmeB&79(wjqSlN*7L8H$ zb_;DK%2mYm;%Fx1Dk6D9)=@TVzF@O)b!OTW%56eJBB!ijXweoUz7o9WpgDJ^Tiky zE5GnKr+9`faG8+8Ym8EjNN29)A!E#pcv1UGs_{|5@y4m-c`B#{-P{z{;vU^xUMJ;y zRaQ}xG;+&ntorIhqhilr#8w5VhqD=(S)&YnOz8JkNj8RR5%L#N8My9BO_Km-X$tB5 z?^60AgR)e7IK?(|J&$D@ZGfr%WG`yT|L|yxj2rXp2qx0ZlJDjZn81$HpGB$)5G4Of z4*>_67khAI{Zzw?vsy%~TgGUA_q8*ZawL=`YPOkqsH6@>r-BSPl59H^P`CFg#_xcD4Zb zk>H?%dUpzdz=lXGMDm{aHR;n%-YY58JCkJnf0^4bW5-PevM`uAXA+?;0OS z@#rc&Nq=`%uOEx>t>E`jK6nLShS!$O!m)G>Sm6buMp@_LA+TZ!JKcW*UqvX%5hetZ z!pd(L{AdQ@+5yE4)}k}%!H&k{Cn{2pQxqxgI-)+qWrPqj@s5Cdb5oQ5G*`d{0GKN z`gXCrzzs^)^PA$AM?Ic` za_Tr>>)slYU-{T=D>54P)Z>-^Xh|{{P{|<84@elcz^B!R;|=e# z<~FJ#?Iu;?ZI8-)nX!a*sl)g9F?l`KJ#-+_`@a$=rq$i+d-p`URrlKDAYIkH&Sdw5 zyYcRI*6Ut2GsHhed$Q0|)_%pPv2E1744Czlylxv%A=M}2xr}~N>au>F136d}N$u&T zpW93i^?4VC=p#-qBwrr#fu&bel4xdOW;4t~eLjcA}Sy6b!WWSgK52HJfYW}Whc6Eeo(KS;B3eP?{#OQ*ZrxzHkJ#_5PID& zdfi{yYhWpwB02tL+h8=n)nGt%uJ$Dt@5)9qIY-IYRE_pV~ISd^o{GGv>$ zA^DIUP_QYIe__+(jrxPxbZ&lO(Oes(Lk-fK7fefJJHb3Ddh-3ZH8pcKm_|Dg)NEB9 zvk)1zr9111+}!cwsHq0oG*I+YeXP}!xlHRj&0bmY32KFZ0%lMUQ+`%7iaRFQT9tW}`M#FlQoJ*d zjyD!}X03Zuac6n^-dx-fB2+a;=u9m?R=grgD{SJ+?98=og^rr(A6cjbM+<>W)5kch zNqdKj*8tfDN(Dr|-RX6vxL1qs4+UXL8C}{_=pgCZzfxo%a z+87}%V+VO6i zj&Rf?cxA$#Va=QWOaU%7u`5WvZ;qRvEnZDT(AcY6i&yQjUY>a$Y2+;>46H|5Qmp7k z*k=nqvbL@?9@26<;ItEP+ADC{9vMz``V6pd0Eo63YFZ^ulahJHaBBQBhEuVS;}k3| zYw0Rv%2>$HgdSY-wSZuZc?L|Rk;9%M0!|W=&<9w>v4S1uCaSp8&%@)k}d+12bN!(*TvmJ z@onX(S7TfIO^=%|-jf4-@tB}EM2q<;**|R_+W0dvwreBGMfLTVK9c+e9v!UorYEMW+2ZPw&?7UwgoULvHJ=N^eDhQ?9Dxr}04Ruq%t zSe&0amFEx+Ss?EZ7Nja;y7R2P*JiO z;|;r^qU1D=^M$EJ8Nb;f>1$mbAQ5t$&rdCSVa<5292OI2oNrxS)IFL~>?IomkL`D2 z|6hSN#|)V5gWZHtn?d`11`_srHfi&pRD$>D@kitYlv zBa|IgQ#W8`HTN%jfQUtC9+f9b?-zL3?nc-u)^d4NV+K`n-8i2+%O>QFwtf>9dOWC_ zura`q`>{&xVDh9AbZqU8j+m_pk)oec>cU8XmZk}2Txc1B9@X%}*~bIOW4FGRO(2mL zeSy_gJE&@wyuc1Gka+>lSdl`YqhpY1&Gd8V5@v+ZvXI@1VI5dO8bXlzBUo!I<7KrU zuwMN@U|cb#ffMZgVw$ja+%|MHHSN4U>c!!J1W42cmanY6Hg`Scm9j()~@ zqpGeTFsYsCm-`m5mt!8BN}{~SZjF_(dS8$zP(*C4DSt{rwykFAAe6W5Bq48%kQ<<; zVd`WcW0*In44N;(o~d@6=`SpY&Vzs*>(3d+r70EbA1uU;U0Lw+BG}QE%EMp`f zuyp1)W>&R?!MOAZy`>nIw>UpUe=^WSdgF$Nl4d(P8H@&&JUXMq*?bS)nJlFEH<)kTZ z&vvT9Gcbw^mh}I0Lx17BP`NuiFwL98v}Q7jKTvveSTP(K>=$nie*>cz-Wonm7oHkb8M;PSLfK+~ z?y2#Ab>m*?snMxCHL!0h%(ji4MTa+aB%NdZ;1>$f#K_NaPmLKfTOrGfQ=~Y9rts7V zr%0Jul+A-RJvDfMS$L(VMvt?UWN&1-gr^2~Y-CRH)L=y;bD(yD$M>HLPYoZq zd1{0)ouQ{jeLYW&y6Av);xZCRr$`l^8gvWd!RiU%&6mN?>(MO1a!h-#&$MqPXCK$R^;CU%|2 zxm2s|vEKH8r49*0SXQ1GRqw|=G4wRFJ?V*oCmi@1s)o`jvWK6x%n_rAB^G;g6P_5b z*-B3gxr^j%(aRG9k|+E``y+BH5eFJ022Tv$$`eB>ze-l8M#&SSeFmNwBA4Ka0kh~F zH1ouW*Yw1YgM(*+l)R@0{TxH$)En(u~bS<^i+_#&>Tbh;-7YjC!C z#yv3@nw=aq;fZ1Aw;5IVsASnUDk(fMj9O&w2-H&UAsA-aIRF?Fo)*}4(IByGpU%^Q z!^vbylK|~qlP?_3U#G*c{IICV4~v40#+)rW?ribkAfEL^8jA5W1=~{K&>&|`-Sn1E z)bcm*C;d>WRj>5bi$|um9vU^Y0UTJSL z(sz5~qVELDx9HnCu}{5{MOCbWTR$uX@bRxjzc01|aZ-HfsWeHShbg6J!4T-*6ZK?~b2HW({Li?fn!ys?ARNOBx7g)vPy&>)OxnID`JLeWnfOz!k(Z22zcF5~|Q;mu@i; zmyFUX8O2C^ap*!fFw2|^Lge8Xvjn8WZq9u64WdF>DvSoS_UBG(f8@8SBGUo(gv?xu z*|D=#`EI6h}DHXJC33e7%>U^YW(XSW%bILsA?nQ(N}D}CX_ z*26U1a4BMGSLCGJG$tOPNm$?QCxIrRUn=g>yy}j$`L!sXY4eVfTHHbq!HW%@Ljqfi zSxoJ?XlBM1?N z)dupvXvJ5OF}BV!$%E@0IAn|^mvaj^Rgb)>qN2<3KJPNaa*=gF+iQ|e>Mj8fxGw(u zxnVCIon2NelJ1{tPT|c3hLcbi)gr_m0O9ja#Oekl2u$uuS1v zrOEY7EmO~E3=ut03=uyYwM@xl!j~}L%^0HTmZ^=z5Mh~GDUu(o1(_^4H6U{;l>cDu zETpoJ-HcOOwgI?*P~%jBq73X!(p7;r<5F2qgK_GfBi_CIo+Cjn%PFohPoea$GEcE` zg-YR_(mWN6C6neUmJQR*Q-Uml`9V3KY@L+MRe#4Nvz|^hM?Rb8%l29kFr> z41qq6nw$=9@^U!`I}nf}H;%HNiPLwGEnz7>TF*Zw4-YM=i8mnTnI-h?(t^Geg)FHk zp?e5T;nD5CB0JEdx_ppgcS~s0^ShcXQ69I?^V=~)Qu;1ca8f2>e(8y2Ox4OJ_NaxU zb9zq52rlh0OGW-Y@V*eKV0F?(-UDWfFJhtKh0DIO-$M;W0Ee$ZG)S2`?7OYHAOIjr ze5IZ)4sOc`%G(=CLLE<2H_a322q)pZc3+Qar!YWB00ra&X0xF#G82 zVq^w|yP5?Ig4GY&NpI>Sd$CK3oS#YrI=~!E2BJWqPkb7Loi!ZmP>WF^^pt)~lp)MU z>Aw_okJd@ao8*rh3Z`HZex8nvzrgKOeuLxKP|>?=@o#u54FKaExUcHKtDjZ}{z`fJ zl>>N;9EuJ=+9DhS8rM6MM`21CN^F7-CR@hrP_rFkfB-Xj%$FwhB!_JII}TgSp0@xk zSwWBLH^BOsAPD*L7gBa2&QHGa6Se%MJd(7!<4xQ=Dk1h|9oukPcvoMlvb*)=6KDP9 zQ{|U+rUIE$-g?fQ^6WFG5KA~_PT?+JIt#@;Mk~{PEJl}LBKika+{3Q&3KPY+;y$*k zd}T1FT=@@XP64WD?G~syskB$7pK+!Aw0p=)XQH#OwTHa)95knZE+@^?E9|Q&@vIg0 zXLJu)G*Id5#%Ir+*N{f(tr_JG??lyE~v2 zV^9<2@L5$#XzE-0wNcaW;(#YSC^ev`{xGt}^x4X9@@E1ou&jN9{9pIFXDu&}C!8`7 zy2Ub#)s}x=BSnj}NjW%We7Tcv_SPaUZ5lF4eGkE{D;rflGy!f(qfoWndDm-H&Ua;_ z#~a?Lv}Eys!`B(vWsvmh9jB2&#`7W;LxL}P3u-TZRmVCqNOng_9<6l?8I-VdtY=y= zy04Wv8b}5i-<@6t>0B=x(kdAQMLr!Fq^?etLE|qbWYGAF2^lp0qLe{;xKSCT0p4e+ z-Og@S`OLXl1+IOL%ql+)vc+i|omEzq|L=TO`QN6@DkqCsg^M$oRZgCpRVJshb!QbI zW>dxLS!J3GIybA7n(g=;@ee+$d^>C^oWiYj%}fJ1tRp=*y(*V<6VDU)c85p2OFu;BC6<_`74$^yQi$@slWbh`j}}^R`$Z8p29bniM4tP zBf9^uiuPB1$MI@f(HI!i*yM*_TKhxtELD+CArgso8i214Q5xm*brDdhv&!>WJv1r# z>lxg4d4UTIY{crZIKmd80(f``F@Rb%fDWy~gbQ?48!F*?DEk~5!1{&@z@KoT%Zn6? z1q#$G-|8t9UYyC@%|HR*^G9t&hq73peH9NJB3BqB!7>Qd0anCJ8KUxUmE~C#s{C7c zaSgvL+g_t~ogS{ROWfJ^#8=y;4&}RQyi!~M(WCg|k%IJB4gvhML!@Ad0?Guuomw0G zP#x=p@|#Jtod(}_KBR|@2`&{1Nft(&DCip244{DSs?2~~^yZF&`UE=g6hN0%MA$b< zTFFK_l}g10xpiqDvZ?}9NiU~;G{vcUuuVDM3Pul}7DfoDiZg3=B*(Sdl9*D_@nU#W z#wB@iIza(3tUEF==3>X>#KqziIaI5AX(c$IvKno1qD3xQp=-blr{o8kCEd^T ziUUf|#8meC=N2{Db7E1$Y?}U5Sky#on952U5T-SGEUYRY7B!Sx!&GK(WHYHuWwHnt z=Bvt7ro=;|PGu_VRHiayLS-tWh?&ZGe`2bs%#3q|sm$7nDpT2bD>9XZR%9xJ87EpX zQyK3IQyKOp`zL$w-}I)eX6`IjGhCd(YUa+ zqLr^@BU{5Tw?P}(gki3*k;yPu*vNp`8mpOU!spy-=Gn2DIlJkE)T8HiUQmeEuzHTa zm{^~Vzc60?ZtuLDn@-MtI(hQkbn>j6PNoT;bJNLlc{=&*x#{G&vpV5`2-|Ym=;~xu z`TtH=Ctsg7o!nKdPPjOO)yZAwRwt8tE$gmMfY=(VlWD@|+;s9>o=zS}c`i>UpF205oSROb@6*ZOo|{gdmD9;I;d5>}d3H=E zZy!YUDy4tCf9-#HQ@$28yo0`=BW9EzB+2{k5Y`(%UWVN?ypCR0Q<^P{EWw{h*}o&K z15a6|DlWcd7kcc8^i?>NtK~;=+mF)!sO-zQiE&9{XUl9ArDTe?tlexCJ_GgRHNruY zqi|HtK|j1RqRv}%C>9Y3_LSSMO@7cD%1ie{{aEV-nw z5Pi97$?uIUlj-M_(N9hynlN~yX8)YKFle&9Vd6AEspoiYb)pq zUqLEW&`A1l!=qU2272E>^#&!mK-KsjIGQt&2U)B)WC3vfAtRZ?kRP@X8el?8(7So1 zae_kuN`_YQ^=asRtkh}fJ(Q}IQ6j?L4$+a4*jLEU8t|hfu`dvZY^aXEDbF$@Zyvpd zV$HpefS{GV4j2fMWhKSn_*k_`_6@QcD*bECgu$bbji^PL;h`QOt*7Lb{I>NgGWMem z$YIFUY;i`3VT@8R2p)M2enWa!3MqAnXt>*pp5=I|n{;mL8oJEL$8Zq!K8gk_M<4bSkJQYjTp47}&@sDZs{H zEc6FrM0EeU%Sksb zXu`Z#%zE-wW!4+TJeLnp@jT3i9kA2vflc2+qHX6ps{u~jgk*yTMJjc2BzH5ih9 zZ^KuXR<7%B<5(aKK-pJF4GcVM+e9ziiO(+WZ?!Xi?6$u}*C;RPH#v^=d>tJ$Wsq{X zKJ6g4s{b1wq#AYP)IC&gI)>^V%Nt$>G+nCPw06jzg7(792$iKaX+z1Y9;UxG2**4? zdc>}MQ#n&O#wQZJLH|HxR%hOX`+k4yMlZY4UW%6;-DviQfcSO%s9N2J6R}d^$B*3L z5oa;{T_<#4y^nNwj%1rY`bKf!!+Ia}#y22Ef3eyYJYx~^|f zn{*vt2b6DP&6J$19TFrt6|K$nN~6>;1e-D=36g#}vIi3U!sC~t?l-!=6gojpqBVnJ z3JEt|`nw<>JG;yT`IFM1a{dy!>I{LT9Us!Wr0f(u`7y37Wq`a!@s@rW+~#YZ9jmIT zJ2)k{OE4>9-6CyhQ_!UHm;=xG11(!pD7@iyHr?fW69Pz<;zL7&@L2mge(z|c#w~gw z|21U=u8aucntkY9y-;3&-JF^VCda@@+>X1LjUpfx#r(~R@y7XM z_MiknEWA>JfyN=q$U$W3%&iW=y0iAIB+jxiMMIF&R2a_LL~Dd+}3 zqV@=$I(SBX;9#*s{TW^Zw=p=ccwK;X49*VLF*rLW&H~N>x*T~Lpu3}l{h7mA=nrrf z$OD`Oa+ahb^ScU=PaH-HpsNYVxclE1U?`}bEBiQtr4U7d^EC}k`x=2LPB>)ru8(yp z<%i1ZoHv}P0DQ6PrH{yNfz1%5zv%Gb#G1{ES3D?LRj~|1VA#{jWVI`k7NI!LYvQUl)+)ME{wHe&g;9iT>BX`YT2M z=O;z~YtLTvTR%1+`mNk^N%RYB8xs90_$(9scZ`evYoB4!PvvJM`f2~UDf;i2F8Z%M zC;HD&^sfuZbE5xDM89$OhD84lPZ9l(O^W_&&tCLfKQpONUN{pY6Wf8TV`|KsOG{~3z@bpd%! z^q-07H}2k$=>OMKME{>nivAxzd(m(G*nsG_a?d5vFR*P$^sC@h(f^wZNsrT+qSq75 zae|{%8$@$7bS?_sNHHEnjr^1{b>eIItybaV8UIwgKWkiAI~8+MrX5*B$Ogxb@RtC! zhB658;sN;<`roZQJZ7i6Bx_Zz^PZ>FQKyIw9;`3n>%mCr5@lFp1G2u6T4&Bah{m^v%x_wCT*0Man{^@d(Ck zx{)8}5Y~hScP58kKb*_o=tY$q-rl`5sSW4t?Ql+vQhYF+%Nj3D4h`oO@T04;_=%6& zBWvpCR2$C6ywr&sjlzr3ocS758(%z{#7T~eCzZ6FXe)d=@wnr{fJ+-Hlj%TMez-Zs2Wt4qcsM7|T^)6q zTR(>uyhIUTblf}6=g;nrTR-WzV32d37JuDQ)SN>NzmHOaqHQf{E@p9G)H5c zfIW&uZGs0m6XGL?1F)iwh$*ojA%4d1XhgaA`}(O3dl`+_hlBLn^CJqsJbGWti`iky zd`!e*)>YkYuwKh%wsH7b#La-i&-6RP;b;7+ofCFXc;JX$+z|@h9tzzS3LV!y?{C#_ zlNx)}cuY5a&M?()k26g9RgJILZK&{dUgQQZ@meo%4R=&_b=E$>aaL^}0>36eekk?; zHydQfhCG_7?@#t;ovibHj53dJIGo?rl2h-nlg;4hKAKTP2{ACu{4Pn35eJbWIa=wb z`dN$PV}pS31Jv#%%7y5Boyi0k1T8 z7>syVy07dj?h&jB7a&xfYNp?rA9ZxN++D4#6HvpipK}c|IHwxm3qKv<2Uxy5I>Bjl zy1gAq!dH9Z2gr0R96cBd!&U|i^Q$tDpbflB7o%Z6*{>$;5Luc`LX-SjlU4ly9O_7h z&1@#?s~dfS#1yFi03dLn^#EfxeS0^XVPrVXPQIfm-gVbSh6ou5(1g(?hmYMA!3=uT zy9O8G{QVsBJOEf4f0Ez9oiT?Bn4~hS1f1X>>(O5B;=2ZNjRab`;tXyY(Cu3|1zZ=1 z@B{G=f;b%?mOiq;F9$Y!khsHo`fD@Xar7Hub`aow^1+p0xV0e}jC)9+ zM>48k`}4oDxc5APL@Ba=nfcH}J@UDDby?re4|GYzSrw)R+=?6wQ@S(+W>QAv8p4y1 zfE>HS%)6+z5qt>E@Z>9aZ#S#k5Q(7`Zn%`6^sPsK8=PuD^19|{jy@NP2C_{$0ik%n zJ9OJYi{H37N6-!4{5p;x8rGn+TKaV@St&AD_GB!K(9`p^&fs%OpDzyWaLt9iaoU%w&;7clxfr#+c3M{7lYD=LM&M z-bohr#7OCIhd$XExA$^TOd})Cf&1{n95*Dm3iHtE@>BZV{DQzlf_V?P@nySMUTF0g%7trCLVYT8b}E z-v=pOSgT3DdTG)gzSzr&{Ttbf|7YeK;y}bry-RfB?DFt?u4UeB=Kt!SQly_ZZ^*jWm4#voG4(cYxXy~cmN|iGzn}Mb&@{@VwYKXM zOAa0D))L*SE0n0=gdtg|P;PaQD@`Ch9t>VqYfFpi=kqt9>7J^Q0`$UKQZ{-WT|avC z{@SIAEo-KC_Vg=tgnI30Vya?h)^x);qd~`@l@^m;ntnJ9P4ENDg0}R8^j1+7Vc=8+ zSOLV#YFFf6fA=TJs>wU>k>7I%H%EW@lYag<#9w#f2S5;MzDrVr&jWEVF~Sc7vPQAV zT2S0WIaL0#XMhniVD{*!Uy5uJ;PyB2diALxNd{xB8>EyEuowU)89gxHk1P zD}pM?@==HVO!0%gZjVa-x`SY6=kfQOIu8D46v{!rhG{knC&wt~TS zA5`1^m$7k`0$Ina?y6XH-+JHR7YdQ$I4p#{r0gmarHVGkO0N(9P z+S0KIQ`{)c52n%lU5Djv%Uo-*kk}ib~>uIYNt}Q*ofMk zsvAz#9QGQhT5MENwKqXaM%8trYLST(H9#?pE)e*1!l2 zzRQ+J^L#h2dKR;7gp3VGUVWd(eLX%OeZIxBhonUCux`gP0S;ZFFp5@md6dhyTc34D z6lL*(dL-BZV#`Z;a{+;E4g|M z@LdiklYoTfmrV_YgEYYmYiBRT_sF<4pnPN{554Z4(_#VE9UoC}( zXjr0s{@h_}rdtORDofHdmf{PB1II`gXmz!8WZ9`>oh3|=d819S<)+96tbsvMd&*48 z6w(ee>1LNI=M^*Qd74Q#OR9Jwn@KmDR8i5_UPiY!XXk~Plrra4b0Brv9B9QSq{WMv z1^>VHC7K2|K?O`lgM1qkT^^|!{y_@ykvyV>qtRvk+SWYQWonlM(Cg-C{jzP{6j*eb zbdY14q?SX?wQQ5Ln0lVr(z*)=i-*d8AyY?jFBrZbhLYA>uQ7>B7_%VV8{Y$pmg19< zChtgUydm=e>l8h)9?=QCpg%uwEv2q|S?yDX*t~aR{(crWdWxFJ>iVx|{T&k6N?}3CwA9fc z^$n{()|-*)fIJ{YCl3O1rD!!w(Xs>33-XZKfubdwm?>I}%oMGn(1fDZaPp9HCPmB2 zG*^>{>1Ed;He5xDCDrNOYt$MGP5v#z?iZ1OvXZ&qbaU zJkt=J)bo4bCWAvZe1XdC7`_m3GvNOqotp3vojsgw$zG7XF#V7z&{>mNM05HUpTOa} zE!dETn<#2Q$;|E)Nr&e_ysY&#+xk(}D@%;dLm8o>W;oQkEo%4nG%*%Ujy33qU(;Zy zQFVKpaH!hc>}_%y)EXs5o2Rtdq7$2JjtH#-siJkDUk%tosu|xFm8s|+AM`jutX6Vre}l%^V!QW931B&@pGW@*3>m{|BcDgDySq~$kNp4ueU;2D*t z1VeDuO~OLG&#|tgPxiC!fty^`nx1N{sIed!&s*JC3(_}mXdGpET2be$X~dd$j!J4m zS%ypz1>Ga*P&>%du}Ms`iH>^_9pZXpL5keR^-_F)l%87D#eN%(?m$EwNh+64V!CgkEeKF>teZ1Yr)}i;P}v zrrbAd8^CtP`-VHR^TprlLumedn=N>($=v}f;c0+Hgq~WYOH1*+AlfUom5?T4o(9C} zNK|Vnr6pOjv*xAHZ-F7ij$w$t`A4G$6PY2$lx5+uwIK>X5P3sw8Zua&7N-tt#%aSg zHQx;|q6dQm6Q!=`hSA9R&SEHGl+f2`m8O995qKJYAMW@1`ay;@OmE9Z8AWeB=A_3#xt58kqk$L3mrnM* z*mZ>)t8oW!0c>bT6x0!JdOVgfgi=z^jV(Im;xpy#ip3{pk1>d+f_N`W-Jp_+x;hhp z?`X}~sQ}Mj3h#qK#mWot+aW0ZVPhgJKFb;bz8O@Wc16DU?2IiwpQ;w0-zpcMx5Or5 z*#go2jI@JJmVuz}35!qm%Q2)z+UOa!S)*XFY}n$HWuPfq2b2$mlNA{e$>GpUZ6WzL zb=N>l-bmYUWH-g!-z(8t5d0!HhL=W;PAl7EfkrDEEE}N)HBuILH2N$~W0eVkrP)d> zPMQ$vjzu^5As@lw8JG~Pys+377WrfC8Sj)e7Fay331K4@tu`Ut6_;kQyW_$vc8{a3 z2NqBIWk1s@$GH&N(a=7NwFLR%7we3X6}GSp1TsZVoIy z?w1Q$A1w9)7LO)urNWD{Cv=?`*(T@W1bew~B~*-cQ!Mk#X3@yFqUr7Y++h#!Aj$s- z3AV^L7({)cguSN4J^WmkI_xraQM>Mat?Hrlu!OSN7JbQh+RAa$GyZ`S(mQO`)*j7X zBK@d0>Oh>=xwciXe=wR3duW~=OX#)}rE7=Erx;mhrEV=T9n5<-pkc;-iz#Jodc&%C zKW}{L!lKwEF9J*L$w-^cYe`bq?9rx)zL~hC*Vzg>U85w*L}DinyP;G2m%d@#G9^<+ zT^PNk=_EACl!}V&)w{alMP1HWX$du*k|hnmHaWC=uLlU5Sxw3Ih3!jQgQh_UsOcA& zf!PGvaVMspY{!A@*qw&{mMXCM&9<$Jy1gFLI?8&a^V!;lokwLxL+@aj=V;3$R@F7Z zu@b{VJbFhZXD9UzttG2%1(TnuLE_$#pst~JG^KZhrK1L^Oq8x{CCn-+FTt6LY&024 zfJ%T%@33u=pm#j2YM}U1?`Rf!2NS@RqQ!>xTYQ#lD1DtzOAY0&)62O43}(gqvb&1|G) zJN_4$MRa#4(;6NN4TeIs#3aj(_b` zT&`r2yMkXWXVcFNxcGnR68e5khio_UuX3lku6*!yd%*H6ln`u|_SXItJ4YQAWkjLF zIHYLCXp80Q{D={x#j%_DYD7a@WLls~oYi)9!S}S(B{URMc11pQ zw8zxAV@at1+?o^$z-@`qZ_3nh+%M;|1+Y68rjCd^k!?D*7iw46GiN6ioKwV497 z?7$bK5_Hj-*PShThezE}-=+%fAoxE?JbTL;<7jrIJY`QwljIls5 zL-P1MFt^5xL19fwV{^+`$!BK9fQo2iQF78mw+nISgXt5;f|o^5f7d6Deb2&qLtcRF zD)@T!?B|U&s#$B^*yr9krVS*B6fk~JyQa(oyIu0j#e;d^ z0>4`d^S~b?Zn3w>Ca8G;8~WrtfKak&U~bwpa7^A1bLBLEs?Ril6(&pzkJ>b_UBZ;= znFiiSOBdE2)uPa*0Satn8rUV7t4(vw0-rE3Z%O<2Xd;l*-oCf?aucV#|AE6hYc@r& zu-jSNx3|{e4O7;1d4EwQ?;XZdI?Fv);c8V2gS!1D}Jnf2{ zUdMeLo~Y>cD6X?O$6hej zm4iiN7)jc)Sc#0}CF7!`ZKTfGKD)}> zKKmS`W*%!4OswG8ZYs6gX1jeew%JbE`r)p~7{9YisNrSH`H#QiIuxK{Tf3RQpUo>Q zzge`L0ZdlIxSXa+m(FHbmYQ-cB6U}FE%t1WPX6GUt$?+bsk((aYx#@Vx6yce0LTc+ z7O3rs@0f3T%c6M*I_t3s4a~F(^h%hiRf%q)Hs&pBSqNgIPS}x503|H1Qe$qH0|BcH zpv2q=pdw#JSSm1i3kpN?*pf@d5C_B&HgF98V6HCAO>BHi4mjozNakjUYAeiX8nfMR z?ObPz@+rh`%Me0I!`z}_PUQ`Ai_$&J`4G1RE7+~}!TH88XWv{$q(ImQr&2J-jy9Wb z%QC`s0nH= z)ZIRDDQA`CZl8GbYZnKfZWH&C#(H6lV!oai7%ozfc(Glzxf1ip0?*Hm!+3r&Ip8!D z!G$76px%&09@H=v)>rB8%i~=}`B7UZPl+z*GV_A@gX)hG)AG4Y@yL7VEzp74>b?6b z4E3U?@j{{(p9&@o`hws_%28^H;U7!WN{Kva`0x9QvF{RD8)SSjE|E`bueb7AG0GKR ze=5U&Sz{rQpLRtqk;e`Hw_}Ku>1<{xz5{NsJu+OUbA+ysI-9?w-^&)z9dzu#O#T3N zznT25dRP(TevP|j-M2CB!^%coDvVpb0Kvf6wMP*l;Wsy!aUv+el zg>2v!V98gfP^`@|kYyY=VVfMtX}OZ-qhupAXjqHsJ)R&E;v6_ha0*d?#2pKgu9O7?rwHm!U*nB7}~K!j^}3Z zbloD7c9b0Dgd97#0JTIwNSZwzCjZV0 z#^VJ?kk6G+ssygHHmcp0xkioAS)0_$hFm1hZ{&#dt0|20EBrrd&ebFu@HfO?pRbUC z3ciC{aLV5kKdD~h%U3w1-8+9hf3 z35D{CXs45-8j07iJ+}{xtHN1i1d(=H(o+!2xpf>OLTmj-gz$?aJ45JbbN&RQ_l%bs+ke^83xql6X?{3e4*_a+m4MYX~b zEcsZG&ZVO!v2TwHEO*mwN|<|6rl*hTDI|2Du2te}NlEe|b*k#-8lgIeVy=PaPubXQ ztc+P>z1cA#Z8FdmmPre*6Kaj#UPr(2tGF5}X**0nzFJ?ho)O$>*WXI;k$~8;xpoa1 zXfZ@BpZNYOktpdmnEiCyOHUeO?L#1Fs27bW&ag)aOjD-#J%~h$n3i2^HNLO*uU}q^ zs1#`cYcFeR6;lrro|(P|&E>~qqi8$Ag@~X`KIocaDZ6F`Ax8z#AmbGP3{_y^RIv`- z66-@t`5h2BU3H-H188z=QbN4w-{xhZJqQYy3Uv{WgvJ<;;P}e`&AEP@d@{rv7WCIq z1tLY?IUvm&A&=+>z>$6mlPEOooyCwbDb#GoLWR&Y5w`$cqDXL$kwAjINDM{hq{TcT z1k#^IR7)D178S%Sfr@VWo_VQ^M@?kEbv~YPk$npLDf?z_^3>lfp|!g4N&_bPS=No2 z#Qz~?Nlm@gJ6TcmTDEyBQB|U9@>tQvUX#vDeF)RL73YHTiE7lxhV{CuZNfcA_+ z`no(>9yIHX2BBb$ZXWaR=pCP^rT0t!tmjW4nA9B{@{3AXej$9!M?2sd?QLiL`n`!c z!`(|TuG*vrDO$^#tQHNk_f_*0Z5odqt)SZ5P;_U zsr`98^yhX95l3gF7Jb79_E370={ncQhL7I25&J$D7&|Ic>)Y>wwq1 z;~5)MFdAwo@ z$JnJ>N#l$t2=iNThsa+z8Dkh?Hx4j$iw3`imiQ?%0oC&-$F5Or9#k#&&T{R zaKR-^xF>$duj!lu!*#r=#(zq`%u`SBD~AB1@CUHcqU0dd)3>nW0&@Wf{v`Y{htH+> zHi>JXG_n`^n2v`*c-X6mG4MA%- z!#2hv_Ssh%Amr=h1_&&VW`K|;i2*_?s~I3#GC*{2t*4|LASh`Dh>jT`RNf2_9k|?l z@G0m9h*o8Q;2SeQ*f(R2_>`6D2=f>)O%S?TCFIag*4`#}eG7_6e0j?)4*ASQXzmsh zp{cxxR2aaA#FU1Rh@RbzMMU64A#G#)i&?uXq9Im&QC3*Azy_WcPbLOTO|K~o0%MUv zAoLVVgbOUhtVD5SPlI&f%kjqhMF-8<8IO~$c>$xDgDa$;h2-;zTO?xtscVG@&&!Bi zQZ3w(7!Qi~(BN!wQ@-YvCK(Agqu$#g%!(Fyrj_brZxHW`An{&&RHU0(<^lWS5#94z zbg$n)=13o9CE%GRd?V%bXCh-nI>`fP;!(w3;~f?IAY$BMT~fyMA9_$t!*nG~!^X13 zkkuS)jxEam0upVw%y#o98AQI9hN&&T`(|#A-GT^E2;V(3@hmahunTTPGsZ69tH)x= zMCO3_n)EMcWq_!o#PNd_4~P{CkI;yDPs=7PxRM*0i(1#nj(FKNc95eRvse*2F*61Q zcMXXpr`A-FMX^61K4ZIp$)^FtSW8V5VVEjjKsmqrFmlmuBb-sINq@9(;K&;fw2mFP=?%9WJAUH6qtVT{5P#?I zzx~axfAx<)_MO@-=t_tLW@B2w*n)Ow(-QNuCRHd{DuQi_iPmkCfrmCzw(}$C3h3J% zUgd0=(|tl>=(m-`1THU;VUrRu(nht#qb{rY3u`qP`5-cBmihVQ5oXAgm)-ox^@Dq1}yG)^ADu*ZxAxOY&ybUX+q&fAhwTuzDwR}BaI5z1NlPm)Q$^HEN8%GvO z3oMo?!aJ>Z^a!&&8YW`}%+ma9&~*k01wcboz>1$;0(xV2qII@I^%IMTV)_gPLgmz? zrv#u>O@wEvIDn9y)rZVvAV!yqe9^Uu@2qQzd=s^SJ)x{Ar3u{7R)o!Rz#^~hL}xsJ z5|tjNAanV<(Wr1b7{%Jbm_f4?H5$9HgQa$Py9E-6>7K3^M?Ji0(uX(WrVuE1AR4n~ zApn6LVjaWo5YKcvG#Dzih%lWs4bv92i8_HRlc9UW;}xGm7&ZnREJQ{HvipZea|V2) ztNCg4vA7mRVOz+0)4#B$77j!|nJwH*r#snVNn3moSG3icN?Y&?!a}b8pvg?p5b-jN z@lX_Gk91UGfn7`!#dW~5khnbR2E4KRA)UnBE+V*W0*hjo4Evu9-sbT&LO}jo_s@!! zSzKxnj{c%WwJC@*SUNELeRPntkHoJxxv70wR2E6Zg#QauULhgZ{?(b@HM%-r1Ej43 z#ruQVbWR(f5ik0Sz0H25B5|DfY0mZmht{&BRjC|(X3(3HUUwv`k;nn{Ez(c-M@F@6 zXm>2Uw=wT^e|Xz4;Xvq#a?s3wnqF|;3tCMx8FnER{Nc$Oe?&FXGVSsn!(^nN{tt@B z{)OIYiJ~szqS;d^&<9(f`1`LETJA@B;#Uz+jxO7ler_}C9xj)&WE=Wy?I7RQ4yj7A zqgj>pgF4umsmJD@OZ$DR->lwz;BF?`=}`TlcIq&zzqRLA>$m48X4mq@K}_GED^l~Q zAxV$+ttYtLb;_YtO&3G8uA~nR_yYU9ebGADXP0=0;x?@FKPv)Fp-ng%xudO{SgOQ6 zzq`QimbeS>8$pLE%FiyISp$mBl2kSg_+o##+kbYb8K0$V)&zB5<(0mg65L(kcb9V) zP&4A`Yy9P_3gpn&NM{dQ!&mczl6|HB9HN39oDqx;vH$R>hW1{=+Q&m}V(pNT!#RV; ztg>0|v@~Rn78T!drA>Yf&OQro+oJ}elqN035`}u&pJnOvClLrG0f_{yHdX(GA^_GN z1?NX^pNjG$xiwJRrZV)7X#R{*Xluhz(U!SRkPUWv0HY3(uq+IYUKxOpn*r3Um3gGo zYGpfEA!+TnU{K;?A0_Fr848x$0ID8o-xhoYI}O^ar(2H6s(Kk?r&ces1r>wWiiEVF z899Er1hh^gv@=FdJmd^%p}e9hL4Q5sp~fv$<=a(xppG#@;-P>-PTwYZOci{y-`9dwwCo)Jjfw_i#}TXkOvY(#iM$0n4Y!98D6TH7MW^B93FK@BJA2o5=G8Q839?-I3Pp$Nuh zjfN?|&dvlEqC>iBI4~Xi*l5!9O^1wF*`x!6DVAAEeLnFSGf%ff^D)eB`p8sf%N_Lv zh2l&UJv&kv&hR=7e&32tf`vKDcdoeJ9KA8_jBHCe3zHs^6Ri~gH2&Ze3t-yJrN}G( z5S}3%NTyo z`v`mZ1*xo);(V0!#hoCvm?`G4mT;G78yish3)$a-SM}EbDiOk~4+sUDr4EP$@?AmOvKwdXXa#hKk&88PIR5h`o8h-q8D!G;q-S0!_J&u6IZ10{)LyLN8U)rPP7;YXqg{?E7T8TA&Vcerr0tsH zRIhDWA(T7uBdqMMbAGg%mz6-pR+?88yF%^SN(C7r?qc~r?gRBrv^lBb$|5z8Fd`O} z-xGI6w?+TnIn!Q8$cAW~7qS9;N@XQh&4f^>rYGvtoP}Zh?r74ux*>(lF=@_CcCyf7 zag=2DR^gC?5ZZ|VeV3_8OfDSK{+X&cc(?Pq(1T01rT0LZo6{XkGpP$01>(8DPN<}M z^kWlIwp%r+fGPc(JHV)=!3N(d8mk6M84R0Zf5vDRjY6IZ6$v?`;*U zp>n1!Vo#K!Ec7OX<|z9@Xb$U&rdINcd47*wr=iGL^{|_}Filv7g{ngO&!BA6OlfjX zjD3Xiw`ZW8PLxUutgBoG^`Mgx?V=OZf+Sm6K<9%-%>+o>yR6fJFU(y*CKfczH zR5DIiJQIx@1Li;gko8vEQt(B;w@X$|QZ-ZC`eruL7}G2 z`b?gd2M0NCj&pACgLlbTM;$;}PmJue$gzjfFRvdBznmvn`UtTM+Cb=zNqyS zwGo3K^}(evTfG2tcJo>(str`S+W=T8Pni2vscP10jcP2!sOs;gMG&-7rcJd)OJF-L zt`=Py+Bl4~2|(0kI($X_p&@N2p#n3sHGE@nXQ&`Q7I@ID2KmjB6`UaJ+2E0O6Y28b zm?GIZ*Qf1#SN36ukpbJZ#DJlHVNGoCt7LCJ&e`GV4$(JCcOjW|D^zw2W!-82uBoTjvV( z)^@z1E-JFV3M7Dr5dXn65f0!x1rGJoE0?Nt@XKhV6JGFTZU`aCLF2yP`>YNct%l+O zCHB7?>q;Foepq{cTeqG-f)256wVNzhyEL+W;;bQQ&SfQcDCHC|T;cIelOGSILIlp( zkxG5t-aU}oGJMS4m_biICbZz_%%j=cn|bE_X@@L-s-q^pgDh-8Ij548Qg;}Zp>kLb zX+g)>Vs6C4A&hfBoH|5#1<*~hQ=X9?Ql!ZS-RCOUpO!LwEI!md5i{^m4-%vwU6I)g0Z0c z$7@#N9X77)&23}C+MSI_`B`cib7H|ZG{qr~yl>%mB%RI2ILG2ADHbqC0xUX&(3f6o z5ga-ytM$PE)(ebrUzd+v3z7wBl8@P`R`IgSP;s-#V7A>7aTS8jeMOhxOS(lC(+b#s zPU%ePcHzxpL#eNl<;a95=Ga=A1LkdBE591>bJnf)GNHV+U1@YTlW?yPZu{jPhv^3MRjR~?%Zf$}xQitY6to&}S zy2L?y+pOiyOi#XU#au8M6?4U*Y^0b3qEA&sRVe(@Z4qFW(1^!xYgkY?AlIV-@eLEO z#wJ}Tj`B`Wd>$4nF$);?r8eRL4w!A3fE-CGKv*di5f=Aij}k%1SrQO>g!p5*`Xz}0 z15sEyA%QyfXOs9B3~8@_qTK7(R-Id`RVNEjUDwgO>a=}NZg-j3DwBY!_PY>%Z|0Xb zGpsrf#K|m=w(evj(!1`&%}cag&WSkZrR*>WeY?b3N8 z2#053*~qBq^d-mx7?r73q5%_lpN7$>Bi1;IxY0I^n9wsN+j0}NGhaBIxM`G9h)x~S zv3|*}Ur(ArMhi;a7iL$0bMvWSk-&?Kq@=Og)?_zW=IqsWNa2 z;4H%_3-YW999@$gg=4Na;U+t%s}vLkGc4O4YOt7^Y$=)X1&W&}4h6>=4L-^h+I@Lto?%&JP!V4)lNoX~i@Pyx;^qHW zYyuxIsoC5e*8CRsB5O3yuDO;`!*~)%3ZgTbZIWRHn=HzDP1zf!*wAv6i_10{nb7Ua zETdm`C9ZlkVpeo59T`bw%GTH07T(1k**n~#;3PZZsJ_9{8Q0P~V*9FXC4)g%wBgiK zDb%#~@E!4Dp=JjJPgkx57M2y8hMHgP;v?G;!za8m1%P(MCf6eXG>Hk6lB_n{)po?D z53lWrsRLt=K|5k^QpUcu9We}}9Wi2ozl%0l^YF6?Bu*099hZZb7VmITCvhMFCidn@ zf-MTWILm5GLqie*?K4*>;Bg*3EHolP%{M0WzpssrjHE z4GlNS*c)c=fcsdu-H%>xUTUr5s!%7DWq!WuJTg5-KGw5Zv&6+b%bW#02x@HzqwE)T zpbXG#1N|8J>wp{=519QpZVa$;T>PoMyC3a~wpUt2#l>Sx4V)Z{47e6d^%BDE;p#$0Dj3a-v5sHhC7@B$q?L+piXVAjn3~!6xD`+&^Yk&>!Hmo|p zh^DEq2k$XnbV58tsgbhbf7}R8Lxr9}Z&Wwq8vW0h`WBDVnVJ;Tsptgfr^>^U+^DGA zd();p0fCq3c)v6DR`Pj|?IaEmZO)^r;t{DN?H#sOR9$EcD!pH1L*A&FYeO(fs z-c`(dX5cc8(~vPz#kpg`0kGa1vzll8O!;gS`Bf;gpO$pyummmb01RenqG>Ffly>+w zBT$m_Loa-bAVU~icymODdzi4t?zv+WcP#cf^*ctBZU)PMHUh%TQ z5=zG25T z0OL|B;^#tsXz&7lXlyIqz0^9xPiP?bY}5Q8fMm2H2>5}W*fRW)4mhMxBQZ@^U_K&j zkg$-J#7D}+|@f+F)F-(bl>`Ty_occuuu7c?Fyd3suTGbo?_1D-E11cWgd(s9u!AG zBEMBq0@^|9bw*?h*vNEyk8@tBCEXI8B|i+y$1}>l!K8+`6seiY&@_%>ZiHG0tuT#* zI9F%TQ2hDPS#`bGM%x4_)~)JhMLNXVxl)Ef{8ENl#Rlwo73*)R9^n)BJ{-hQCL(a%ocPDu`Nr`AozUe6VAfLHcI=dk1-GZ4+6odZF7Y>R%wzR<`V zgN|v>L_913eyrae8q~T&G}R;Q+#%Z5;jD^xXh}R%G$oQ7sVw~XxA$Gauh6FzmeM^Q zmn_6Qq5*pYZfO#_AEpHU`+AgT0mtmR3VFuSTU{JQ4*yu2Aqlho0@kPIMqSQXGE`>cf(lfJLKp(1MdF#j zlyLA+Y@X*c$UfXgZQ7$nQqr;%}yZoimb+DqByxd3caksk(lo4sF7sZZSN6S_Ws_a zFrNYA78dX}+$&YcbQZBTlisfnrl1iZo~K-e6y{H!+vXB*h1FwG@hO0`OGFO5niMxZv9t7Um% zzo)XDRb8s-n9W9iKOPTp44lsTiU3E-NXv+?+q#1(ASup%$wuyz2i-Ab8L{jK4v4lA zl*@afW}StXHH*HfdGhS(=Fk}%rq-W%=DM}nn#l$iTPN|@Xf)CqK9eO)amEWL&Jdq4 z{$0N>P$*LmId*7U$1^bFS^^=-&{92UNZ={W1Y|vOwOeAhE5bqgL_}IKl^)p?=ix2k zRDD^WXzkCe&4`(iPGZ73(#|)OqQqr+vKE2x7M-X8kNMZ31G%Hr(&p9Yy(DWjZY;(khC)U#xpWrV7 z$PFvmlDCh2P*}*+aH2mp3J@<(W}pOVx)oQ~S%3{%TC9KJ#D?){J*|5oj&U{=YhO6A z-ca9;RK793LEpJsdR@<3?vG+peBs2}aeG25nR(8$UO2JF;ZSMXeZJBF?e(?rZKLG$ z3nwO(3wu-kSguL@==gHx3nwP@1+9wAt5lve!*4W@{dHoHZ@~GDx1dV$hqu}gsuc!- zUpLYUeph6vcAUzERgd*;)3}}POqthPPhDC=KY3lsRn>)}8zE*MZR}$OeP+;)%Bd|a z)|f{dC^4+s7b!|Ayr6PV3!Ly)#&3B2$K>^}G zQaNbar^wM|cv&4GR}aW4H5KZbvTad;2TgNXb&;#5E=y0T(^J-I)j~it8-QsAg-Hv! z>MW~na`n`$QWczRtkMEUAvOxj7(C@-$}u=HvpX(uI)sHN3&n7f@O?a<$rZ%rf*L%mFKi-E>uUfVse zp-IftsSSG42XsSj!M*h|CaX~|A~MKRd`C?bn_z?kq!GK!JmO#?L)D|AU}o9y5qmTU zMdGhkLsv|%pa#1L-DXQ$0H4EBSACUkdMnTT#iA9Q;h9&P_#wqj zX(coTU0}|?5Hx8@MJi=qw1{ z&3A^=n?@}7r%iz63#6vci1y-lMl8^0mE-HSQ!IhLrfKekCOE56vKdh$+QplV$CMAK zcOyUm14Yh2Ot(F>XlPqRi=tAK%BU9u37|~~qr*}^5Cc`&N+-(hC~uh*(wQo>VLQW4 z$Zd^pCQhR7XC%C9+WU1b~qc zX-uT777^)hHeI@(4qQ$|nt$Lf+tMGzlHMkZ!NBAycs zw00NcznOh)!b~W*Ysf?&(QtG)Zg+LDNgSn6Pkv;l?#Ah`EM^W9sywnA?*B{x@67C- zF7FxD6S(270Kr0x5nEKFVFVl*y$n(HDD2cBHg}_qkAz0aXtW`#1EsQZYz$m_Do{F2 znLUtOLE(n3U^pODvsz6UtquW{tt0F;k=`<=YUS&0D-T?>Kgii7lBr`+HL7e(QpFNS_Q+{{bQI0UWN?M*U@R21$Ao?5S&Qa5!u*!EIvyw2Y7{i z!M-oyhY+flQXVXb&Fm1zg69?7j*vZY1}!L(3}cCjwM-$^4X$dnF(5n%H?0Zi7Fbsv zNcod7Ey+AX#$Bv+cx7>fjS;11d=-_Lt%C6YSvOH__WMTXQO!<07^#Dow3zGK7|7?4 z7pNqHYD9*0ve80P1BAxG0&#*no&gMK|v>r9}RVIJOpeCHBE9j(m;7!dAP4He}F5r>@eAB*LE!~11 zP3W=8c(EnAe4^1kU$Dp!p!odg@~+CCEUz)yGLu}ybqw6FTp)nAzHzkSebG zs*d9%^pxjbMoe<+9{n0sxkR%X(N*fDT0Z<04&@$?b!?#19??>^k#C?&?b->D&JXmI z7N3))IloZKW7TC?7@#Q@w$ z1^uX02sx%h7{^4tgfuIrR~6TOjP9Hp3LH^lKOHpp1G3cShTfcql=Ge{XK`x^wTNBJ zlmc&tuFa#Z&5Z=5*J3Ofjm_z$vU)Kzw6XylE$x0AT?J(uosbZXGf_Ns9%0bGJEv$T&rmmD~!6>=kLz zpi@RLCX9+;iURrF=yW7gl(cx88+22F>0we?!Uy`T%!~ktz{3J-&f*0B#b`1T;slqb z*Tn+F81s+gw!3k|Ek4R09G7h(^Yf3!Q-B8lBA{$#djVk7Ae%-~L!ma8fMrx%*Ux$$HOcjgyMzXHn_Lm2$M zoTs=Lf=m=;LQtDOZ*bLJz{{e1J!AH@I)-4Jv$r5!b*XwMdA=TQr61T{*iE2jUQQmZ znL;cFWLO$X5<(_vH%!SOG$@lD`H(|BW%-vd#~ZH-HkLH~fF-luw7WYxJm_}~3hZVfWr@{=PufYSi*u@R>j#9!BNW57)_UCC z#~Kf@tIXJ8q6gH z*MXkV)%=J6tCj$yII1({{Z1QP(U(o5maW4c#sr0U65H)<=}uJ&oM9k{RFZ0Kl`2$5 z2qX}icfVe)Cy|3F4cBYpP(VhqtoAyiRzWug0XBUdU*Sr=ShLx-lr5jFR+^mLvpWNX z7K=E3WSiX7?kvucX4+^|hKBc2-~>>>$!If;vGY@6Ad%l9Vp{ zYxZM~o1l$x3W2b?6vALH&<@n2W&4~UfPAmyhgs^i{4g`iuJMDuH!VJ}anwpe z3sP6U+5G7^ay7qoe5c%yFo{&hM5CRs@KaQrfV>IL2WLDDgP{Pb-OIqw5n%Yi)asD2*LqnTH%BcjSDf944`>Wz$ zX*vHwbF4;RfPmF3tcHmG!lY^qAr|cyN|RXze}Jgly84VFc1sjV4LD@lKX8UmkL&~Z zrE^*s_E_8v>GIE_ZgCfPGkDBHYb5(fqNsr0L)C?KLzqCVUY26r8Pzm!NR#Yw+Z#v4 z8=c%l1ZESGP#Y^0szhVxRcde7UnTOoYy&w)Z8p;Vm3eFI%5ANznpHh#E@()l_9!)^ zx>r~l(jhEI(#Zx&JNtUQVAFvLsY^?%AyU|501_*HB+>tYvEE5)YmN`2eyi7Jscvng z>b3nlnV1=Dmkxq$Y&0G{+4p!P;UvRAJC}Wts{ZIJw7efWw+8Y@e_d<$>J?dkouh=4 zv>Oj8;Q!KaVQqt;@9D|E)r8dx$*)U#RLz1sfI}EmuYlwgW-3%1MT6Hn>I*~F!mQjI zNsEPzA~9QTm(buDo51ou7^D|x|6J;ESeuYTdQ`4Q*_`tTH@bBo&s0r#bbn97Sb->q zIKm8=9*wjW5uo*<`Zu~iZ87~C$+=GoL@SaT7RlLO{XI{W*Ub1(>=8~vS-pfjXhJQnzUfGFRba@awykS4T`V{ z%VgHsD1Mqv4B}5PbEo_H(K)}&lbLOpDS>>D$c3UwzDm+6=t3^upo|_5Z*1f6VwQGj zkYt#Jo$8K!Ewi+2A=;yEEjUP+11ixWCx;tRoTTX}q_pl+xD~O;ewD;=(ij45-PBMM z#8`^!3e0GUSp^|&T?}>>7Gm23Yrd=dN;XLNIxx8w2O!?^_5c{c?AlJexyP>UR>U$n z7fL%MEdciG9mBgIk&VH-?1_tDmBdn|=Z*j=?77MY>;|;Tn+wAg$DXd6ti`IBJU@zl zIW{%4XJFXaifm3_iw7IpzbmAL0UcVrHqK37o3CH^M0=fN2xubLM=go`u#f9J2_E$= zUw37DUBQCBNZdwhKLakcTUf)P0XLPAbqaf)d`IjcQ=fisS z$1GHERrQAhJn+b<-~!;!W{iVvm#4s~PFL7YHHur9qHVNfZ$(dU(N2W3G8QMnR&59c zoPlq5ec8a9D%9-K26e>hJ!16&L-rxi;I?%7JrZ|CqkJi`?N0lng|rbV?5SQ#fGA& z9R-)xG~y_V+1?um$zG6e9Nt8pB7%zL zZUB;ixBd^@MZd~o&=eW$BlRemB@sx^7)$NNWle|l4>^`nY4e3!W2VSB#a)Bom8GW!_(YHjWTb0uBe*@?si-3D#^(_vq_B z?qk6wT92i9s{?@zD=#%?$gWku8)oU(V$2#sHE9@4YbWB{In19lS{#DCYpvFZhzNjE zbsQ%A`3SU}Wc$|ZxHaP48@R$Kkd8>J32EtoXE*#N!WEWz@kO0PmAe&85M?*dQVCOA zw%~mC@Ew6t!CBdNbwC4>R0Co(>I0%~2@(?t24;5CIv0n=CV^%A2m)Z?B6k#1+jiMVgZ;y~`bGp3N$Ci3lA*AyDDY7r>CPr{If z7M?SGfe($bXh;jk!}PRS_7r`!ddVy$rmNQyT>C6GBLU>=it{txbBP^1&SjyKcfmbTgL52aUrwx6#fQL{r+ z=A|X`!@jy;1;w|1xLX%P`(#y_naGh3-xpA?{@3hbGvGr72gHqVnb2_Fs?CewHZo1G&&-ka)c!}Y=mE+0y0-Eu3_lV zW@&isK1My~!Lh}fmIdl37@gu?{y-r_@%KT5LFq|x$VN`KqM`!Xn~IKp=0A6$*W?i* zOD3uU(+p2}x_~Fb&GRG*5#n^XBIKw$Q${N&0R~~<2X~iPT#Nx09fOLTI7tz9`h$u* za*`rw0tOX%=p;p8;z30YpQH$@`awnRJxLKZK7)!JJV_De=s`tpJxLK}n?XfxK1mVQ z&x4BWIY|)-9uqgc^gnl!A_&=%{;|EN5%5wZ4o@vf*lb=z*te_#Ve3lo8eywrM-;tc z>^llZY1a-fcqlb-f;jbk(k8qBfnw7t(E?$oMuy|Iw&SkOM2)}=7Iw&NT0mEq*g^<5 zaLrd*U)BGa5ejZN@$MqxSPAon=EWxGo9wW$Y-DMZ_%4qrS?B{2^fj^!*OTT!pRjcf zA$B#x7ndpqt3PU0qxp{bR;jwH#&;PUsi&kArL-AJa3) z-@_Z}uIKfOy8XH#nar|Z4cP@M$aqflT|2Kb_dBbn{z1w!9q=sr072S?xr;tPc4)`Y zq^X+hJt&R}fH+~n@`eiFI6LPj}Rm#S-AkXgP3HZ7?Wh8|d$((x7Dxhqs~C4Nb6Ag=zrlW%Knxi z%=R<6^2aoO#Tr+SAMb`;kXDkl=}_^P-KYy{Ao?0^C@gDq*kM8Fin%8@Ep9II21~FIvgrc2XbirLl1}6 zKlE^D{X>^S^>Vo!Dy~Lljm-VspfXr=Yp_IRd2_Hf0f?^OMiMc+y*CH@x9)CqhE=HuqR4qyuJS;>(%-hyC$Jf1DP0^`sPqZ$s;4bQ*BiF}m3Oy}fNPpSe)nr@#_z5A zrNBar?n2KCY?&}Nv`GkEQo>Hk{ZQ4sGR$br0aH~r%UyYO-kZVtt9H5?20RA@L7W*Eo4>z) zMnQS-JXRj6^E^6ikZu9{BVME3G~EJ!Nu4l#>J6jZN#U2_arl&OVv-f4`?Q^dZ}y6) zwu(si0;2AQaH%(wY;}7deVa)x=pZb}bfIP?-45}#n=!I_JAcCM5VNo``JT7b?GRgY zPPS+Z^Eo}mFiL{Fva@*Uy%Izf-&x8Ix*Z}-q@+79I_d2Y7jPKnW)9peuj33BJ(zX) z9S5HZ2katSiBc)u3_ya0@z@6>!+P3* zGO!mmyR;RzMHh)I%nE@6K*5M<4~?+dXMAK#V%I`wtTA@)Y1GDeQ1?_DDANMSh(UQS zK-84|iL*B)P8|t&(G}p>S{Pcj4#9E{j)O!v+DQ~&P7CF4S}c2?qR4Tp2d-j$C`%dg zZA)_%*p~=xGr(zUAUWG&)&+?NBcGJc%0MXZ*bNBQO`Ss92wO+7OVS48LdqdmwyH9m z9Q4Cw#{dT`*ON#36ILhuYU(=_bM7PJ=gH(HP{|rXXAH825qlVkNJRCqiE?h8=nl5S ze}RD?N*QzX6-0u^;f9K>GCZ@PTRc8i`I5wE#z!JGfph|)RpZO-xE72o=lR<`_){}F zlnH$hql(#!C|ihO7!G`qP}w(9m<7Sg`dRV;&djc}KxbNjf-UpKFK+?h;0|+EKj*;; z2^up~rNP`{6g7~KwC(ESPu5ePG+QxqR@O*$FN;7DA^HK^&6>7?^wO&70^@a^`hfk2 zcyyx6a92d(a`5PA68pw{mbe9oLA-m!C^)^)>5{O^-<*RSvSoI7YM z$d}E@d3L+I;YuE;EfiqejUu5SDbiZSE%zUS7iW07=QDcR%2TciRd4n!JX5wrdC`!~ z9bPGUXJq>m@wM9=w;&OUemJQ{l5Zn1~*eW4Tv*6AXZRG z*8t4DP@%XRfRp{p#R;BTHJrSZDWbP}lzaoKzh}ACBN%(C7xi;LO&6yq1P4@qc)8Wf zHKZERm%{A5)ek0^hn8DCB-B$qoX`V3ipBxZA6stq1LzTzha#eJJ1R`rcs?7DSKE=! zc)~<30_Kyny;I(>Ss8LAm@~qo-G+Yz8*H-7x=;m%AiItha()prJ*+X^WsT{I?s_O# zOj5j?C3Z!~OA;)cVJHcZEn?9p20*4Gk|iJu98rUeiKS)oLcHYwZCx9InI$*~t{pH& zbDurA%mCdkH39&=QX`UPE7I1gmmU_04AXek=^ga+76H+{FZvl=;L8hf>@LLxk#Q3z z_N*`aMTn<`k&9%R+;u*b1_}L!*2FgBBHGRQP|laE44GUxLZ>$>-*rB0F4y@G1>HEF zO?Br(wi|3?nUZY+WJ`ndVR=KR`%Gn8Ju!>OCa3b5Lb3v7;+{}@u`7|YlV&2ErYvLS zG^MOD@0pXU{N`k(?KK)R)pNH5I*WNMYR%>Grcq7E)<_dyG411N#Y$;5*B9{pPSw8xm<5yUyZY%SIB5wNc*O5aVIXC3?UNDr-o0M z>}+O9sNy<;=WiA2)|M{&sPN^y7KEveLbVABZd_Dn(QR3tZi(Ki>o!YkMdIBl${?d_ zt;?l}qH<}{Ygc^plooGbZG)y`bLq}BM_QI&10Aq$1|ewC_u$KhqMGnQIiH z8HAn>PU>!KH@S~2YvI_IH7v?({1!Q~SsgH|Vb!wQVoyNS!!-t1HH$pj#V;&vqw4Av zltZj<#S0Gucwh^J{FPeyLYWfBReXE4?FSfiaznYch1WA4LFT+>c>BSFxN3dK9M;s5 zOrtB7>&2IOb=}&Jl)k{*IWY`8r8%>NVq$Sm<2WwsP1yh$v%5yW3V}V#1&g;5=!LaWB)x;2!Ed%V& zi;JLAe!AvKEW0A^`qPdzcz6YGF0<{ocX)UOU$5ZdMaRNHjrccseAPU>SY#*kJ|LpO z5i9AFdwBJ`c7eI~8jWM|pn4+l_3zpnI7^(aH`je6}Q3oF{|N z7Bg`7MTiS7KaThNmV2wH4q4?MTwIXCl<|(yxDi5oV9=1RIJAe&31&ONBD4%ki#M5C z++hb`8~gx_&>mG}kEsoI9yaxy=$t$Tf80U<6J(zfz3WI_e_Bc=thYT=_|6BMR4!|6Ah?4rF?3F#Ce>>TQX^5Sf8ZMd*JAk)onlDGR0APtH$D#3#i>tvHjv zeRkwYLEK*fT1(5JcpB{Yf+w?$29*;d0!gD75e+Go&01ijR(~~ssQnp0ng=kBfww~| zirlMXrJP-IY~F?#2+jywJ;R@}F~nFkybx>Q(f@hV?~;6hwA7O;y*m zy~2SL#~ONW$F!WL^^k<<&pXd#vtI5A*k@Icmw4d}G0yf`{0^F3`a5%2QfwIX-K$V!Kycn=gUm-$p*#D9+-;C`m5S$|08HUu|<-_Gegst zN&DGE@gsVQYHOPmqt)A`iIDkBMFSBcu0@1aDRIHeO65vvBxXT2L?nTlPfm_v^^=pM z!1O>J#S!R>+t-p}{t+G?;g7pMON7<}c-%A`Ke>5VGF$&wv_yy9Xn8TSmZIgIB_sQ_ z7Tsw5$oi?NwWCvG;~O?iOs+vRP+(K`J^HEN_rslxKz29_5ty=nQhc9h;@sJ)TT>+w; zJHwZqA?GC_eM!j4u!T37EiIY=nC2Y4LNgArM@5hWgF@=UTLRJ>IDp-u~eyn-}bpo^z!4&g7 zQuuVotj-f&M#MSx?GgMT>nxYd;swUIM82qe4cn4Lo^!~dXv_)-q>rJbR;sDl6AB>sg8b1Jjxi^an#B$3$s zTsC|$fBr+jfaQIG5?dmaI54f^+oULo|Sh&Hm{nMms(0>au=*eVzT#`16S} zrO^o_tn-G7F$AqBx62rsZ8i2?=G9zKGOyWG(aY|~z}dizya_aKfxaZlRCj{5&53D2okzi4}egegjRsQ1<5!)~nM*snU%nt(Pj%r+LqRqwI$X zo|5{>yPoGssZB zK|fdx+2V#tm+5;nv^;7@<7VC}4Tz!(`j3EDA%l+-ga$p*K?0>|ywOgxAFbnP0KetG z#*1Isj>$ZVU-Ib;9aX*#`d*AiU&n(Afxbi9{bwi7KV=>MSU~;j8IWbMVoj=<&g7(w)z~;H?5Q^qS7hPka>o2&%l|!+Lb<7xjdV z&2PA_TdO67p%uo#D@azBM_3yxd5o0>Mj*kkj%>HY8Z*nonDMJTfN8xO0mN7rpr}bG z#F_-1Hop8?lU4noo$-#_SZXl5fT8I5v==B_2*JuT`-jnd*w#orU#NyJihg@?Y@3M) zfX2HF3UgU?>Nf8}J)TL$Fp3_}pf*e&uF&wnPOo+250v+3bj?7{^e1$3VhM%o6dzE( zkmti_o|e@}cE>#XQ{C=?g{OXJl1qw2N39lm0Tsy@G)1)0*hz|OY5C?OXoL`Hh;7W{ zd{kV_Xj*WL)SwU0T}LN_&>-N6p4mT=rUb*OI7!u4yJ*p>$ISs6a_N&g zJnQP`t_7C(xP1Z{BskR>wnE%%wu>mJ<0{GP@lMNLbAQ*xSSRQ%bjnORljjrRmzJ); zvmhVmH+v8c7$MRDG_YoOhx~x4VCOCC#(KU%Aw(5WkrDoOreK;*W?zRPksoonF}>8E zmNIp8$1MV^MV(4o*aRDCicrvro6@CbA3I-TX_BE0i6JU#20f-iOU|3^JmBzU(g&u{oh9&cB2Y%|yPIKe9FIhDp?Tq!H<`FYl&d zJ5AJOnvIO-v@KDR{bA+-w9JQFE`;RnUImlL8dbZwvb5P$EUqo5UHAo$L;cM5{{wV$ ziehRS;1s1D6{44)bC~V;nfCd6sy&pakM=XAxlh$Rhp^Evz)dt|z+##Xhkw z>~@D^j9Eo`i4cEuToxudqrN%a>Go1OKlRK~$;ISy1^w}0;!qn}aMeNb)khaSG85kb za_KgRU~iTOz9KaXF(DWj12=7~0p!QK+SfwGiM_r$_&)hx@cWj9zAD+Z61 zj(8W3mB}*er}4GW7ZhaKp^2Wcru2aF5OholWZt6YkF?7{!gBe$Cn*(Yp1F-j__$;ObLeUV_#W{If~C2Df zlOOd?jZAIWuy%CA*!US|)Q)<81aAyJ>OJsuj(US`nxo!(Kr}~X;gGM9d4ttaucxb{ zUQgGLdJjO_I_mW=)lsjf>qou*CLHy`@Lxo6!bm?KbI-tG;ovlTUpT|{64e>5r>iqu zPpi$KUhkgaR&6c)MXgT-xT`Zx^rB+kTqb6Ca zGu*0k{^h;hGhF}T!w2VO2dXn%|5W;OfHaYVlTa(5uY4mpULNb#(bkLTKz=o1vq9qg z^1Xe>x?YD&9Zo6RJ+UO)J+?Y*_pv^<^9C!n^K`{_p02aqV}b4bOT~7cuCtxLSq|IX z7TC^9RBY$zitRi-i0!Jj`q{4f;%w*XitRjIXS;fdr^En1K5SQY&e`tPF5CH+itQe& z*v>yK!FK*}5Zn0|A8xUor-kT}?W&4Pw!5{D?L5aRXS+G0X*KI;stlWMUmdplcpuw& zgB9C(x?(#|*V*p&z;^z{#|>R$=IJ`y`5PYxiN&R7yZwRfyhO!zp03!=(`vJyxvI97 z{^D%sIV-mFbe-+0x)_Ahd$y}O=k)ZxF5CGRA3n`?w^wZEpO#=d|2T;4{EH8_*v`{+ zwyP>G+3tOPZ09*nIorK{Nw&LVb=dCSKDP4)E4K4=#de;qv)vtm?fi?6o7m3Nb++?2 zJ`N{myAK4m^AZ)?dAeddPpi#-=BnCS`irxj=d9Sy({;A1>N@S&uIik#-TS+2=U;sI z#CCU7Z0DbrU_1Xfi0%A~54YIP({;A1DlXaX{e5ibIZip-UDL;QZyz-PLCc-1!*-wO zV>@rKVmnV)Z0G4Z+ua%1&cFD$iS0aHXFGr6<8X4e`(R)@FHy0brz^JewA$=vuBxr2 zzc|}@&Wi0kU1z(huG60Fs?Isv-PUD0|Kh_Zw!5=pJO8u<+xf>qZ0BEmxW#s!uCrZL zamjYK^|77jIOS}2Z6DiJi_C+o!*-wSV>@rKVmnV)Z0G4Z+Z_yS=U;r>#CD#pvz@>3 zaX2~KeJHS5A<AY*%&8$@>Fcw(~DOd}6!1Dz@`aOR$}P9K?41#fMvL=jl4zRTY

8^lZ0G4Z+xZ(Ghm*72 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

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for StandardProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl PartialEq for StandardProgram

source§

fn eq(&self, other: &StandardProgram) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for StandardProgram

source§

fn partial_cmp(&self, other: &StandardProgram) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= diff --git a/docs/sage/lir/enum.Arithmetic.html b/docs/sage/lir/enum.Arithmetic.html index 9fc7f80a..65678728 100644 --- a/docs/sage/lir/enum.Arithmetic.html +++ b/docs/sage/lir/enum.Arithmetic.html @@ -34,7 +34,7 @@ lhs: &Expr, rhs: &Expr, env: &Env -) -> Result<bool, Error>
Checks if the operation can be applied to the given expressions.
source§

impl Clone for Arithmetic

source§

fn clone(&self) -> Arithmetic

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Copy for Arithmetic

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<bool, Error>

Checks if the operation can be applied to the given expressions.
source§

impl Clone for Arithmetic

source§

fn clone(&self) -> Arithmetic

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Arithmetic

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Copy for Arithmetic

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.ConstExpr.html b/docs/sage/lir/enum.ConstExpr.html index 37ec0db5..cc86f05d 100644 --- a/docs/sage/lir/enum.ConstExpr.html +++ b/docs/sage/lir/enum.ConstExpr.html @@ -89,21 +89,21 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>
source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where - Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ConstExpr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetType for ConstExpr

source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check -recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, substitution: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for ConstExpr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ConstExpr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetType for ConstExpr

source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check +recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, substitution: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for ConstExpr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ConstExpr

source§

fn eq(&self, other: &ConstExpr) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ConstExpr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for ConstExpr

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit the number of recursive calls to prevent stack overflow. i is a -counter to prevent infinite recursion.
source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for ConstExpr

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for ConstExpr

source§

impl Send for ConstExpr

source§

impl StructuralPartialEq for ConstExpr

source§

impl Sync for ConstExpr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +counter to prevent infinite recursion.

source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for ConstExpr

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for ConstExpr

source§

impl Send for ConstExpr

source§

impl StructuralPartialEq for ConstExpr

source§

impl Sync for ConstExpr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/enum.Declaration.html b/docs/sage/lir/enum.Declaration.html index ae002542..454d105e 100644 --- a/docs/sage/lir/enum.Declaration.html +++ b/docs/sage/lir/enum.Declaration.html @@ -37,14 +37,14 @@
source

pub fn module(name: impl ToString, decls: impl Into<Vec<Self>>) -> Self

Create a module with a given name and a list of declarations

Trait Implementations§

source§

impl<T> Add<T> for Declaration
where T: Into<Declaration>,

§

type Output = Declaration

The resulting type after applying the + operator.
source§

fn add(self, other: T) -> Self::Output

Performs the + operation. Read more
source§

impl<T> AddAssign<T> for Declaration
where - T: Into<Declaration>,

source§

fn add_assign(&mut self, other: T)

Performs the += operation. Read more
source§

impl Clone for Declaration

source§

fn clone(&self) -> Declaration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Declaration

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<(&str, ConstExpr)> for Declaration

source§

fn from((name, proc): (&str, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Expr)> for Declaration

source§

fn from((name, expr): (&str, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, FFIProcedure)> for Declaration

source§

fn from((name, proc): (&str, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (&str, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration

source§

fn add_assign(&mut self, other: T)

Performs the += operation. Read more
source§

impl Clone for Declaration

source§

fn clone(&self) -> Declaration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Declaration

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<(&str, ConstExpr)> for Declaration

source§

fn from((name, proc): (&str, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Expr)> for Declaration

source§

fn from((name, expr): (&str, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, FFIProcedure)> for Declaration

source§

fn from((name, proc): (&str, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (&str, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( (name, mutability, ty, expr): (&str, Mutability, Option<Type>, Expr) -) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (&str, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, PolyProcedure)> for Declaration

source§

fn from((name, proc): (&str, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Procedure)> for Declaration

source§

fn from((name, proc): (&str, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Type)> for Declaration

source§

fn from((name, expr): (&str, Type)) -> Self

Converts to this type from the input type.
source§

impl From<(Pattern, Expr)> for Declaration

source§

fn from((pat, expr): (Pattern, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, ConstExpr)> for Declaration

source§

fn from((name, expr): (String, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Expr)> for Declaration

source§

fn from((name, expr): (String, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, FFIProcedure)> for Declaration

source§

fn from((name, proc): (String, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (String, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( +) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (&str, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, PolyProcedure)> for Declaration

source§

fn from((name, proc): (&str, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Procedure)> for Declaration

source§

fn from((name, proc): (&str, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Type)> for Declaration

source§

fn from((name, expr): (&str, Type)) -> Self

Converts to this type from the input type.
source§

impl From<(Pattern, Expr)> for Declaration

source§

fn from((pat, expr): (Pattern, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, ConstExpr)> for Declaration

source§

fn from((name, expr): (String, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Expr)> for Declaration

source§

fn from((name, expr): (String, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, FFIProcedure)> for Declaration

source§

fn from((name, proc): (String, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (String, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( (name, mutability, ty, expr): (String, Mutability, Option<Type>, Expr) -) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (String, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, PolyProcedure)> for Declaration

source§

fn from((name, proc): (String, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Procedure)> for Declaration

source§

fn from((name, proc): (String, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Type)> for Declaration

source§

fn from((name, ty): (String, Type)) -> Self

Converts to this type from the input type.
source§

impl<K, V> From<BTreeMap<K, V>> for Declaration

source§

fn from(bt: BTreeMap<K, V>) -> Self

Converts to this type from the input type.
source§

impl From<Box<Declaration>> for Declaration

source§

fn from(x: Box<Self>) -> Self

Converts to this type from the input type.
source§

impl<T> From<Vec<T>> for Declaration
where - T: Into<Declaration>,

source§

fn from(decls: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl Hash for Declaration

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (String, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, PolyProcedure)> for Declaration

source§

fn from((name, proc): (String, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Procedure)> for Declaration

source§

fn from((name, proc): (String, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Type)> for Declaration

source§

fn from((name, ty): (String, Type)) -> Self

Converts to this type from the input type.
source§

impl<K, V> From<BTreeMap<K, V>> for Declaration

source§

fn from(bt: BTreeMap<K, V>) -> Self

Converts to this type from the input type.
source§

impl From<Box<Declaration>> for Declaration

source§

fn from(x: Box<Self>) -> Self

Converts to this type from the input type.
source§

impl<T> From<Vec<T>> for Declaration
where + T: Into<Declaration>,

source§

fn from(decls: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl Hash for Declaration

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Declaration

source§

fn eq(&self, other: &Declaration) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/docs/sage/lir/enum.Error.html b/docs/sage/lir/enum.Error.html index d577fe91..729145ce 100644 --- a/docs/sage/lir/enum.Error.html +++ b/docs/sage/lir/enum.Error.html @@ -108,7 +108,7 @@
§

InvalidMonomorphize(ConstExpr)

Cannot monomorphize a constant expression.

§

DuplicateMember(Type, String)

Duplicate implementations of a member for a type

Implementations§

source§

impl Error

source

pub fn annotate(self, annotation: Annotation) -> Self

Annotate an error with some metadata.

-

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

Create an IR error from an assembly error.

+

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

Create an IR error from an assembly error.

source§

fn from(e: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where diff --git a/docs/sage/lir/enum.Expr.html b/docs/sage/lir/enum.Expr.html index 4f8e86b6..3d9ac983 100644 --- a/docs/sage/lir/enum.Expr.html +++ b/docs/sage/lir/enum.Expr.html @@ -173,21 +173,21 @@ output: &mut dyn AssemblyProgram ) -> Result<(), Error>

source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Expr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

-
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type in a given expression.

-
source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

+
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type in a given expression.

+
source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check recursion depth to prevent a possible stack overflow.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for Expr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Expr

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Expr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

-
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

+
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/enum.Mutability.html b/docs/sage/lir/enum.Mutability.html index 6beb9c79..9133f124 100644 --- a/docs/sage/lir/enum.Mutability.html +++ b/docs/sage/lir/enum.Mutability.html @@ -21,9 +21,9 @@

Trait Implementations§

source§

impl Clone for Mutability

source§

fn clone(&self) -> Mutability

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Mutability

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Mutability

source§

fn default() -> Mutability

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Mutability

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Mutability

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Mutability> for bool

Convert a mutability into a boolean. It will return true if the data is mutable (or any), and false if it is immutable.

-
source§

fn from(m: Mutability) -> Self

Converts to this type from the input type.
source§

impl From<bool> for Mutability

Convert a boolean into a mutability. +

source§

fn from(m: Mutability) -> Self

Converts to this type from the input type.
source§

impl From<bool> for Mutability

Convert a boolean into a mutability. True is mutable, false is immutable.

-
source§

fn from(b: bool) -> Self

Converts to this type from the input type.
source§

impl Hash for Mutability

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +
source§

fn from(b: bool) -> Self

Converts to this type from the input type.

source§

impl Hash for Mutability

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Mutability

source§

fn cmp(&self, other: &Mutability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/enum.Pattern.html b/docs/sage/lir/enum.Pattern.html index b0b633db..bd43e1ef 100644 --- a/docs/sage/lir/enum.Pattern.html +++ b/docs/sage/lir/enum.Pattern.html @@ -84,8 +84,8 @@ defining the bindings in the environment to map to the correct position in the stack relative to the expression. If the expression and pattern differ in size or type, then this will not work correctly. This function does not check the arguments.

-

Trait Implementations§

source§

impl Clone for Pattern

source§

fn clone(&self) -> Pattern

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Pattern

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Pattern

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Pattern

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Pattern

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for Pattern

source§

fn clone(&self) -> Pattern

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Pattern

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Pattern

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Pattern

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Pattern

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Pattern

source§

fn eq(&self, other: &Pattern) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/docs/sage/lir/enum.Type.html b/docs/sage/lir/enum.Type.html index a140e3a8..ff715bec 100644 --- a/docs/sage/lir/enum.Type.html +++ b/docs/sage/lir/enum.Type.html @@ -69,7 +69,7 @@ This type is used to implement generics.

§

ConstParam(Box<ConstExpr>)

A constant literal used in a type expression, like a template application with a constant parameter.

-

Implementations§

source§

impl Type

source

pub const SIMPLIFY_RECURSION_LIMIT: usize = 30usize

This is the maximum number of times a type will be simplified recursively.

+

Implementations§

source§

impl Type

source

pub const SIMPLIFY_RECURSION_LIMIT: usize = 30usize

This is the maximum number of times a type will be simplified recursively.

source

pub fn is_recursive(&self, env: &Env) -> Result<bool, Error>

source

pub fn is_const_param(&self) -> bool

source

pub fn is_recursive_helper( &self, symbols: &mut HashSet<String>, @@ -128,12 +128,12 @@ env: &Env, checked: bool ) -> Result<Self, Error>

Simplify until the type is concrete.

-
source

pub fn simplify_until_const_param( +

source

pub fn simplify_until_const_param( &self, env: &Env, _checked: bool ) -> Result<ConstExpr, Error>

Simplify until the type is concrete.

-
source

pub fn simplify_until_matches( +

source

pub fn simplify_until_matches( self, env: &Env, expected: Self, @@ -143,42 +143,42 @@ This will perform template applications to simplify the type if possible as well.

This is usually too verbose to be used on its own, better to make a wrapper function that calls this with a more specific use case/purpose.

-

source

pub fn let_bind(name: &str, t: Self, ret: Self) -> Self

Create a let-bound type.

-
source

pub fn variant_index(variants: &[String], variant: &String) -> Option<usize>

Calculate the integral value of a variant in an enum.

-
source

pub fn contains_symbol(&self, name: &str) -> bool

Does this type contain a symbol with the given name? +

source

pub fn let_bind(name: &str, t: Self, ret: Self) -> Self

Create a let-bound type.

+
source

pub fn variant_index(variants: &[String], variant: &String) -> Option<usize>

Calculate the integral value of a variant in an enum.

+
source

pub fn contains_symbol(&self, name: &str) -> bool

Does this type contain a symbol with the given name? This will not count overshadowded versions of the symbol (overwritten by let-bindings).

-
source

pub fn substitute(&self, name: &str, substitution: &Self) -> Self

Substitute all occurences of a symbol with another type. +

source

pub fn substitute(&self, name: &str, substitution: &Self) -> Self

Substitute all occurences of a symbol with another type. This will not traverse into let-bindings when the symbol is overshadowed.

-
source

pub fn has_element_type(&self, element: &Self, env: &Env) -> Result<bool, Error>

Does this type have an element type matching the supplied type? +

source

pub fn has_element_type(&self, element: &Self, env: &Env) -> Result<bool, Error>

Does this type have an element type matching the supplied type? If this type is an array of Integers, for example, then this function will return true if the supplied type is an Integer.

-
source

pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result<bool, Error>

Can this type decay into another type?

+
source

pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result<bool, Error>

Can this type decay into another type?

A type can decay into another type if the compiler can automatically convert the type into the other type. This is distinct from the compiler seeing the types as equal. The two types are not equal; the compiler will just automatically perform the conversion.

For all cases right now, a decay does nothing; the representations of the types in the compiler are the same for all types of decay.

-
source

pub fn can_cast_to(&self, other: &Self, env: &Env) -> Result<bool, Error>

Can this type be cast to another type?

-
source

pub fn equals(&self, other: &Self, env: &Env) -> Result<bool, Error>

Are two types structurally equal?

-
source

pub fn perform_template_applications( +

source

pub fn can_cast_to(&self, other: &Self, env: &Env) -> Result<bool, Error>

Can this type be cast to another type?

+
source

pub fn equals(&self, other: &Self, env: &Env) -> Result<bool, Error>

Are two types structurally equal?

+
source

pub fn perform_template_applications( &self, env: &Env, previous_applications: &mut HashMap<(Type, Vec<Type>), Type>, checked: bool ) -> Result<Self, Error>

Perform type applications if possible.

Trait Implementations§

source§

impl Clone for Type

source§

fn clone(&self) -> Type

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Type

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetSize for Type

Calculate the size of a type in units of cells.

-
source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetSize for Type

Calculate the size of a type in units of cells.

+
source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite -recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl Hash for Type

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +recursion.

source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl Hash for Type

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Type

source§

fn eq(&self, other: &Type) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Type

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for Type

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit + __S: Serializer,
Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for Type

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

-
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for Type

source§

impl Send for Type

source§

impl StructuralPartialEq for Type

source§

impl Sync for Type

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

source§

impl Eq for Type

source§

impl Send for Type

source§

impl StructuralPartialEq for Type

source§

impl Sync for Type

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.And.html b/docs/sage/lir/struct.And.html index d30666eb..f201eeed 100644 --- a/docs/sage/lir/struct.And.html +++ b/docs/sage/lir/struct.And.html @@ -32,7 +32,7 @@ rhs: &Expr, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>
Compiles the operation on the given expressions.
source§

impl Clone for And

source§

fn clone(&self) -> And

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for And

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for And

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for And

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Result<(), Error>

Compiles the operation on the given expressions.
source§

impl Clone for And

source§

fn clone(&self) -> And

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for And

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for And

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for And

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for And

source§

fn cmp(&self, other: &And) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/struct.Assign.html b/docs/sage/lir/struct.Assign.html index 8911781b..ac7aa77e 100644 --- a/docs/sage/lir/struct.Assign.html +++ b/docs/sage/lir/struct.Assign.html @@ -34,7 +34,7 @@ dst: &Expr, src: &Expr, env: &Env -) -> Result<bool, Error>

Checks if the operation can be applied to the given expressions.
source§

impl Clone for Assign

source§

fn clone(&self) -> Assign

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Assign

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Assign

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Assign

§

impl Send for Assign

§

impl Sync for Assign

§

impl Unpin for Assign

§

impl !UnwindSafe for Assign

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<bool, Error>

Checks if the operation can be applied to the given expressions.
source§

impl Clone for Assign

source§

fn clone(&self) -> Assign

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Assign

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Assign

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Assign

§

impl Send for Assign

§

impl Sync for Assign

§

impl Unpin for Assign

§

impl !UnwindSafe for Assign

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.BitwiseAnd.html b/docs/sage/lir/struct.BitwiseAnd.html index 0c4e3200..d614421f 100644 --- a/docs/sage/lir/struct.BitwiseAnd.html +++ b/docs/sage/lir/struct.BitwiseAnd.html @@ -27,7 +27,7 @@ rhs: &Expr, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>
Compiles the operation on the given expressions.
source§

impl Clone for BitwiseAnd

source§

fn clone(&self) -> BitwiseAnd

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BitwiseAnd

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for BitwiseAnd

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for BitwiseAnd

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Result<(), Error>

Compiles the operation on the given expressions.
source§

impl Clone for BitwiseAnd

source§

fn clone(&self) -> BitwiseAnd

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BitwiseAnd

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for BitwiseAnd

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for BitwiseAnd

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for BitwiseAnd

source§

fn cmp(&self, other: &BitwiseAnd) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/struct.BitwiseNor.html b/docs/sage/lir/struct.BitwiseNor.html index adb87caf..89b68b5d 100644 --- a/docs/sage/lir/struct.BitwiseNor.html +++ b/docs/sage/lir/struct.BitwiseNor.html @@ -27,7 +27,7 @@ rhs: &Expr, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>

Compiles the operation on the given expressions.
source§

impl Clone for BitwiseNor

source§

fn clone(&self) -> BitwiseNor

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BitwiseNor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for BitwiseNor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for BitwiseNor

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Result<(), Error>

Compiles the operation on the given expressions.
source§

impl Clone for BitwiseNor

source§

fn clone(&self) -> BitwiseNor

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BitwiseNor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for BitwiseNor

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for BitwiseNor

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for BitwiseNor

source§

fn cmp(&self, other: &BitwiseNor) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/struct.BitwiseNot.html b/docs/sage/lir/struct.BitwiseNot.html index c5ae3727..711c08f9 100644 --- a/docs/sage/lir/struct.BitwiseNot.html +++ b/docs/sage/lir/struct.BitwiseNot.html @@ -1,5 +1,5 @@ BitwiseNot in sage::lir - Rust -

Struct sage::lir::BitwiseNot

source ·
pub struct BitwiseNot;

Trait Implementations§

source§

impl Clone for BitwiseNot

source§

fn clone(&self) -> BitwiseNot

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BitwiseNot

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for BitwiseNot

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for BitwiseNot

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Struct sage::lir::BitwiseNot

source ·
pub struct BitwiseNot;

Trait Implementations§

source§

impl Clone for BitwiseNot

source§

fn clone(&self) -> BitwiseNot

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BitwiseNot

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for BitwiseNot

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for BitwiseNot

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for BitwiseNot

source§

fn cmp(&self, other: &BitwiseNot) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/struct.CoreBuiltin.html b/docs/sage/lir/struct.CoreBuiltin.html index 395beba1..1d4c06dc 100644 --- a/docs/sage/lir/struct.CoreBuiltin.html +++ b/docs/sage/lir/struct.CoreBuiltin.html @@ -18,8 +18,8 @@ _env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where - Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for CoreBuiltin

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for CoreBuiltin

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for CoreBuiltin

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl GetType for CoreBuiltin

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check + Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for CoreBuiltin

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for CoreBuiltin

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for CoreBuiltin

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl GetType for CoreBuiltin

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for CoreBuiltin

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for CoreBuiltin

source§

fn eq(&self, other: &CoreBuiltin) -> bool

This method tests for self and other values to be equal, and is used @@ -29,8 +29,8 @@ T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.Data.html b/docs/sage/lir/struct.Data.html index 63d1cb04..7aec1ddb 100644 --- a/docs/sage/lir/struct.Data.html +++ b/docs/sage/lir/struct.Data.html @@ -1,6 +1,6 @@ Data in sage::lir - Rust

Struct sage::lir::Data

source ·
pub struct Data;
Expand description

Get the Union data associated with a tagged union (EnumUnion).

-

Trait Implementations§

source§

impl Clone for Data

source§

fn clone(&self) -> Data

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Data

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for Data

source§

fn clone(&self) -> Data

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Data

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Data

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Data

source§

fn cmp(&self, other: &Data) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/struct.Env.html b/docs/sage/lir/struct.Env.html index ed69cd45..b09e9580 100644 --- a/docs/sage/lir/struct.Env.html +++ b/docs/sage/lir/struct.Env.html @@ -1,7 +1,7 @@ Env in sage::lir - Rust

Struct sage::lir::Env

source ·
pub struct Env { /* private fields */ }
Expand description

An environment under which expressions and types are compiled and typechecked. This is essentially the scope of an expression.

-

Implementations§

source§

impl Env

Implementations§

source§

impl Env

source

pub fn get_type_of_associated_const( &self, ty: &Type, name: &str @@ -15,21 +15,22 @@ ty: Type, associated_const_name: impl ToString, expr: ConstExpr -) -> Result<(), Error>

source

pub fn define_types(&mut self, types: Vec<(String, Type)>)

Define multiple types with the given names under this environment.

+) -> Result<(), Error>

source

pub fn define_types(&mut self, types: Vec<(String, Type)>)

Define multiple types with the given names under this environment.

This must be used in situations where the different types depend on each other. This is because the sizes of types are memoized, and this will interfere with the memoization process if the types are defined separately. It will lead to typechecking errors if the environment does not already have a memoized size for the type of a subexpression.

-
source

pub fn define_var( +

source

pub fn define_var( &mut self, var: impl ToString, mutability: Mutability, - ty: Type + ty: Type, + compiling: bool ) -> Result<isize, Error>

Define a variable in the current scope. This will increment the scope’s frame pointer offset by the size of the variable. This method returns the offset of the variable from the frame pointer under this scope.

-

Trait Implementations§

source§

impl Clone for Env

source§

fn clone(&self) -> Env

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Env

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Env

§

impl Send for Env

§

impl Sync for Env

§

impl Unpin for Env

§

impl !UnwindSafe for Env

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Env

source§

fn clone(&self) -> Env

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Env

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Env

§

impl Send for Env

§

impl Sync for Env

§

impl Unpin for Env

§

impl !UnwindSafe for Env

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.FFIProcedure.html b/docs/sage/lir/struct.FFIProcedure.html index 98b80b6b..21fc1b8b 100644 --- a/docs/sage/lir/struct.FFIProcedure.html +++ b/docs/sage/lir/struct.FFIProcedure.html @@ -9,8 +9,8 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>
source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where - Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for FFIProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FFIProcedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FFIProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl GetType for FFIProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check + Self: Sized + Clone,
Compile the expression into an assembly program. Read more
source§

impl Debug for FFIProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FFIProcedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FFIProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl GetType for FFIProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, substitution: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for FFIProcedure

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for FFIProcedure

source§

fn eq(&self, other: &FFIProcedure) -> bool

This method tests for self and other values to be equal, and is used @@ -20,8 +20,8 @@ T: 'static + ?Sized,
source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.Get.html b/docs/sage/lir/struct.Get.html index 2496e120..26494904 100644 --- a/docs/sage/lir/struct.Get.html +++ b/docs/sage/lir/struct.Get.html @@ -1,5 +1,5 @@ Get in sage::lir - Rust -

Struct sage::lir::Get

source ·
pub struct Get;

Trait Implementations§

source§

impl Clone for Get

source§

fn clone(&self) -> Get

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Get

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Struct sage::lir::Get

source ·
pub struct Get;

Trait Implementations§

source§

impl Clone for Get

source§

fn clone(&self) -> Get

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Get

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Get

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Get

source§

fn cmp(&self, other: &Get) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/struct.New.html b/docs/sage/lir/struct.New.html index 69da1408..63e7cf0c 100644 --- a/docs/sage/lir/struct.New.html +++ b/docs/sage/lir/struct.New.html @@ -1,5 +1,5 @@ New in sage::lir - Rust -

Struct sage::lir::New

source ·
pub struct New;

Trait Implementations§

source§

impl Clone for New

source§

fn clone(&self) -> New

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for New

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for New

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for New

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Struct sage::lir::New

source ·
pub struct New;

Trait Implementations§

source§

impl Clone for New

source§

fn clone(&self) -> New

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for New

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for New

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for New

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for New

source§

fn cmp(&self, other: &New) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/lir/struct.Not.html b/docs/sage/lir/struct.Not.html index 865b640f..5e641845 100644 --- a/docs/sage/lir/struct.Not.html +++ b/docs/sage/lir/struct.Not.html @@ -1,6 +1,6 @@ Not in sage::lir - Rust

Struct sage::lir::Not

source ·
pub struct Not;
Expand description

A boolean “Not” operation on a value.

-

Trait Implementations§

source§

impl Clone for Not

source§

fn clone(&self) -> Not

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Not

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Not

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl UnaryOp for Not

source§

fn can_apply(&self, expr: &Type, env: &Env) -> Result<bool, Error>

Can this unary operation be applied to the given type?

+

Trait Implementations§

source§

impl Clone for Not

source§

fn clone(&self) -> Not

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Not

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Not

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl UnaryOp for Not

source§

fn can_apply(&self, expr: &Type, env: &Env) -> Result<bool, Error>

Can this unary operation be applied to the given type?

source§

fn return_type(&self, _expr: &Expr, _env: &Env) -> Result<Type, Error>

Get the type of the result of applying this unary operation to the given type.

source§

fn eval(&self, expr: &ConstExpr, env: &mut Env) -> Result<ConstExpr, Error>

Evaluate this unary operation on the given constant values.

source§

fn compile_types( diff --git a/docs/sage/lir/struct.Or.html b/docs/sage/lir/struct.Or.html index a5490ec5..6a39b773 100644 --- a/docs/sage/lir/struct.Or.html +++ b/docs/sage/lir/struct.Or.html @@ -32,7 +32,7 @@ rhs: &Expr, env: &mut Env, output: &mut dyn AssemblyProgram -) -> Result<(), Error>

Compiles the operation on the given expressions.
source§

impl Clone for Or

source§

fn clone(&self) -> Or

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Or

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Or

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Copy for Or

Auto Trait Implementations§

§

impl RefUnwindSafe for Or

§

impl Send for Or

§

impl Sync for Or

§

impl Unpin for Or

§

impl UnwindSafe for Or

Blanket Implementations§

source§

impl<T> Any for T
where +) -> Result<(), Error>

Compiles the operation on the given expressions.
source§

impl Clone for Or

source§

fn clone(&self) -> Or

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Or

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Display for Or

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Copy for Or

Auto Trait Implementations§

§

impl RefUnwindSafe for Or

§

impl Send for Or

§

impl Sync for Or

§

impl Unpin for Or

§

impl UnwindSafe for Or

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.PolyProcedure.html b/docs/sage/lir/struct.PolyProcedure.html index 8369eecc..812a854f 100644 --- a/docs/sage/lir/struct.PolyProcedure.html +++ b/docs/sage/lir/struct.PolyProcedure.html @@ -1,8 +1,8 @@ -PolyProcedure in sage::lir - Rust +PolyProcedure in sage::lir - Rust

Struct sage::lir::PolyProcedure

source ·
pub struct PolyProcedure { /* private fields */ }
Expand description

A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments. This is mono-morphed into a Procedure when it is called with a list of type arguments. A procedure is compiled down to a label in the assembly code.

-

Implementations§

source§

impl PolyProcedure

source

pub fn new( +

Implementations§

source§

impl PolyProcedure

source

pub fn new( name: String, ty_params: Vec<(String, Option<Type>)>, args: Vec<(String, Mutability, Type)>, @@ -10,32 +10,32 @@ body: impl Into<Expr> ) -> Self

Construct a new polymorphic procedure with type parameters, a list of arguments + their types, a return type, and the body of the procedure.

-
source

pub fn with(&self, decls: impl Into<Declaration>) -> Self

source

pub fn from_mono( +

source

pub fn with(&self, decls: impl Into<Declaration>) -> Self

source

pub fn get_type_params(&self) -> &Vec<(String, Option<Type>)>

source

pub fn from_mono( mono: Procedure, ty_params: Vec<(String, Option<Type>)> -) -> Self

source

pub fn get_name(&self) -> &str

Get the name of this polymorphic procedure. +) -> Self

source

pub fn get_name(&self) -> &str

Get the name of this polymorphic procedure. This is not the mangled name, but the name known to the LIR front-end. The mangled name is unique for each monomorph of the procedure.

-
source

pub fn monomorphize( +

source

pub fn monomorphize( &self, ty_args: Vec<Type>, env: &Env ) -> Result<Procedure, Error>

Take some type arguments and produce a monomorphized version of the procedure. This monomorphized version can then be compiled directly. Additionally, the mono version of the procedure is memoized, so that it is only compiled once.

-

Trait Implementations§

source§

impl Clone for PolyProcedure

source§

fn clone(&self) -> PolyProcedure

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for PolyProcedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl GetType for PolyProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check -recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for PolyProcedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for PolyProcedure

source§

fn clone(&self) -> PolyProcedure

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for PolyProcedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl GetType for PolyProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check +recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for PolyProcedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for PolyProcedure

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for PolyProcedure

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for PolyProcedure

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for PolyProcedure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for PolyProcedure

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for PolyProcedure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.Procedure.html b/docs/sage/lir/struct.Procedure.html index dc42c4d6..e32a6d96 100644 --- a/docs/sage/lir/struct.Procedure.html +++ b/docs/sage/lir/struct.Procedure.html @@ -24,8 +24,8 @@ env: &mut Env, output: &mut dyn AssemblyProgram ) -> Result<(), Error>

source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where - Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Procedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl GetType for Procedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check + Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Procedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl GetType for Procedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for Procedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Procedure

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used @@ -35,8 +35,8 @@ T: 'static + ?Sized,
source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/struct.StandardBuiltin.html b/docs/sage/lir/struct.StandardBuiltin.html index 604a667b..a0cb61fe 100644 --- a/docs/sage/lir/struct.StandardBuiltin.html +++ b/docs/sage/lir/struct.StandardBuiltin.html @@ -30,8 +30,8 @@ T: 'static + ?Sized,
source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T> GetSize for T
where - T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive +
source§

impl<T> GetSize for T
where + T: GetType,

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

diff --git a/docs/sage/lir/trait.GetSize.html b/docs/sage/lir/trait.GetSize.html index f00aa55f..33975fb7 100644 --- a/docs/sage/lir/trait.GetSize.html +++ b/docs/sage/lir/trait.GetSize.html @@ -10,8 +10,8 @@ calls to prevent stack overflow. i is a counter to prevent infinite recursion.

Provided Methods§

source

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).

-

Implementors§

source§

impl GetSize for Type

Calculate the size of a type in units of cells.

-
source§

impl<T> GetSize for T
where +

Implementors§

source§

impl GetSize for Type

Calculate the size of a type in units of cells.

+
source§

impl<T> GetSize for T
where T: GetType,

Implement GetSize for any type that implements GetType.

We can do this because the size of a variable should be exactly the size of its type.

diff --git a/docs/sage/lir/trait.GetType.html b/docs/sage/lir/trait.GetType.html index 19639829..b6591d6d 100644 --- a/docs/sage/lir/trait.GetType.html +++ b/docs/sage/lir/trait.GetType.html @@ -12,5 +12,5 @@ recursion depth to prevent a possible stack overflow.

source

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.

Provided Methods§

source

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.

-
source

fn substitute_types(&mut self, names: &[String], types: &[Type])

Implementors§

source§

impl GetType for ConstExpr

source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

-
source§

impl GetType for CoreBuiltin

source§

impl GetType for FFIProcedure

source§

impl GetType for PolyProcedure

source§

impl GetType for Procedure

source§

impl GetType for StandardBuiltin

\ No newline at end of file +
source

fn substitute_types(&mut self, names: &[String], types: &[Type])

Implementors§

source§

impl GetType for ConstExpr

source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

+
source§

impl GetType for CoreBuiltin

source§

impl GetType for FFIProcedure

source§

impl GetType for PolyProcedure

source§

impl GetType for Procedure

source§

impl GetType for StandardBuiltin

\ No newline at end of file diff --git a/docs/sage/lir/trait.Simplify.html b/docs/sage/lir/trait.Simplify.html index cb1fed26..9d1af68f 100644 --- a/docs/sage/lir/trait.Simplify.html +++ b/docs/sage/lir/trait.Simplify.html @@ -10,4 +10,4 @@ the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.

Provided Methods§

source

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/sage/lir/trait.TypeCheck.html b/docs/sage/lir/trait.TypeCheck.html index 2b08a4e5..f07b88dc 100644 --- a/docs/sage/lir/trait.TypeCheck.html +++ b/docs/sage/lir/trait.TypeCheck.html @@ -6,6 +6,6 @@

Whenever this is applied, it will return Ok(()) if the typing is sound, and Err(...) if it is not.

Required Methods§

source

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

-

Implementors§

source§

impl TypeCheck for ConstExpr

source§

impl TypeCheck for Declaration

source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

+

Implementors§

source§

impl TypeCheck for ConstExpr

source§

impl TypeCheck for Declaration

source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

-
source§

impl TypeCheck for CoreBuiltin

source§

impl TypeCheck for FFIProcedure

source§

impl TypeCheck for PolyProcedure

source§

impl TypeCheck for Procedure

source§

impl TypeCheck for StandardBuiltin

\ No newline at end of file +
source§

impl TypeCheck for CoreBuiltin

source§

impl TypeCheck for FFIProcedure

source§

impl TypeCheck for PolyProcedure

source§

impl TypeCheck for Procedure

source§

impl TypeCheck for StandardBuiltin

\ No newline at end of file diff --git a/docs/sage/side_effects/io/enum.Axis.html b/docs/sage/side_effects/io/enum.Axis.html index 5b91d32f..3cf24ab1 100644 --- a/docs/sage/side_effects/io/enum.Axis.html +++ b/docs/sage/side_effects/io/enum.Axis.html @@ -4,8 +4,8 @@ Y, Z, }
Expand description

The different axes an input or output might use.

-

Variants§

Trait Implementations§

source§

impl Clone for Axis

source§

fn clone(&self) -> Axis

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Axis

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Axis

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Axis

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Axis

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Variants§

Trait Implementations§

source§

impl Clone for Axis

source§

fn clone(&self) -> Axis

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Axis

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Axis

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Axis

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Axis

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Axis

source§

fn cmp(&self, other: &Axis) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/side_effects/io/enum.Direction.html b/docs/sage/side_effects/io/enum.Direction.html index 97d1e600..820e0d16 100644 --- a/docs/sage/side_effects/io/enum.Direction.html +++ b/docs/sage/side_effects/io/enum.Direction.html @@ -5,8 +5,8 @@ Left, Right, }
Expand description

The different directions a D-Pad a might use.

-

Variants§

§

Up

§

Down

§

Left

§

Right

Trait Implementations§

source§

impl Clone for Direction

source§

fn clone(&self) -> Direction

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Direction

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Direction

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Direction

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Direction

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Variants§

§

Up

§

Down

§

Left

§

Right

Trait Implementations§

source§

impl Clone for Direction

source§

fn clone(&self) -> Direction

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Direction

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Direction

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Direction

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Direction

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Direction

source§

fn cmp(&self, other: &Direction) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/side_effects/io/struct.Channel.html b/docs/sage/side_effects/io/struct.Channel.html index f08678e6..e4dee3a0 100644 --- a/docs/sage/side_effects/io/struct.Channel.html +++ b/docs/sage/side_effects/io/struct.Channel.html @@ -1,7 +1,7 @@ Channel in sage::side_effects::io - Rust

Struct sage::side_effects::io::Channel

source ·
pub struct Channel(pub usize);
Expand description

The channel to use for a given I/O mode.

-

Tuple Fields§

§0: usize

Trait Implementations§

source§

impl Clone for Channel

source§

fn clone(&self) -> Channel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Channel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Channel

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Channel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Channel

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Tuple Fields§

§0: usize

Trait Implementations§

source§

impl Clone for Channel

source§

fn clone(&self) -> Channel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Channel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Channel

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Channel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Channel

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Channel

source§

fn cmp(&self, other: &Channel) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/side_effects/io/struct.Input.html b/docs/sage/side_effects/io/struct.Input.html index 0fe32012..305e5251 100644 --- a/docs/sage/side_effects/io/struct.Input.html +++ b/docs/sage/side_effects/io/struct.Input.html @@ -11,8 +11,8 @@

source

pub const fn stdin_float() -> Self

Input from STDIN (float)

source

pub const fn random() -> Self

A random number

source

pub const fn clock() -> Self

The time (in seconds) since the program started

-

Trait Implementations§

source§

impl Clone for Input

source§

fn clone(&self) -> Input

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Input

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Input

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Input

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Input

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for Input

source§

fn clone(&self) -> Input

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Input

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Input

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Input

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl Hash for Input

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Input

source§

fn cmp(&self, other: &Input) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/vm/enum.CoreOp.html b/docs/sage/vm/enum.CoreOp.html index 664d8fdc..27167e2e 100644 --- a/docs/sage/vm/enum.CoreOp.html +++ b/docs/sage/vm/enum.CoreOp.html @@ -117,7 +117,7 @@ The argument is the size of the vector to check if the register is non-negative.

§

Get(Input)

Get a value from an input source and store it in the register.

§

Put(Output)

Write the value of the register to an output source.

-

Trait Implementations§

source§

impl Clone for CoreOp

source§

fn clone(&self) -> CoreOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CoreOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CoreOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for CoreOp

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for CoreOp

source§

fn clone(&self) -> CoreOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CoreOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CoreOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for CoreOp

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for CoreOp

source§

fn cmp(&self, other: &CoreOp) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/vm/enum.StandardOp.html b/docs/sage/vm/enum.StandardOp.html index 39622c8f..8a4250f0 100644 --- a/docs/sage/vm/enum.StandardOp.html +++ b/docs/sage/vm/enum.StandardOp.html @@ -1,5 +1,5 @@ StandardOp in sage::vm - Rust -

Enum sage::vm::StandardOp

source ·
pub enum StandardOp {
+    

Enum sage::vm::StandardOp

source ·
pub enum StandardOp {
 
Show 23 variants CoreOp(CoreOp), Set(Vec<f64>), Alloc, @@ -61,11 +61,11 @@ FFI buffer of cells. Whenever an FFI function is called, it will receive its arguments from this buffer.

§

Call(FFIBinding)

Call a foreign function interface function.

-

Trait Implementations§

source§

impl Clone for StandardOp

source§

fn clone(&self) -> StandardOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for StandardOp

source§

fn eq(&self, other: &StandardOp) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for StandardOp

source§

fn clone(&self) -> StandardOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for StandardOp

source§

fn eq(&self, other: &StandardOp) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for StandardOp

source§

fn partial_cmp(&self, other: &StandardOp) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for StandardOp

source§

fn partial_cmp(&self, other: &StandardOp) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl StructuralPartialEq for StandardOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

source§

impl StructuralPartialEq for StandardOp

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/vm/struct.CoreProgram.html b/docs/sage/vm/struct.CoreProgram.html index 6d1f8a2d..7bb7c885 100644 --- a/docs/sage/vm/struct.CoreProgram.html +++ b/docs/sage/vm/struct.CoreProgram.html @@ -5,7 +5,7 @@
source

pub fn get_main(&self) -> Vec<CoreOp>

Get the code outside of any functions.

source

pub fn get_functions(&self) -> HashMap<i32, Vec<CoreOp>>

Get the code for each function.

source

pub fn get_main_and_functions(self) -> (Vec<CoreOp>, HashMap<i32, Vec<CoreOp>>)

Get the code outside of any functions, and the code for each function.

-

Trait Implementations§

source§

impl Clone for CoreProgram

source§

fn clone(&self) -> CoreProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Default for CoreProgram

source§

fn default() -> CoreProgram

Returns the “default value” for a type. Read more
source§

impl Display for CoreProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl Hash for CoreProgram

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Trait Implementations§

source§

impl Clone for CoreProgram

source§

fn clone(&self) -> CoreProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Default for CoreProgram

source§

fn default() -> CoreProgram

Returns the “default value” for a type. Read more
source§

impl Display for CoreProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl Hash for CoreProgram

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for CoreProgram

source§

fn cmp(&self, other: &CoreProgram) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/vm/struct.StandardProgram.html b/docs/sage/vm/struct.StandardProgram.html index f677fd1d..037cdb19 100644 --- a/docs/sage/vm/struct.StandardProgram.html +++ b/docs/sage/vm/struct.StandardProgram.html @@ -1,17 +1,17 @@ StandardProgram in sage::vm - Rust -

Struct sage::vm::StandardProgram

source ·
pub struct StandardProgram(pub Vec<StandardOp>);
Expand description

A program of core and standard virtual machine instructions.

-

Tuple Fields§

§0: Vec<StandardOp>

Implementations§

source§

impl StandardProgram

source

pub fn flatten(self) -> Self

Flatten a core program so that all of its functions +

Struct sage::vm::StandardProgram

source ·
pub struct StandardProgram(pub Vec<StandardOp>);
Expand description

A program of core and standard virtual machine instructions.

+

Tuple Fields§

§0: Vec<StandardOp>

Implementations§

source§

impl StandardProgram

source

pub fn flatten(self) -> Self

Flatten a core program so that all of its functions are defined sequentially at the beginning.

-
source

pub fn get_main(&self) -> Vec<StandardOp>

Get the code outside of any functions.

-
source

pub fn get_functions(&self) -> HashMap<i32, Vec<StandardOp>>

Get the code for each function.

-
source

pub fn get_main_and_functions( +

source

pub fn get_main(&self) -> Vec<StandardOp>

Get the code outside of any functions.

+
source

pub fn get_functions(&self) -> HashMap<i32, Vec<StandardOp>>

Get the code for each function.

+
source

pub fn get_main_and_functions( self ) -> (Vec<StandardOp>, HashMap<i32, Vec<StandardOp>>)

Get the code outside of any functions, and the code for each function.

-

Trait Implementations§

source§

impl Clone for StandardProgram

source§

fn clone(&self) -> StandardProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Default for StandardProgram

source§

fn default() -> StandardProgram

Returns the “default value” for a type. Read more
source§

impl Display for StandardProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl PartialEq for StandardProgram

source§

fn eq(&self, other: &StandardProgram) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for StandardProgram

source§

fn clone(&self) -> StandardProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Default for StandardProgram

source§

fn default() -> StandardProgram

Returns the “default value” for a type. Read more
source§

impl Display for StandardProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl PartialEq for StandardProgram

source§

fn eq(&self, other: &StandardProgram) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for StandardProgram

source§

fn partial_cmp(&self, other: &StandardProgram) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for StandardProgram

source§

fn partial_cmp(&self, other: &StandardProgram) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl VirtualMachineProgram for StandardProgram

source§

fn op(&mut self, op: CoreOp)

source§

fn std_op(&mut self, op: StandardOp) -> Result<(), Error>

source§

fn code(&self) -> Result<CoreProgram, StandardProgram>

source§

fn set_float_vector(&mut self, vector: Vec<f64>) -> Result<(), Error>

source§

fn set_vector(&mut self, vector: Vec<i64>)

source§

fn store_vector(&mut self, n: usize)

source§

fn load_vector(&mut self, n: usize)

source§

fn ffi_call(&mut self, ffi: FFIBinding) -> Result<(), Error>

source§

fn poke(&mut self) -> Result<(), Error>

source§

fn peek(&mut self) -> Result<(), Error>

source§

fn comment(&mut self, comment: &str)

source§

fn restore(&mut self)

source§

fn save(&mut self)

source§

fn ret(&mut self)

source§

fn where_is_pointer(&mut self)

source§

fn deref(&mut self)

source§

fn refer(&mut self)

source§

fn move_pointer(&mut self, cells: isize)

source§

fn set_register(&mut self, val: i64)

source§

fn set_float_register(&mut self, val: f64) -> Result<(), Error>

source§

fn begin_while(&mut self)

source§

fn begin_if(&mut self)

source§

fn begin_else(&mut self)

source§

fn begin_function(&mut self)

source§

fn end(&mut self)

source§

fn call(&mut self)

source§

fn index(&mut self)

source§

fn bitwise_nand(&mut self)

source§

fn get(&mut self, src: Input)

source§

fn put(&mut self, dst: Output)

source§

fn is_non_negative(&mut self)

source§

impl StructuralPartialEq for StandardProgram

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

source§

impl VirtualMachineProgram for StandardProgram

source§

fn op(&mut self, op: CoreOp)

source§

fn std_op(&mut self, op: StandardOp) -> Result<(), Error>

source§

fn code(&self) -> Result<CoreProgram, StandardProgram>

source§

fn set_float_vector(&mut self, vector: Vec<f64>) -> Result<(), Error>

source§

fn set_vector(&mut self, vector: Vec<i64>)

source§

fn store_vector(&mut self, n: usize)

source§

fn load_vector(&mut self, n: usize)

source§

fn ffi_call(&mut self, ffi: FFIBinding) -> Result<(), Error>

source§

fn poke(&mut self) -> Result<(), Error>

source§

fn peek(&mut self) -> Result<(), Error>

source§

fn comment(&mut self, comment: &str)

source§

fn restore(&mut self)

source§

fn save(&mut self)

source§

fn ret(&mut self)

source§

fn where_is_pointer(&mut self)

source§

fn deref(&mut self)

source§

fn refer(&mut self)

source§

fn move_pointer(&mut self, cells: isize)

source§

fn set_register(&mut self, val: i64)

source§

fn set_float_register(&mut self, val: f64) -> Result<(), Error>

source§

fn begin_while(&mut self)

source§

fn begin_if(&mut self)

source§

fn begin_else(&mut self)

source§

fn begin_function(&mut self)

source§

fn end(&mut self)

source§

fn call(&mut self)

source§

fn index(&mut self)

source§

fn bitwise_nand(&mut self)

source§

fn get(&mut self, src: Input)

source§

fn put(&mut self, dst: Output)

source§

fn is_non_negative(&mut self)

source§

impl StructuralPartialEq for StandardProgram

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/vm/trait.VirtualMachineProgram.html b/docs/sage/vm/trait.VirtualMachineProgram.html index 94d503bb..bd0fe2f4 100644 --- a/docs/sage/vm/trait.VirtualMachineProgram.html +++ b/docs/sage/vm/trait.VirtualMachineProgram.html @@ -36,4 +36,4 @@ fn is_non_negative(&mut self) { ... }
}
Expand description

An interface to conveniently create virtual machine programs, of either the core or standard variant.

-

Required Methods§

source

fn op(&mut self, op: CoreOp)

source

fn std_op(&mut self, op: StandardOp) -> Result<(), Error>

source

fn code(&self) -> Result<CoreProgram, StandardProgram>

Provided Methods§

source

fn set_float_vector(&mut self, vector: Vec<f64>) -> Result<(), Error>

source

fn set_vector(&mut self, vector: Vec<i64>)

source

fn store_vector(&mut self, n: usize)

source

fn load_vector(&mut self, n: usize)

source

fn ffi_call(&mut self, ffi: FFIBinding) -> Result<(), Error>

source

fn poke(&mut self) -> Result<(), Error>

source

fn peek(&mut self) -> Result<(), Error>

source

fn comment(&mut self, comment: &str)

source

fn restore(&mut self)

source

fn save(&mut self)

source

fn ret(&mut self)

source

fn where_is_pointer(&mut self)

source

fn deref(&mut self)

source

fn refer(&mut self)

source

fn move_pointer(&mut self, cells: isize)

source

fn set_register(&mut self, val: i64)

source

fn set_float_register(&mut self, val: f64) -> Result<(), Error>

source

fn begin_while(&mut self)

source

fn begin_if(&mut self)

source

fn begin_else(&mut self)

source

fn begin_function(&mut self)

source

fn end(&mut self)

source

fn call(&mut self)

source

fn index(&mut self)

source

fn bitwise_nand(&mut self)

source

fn get(&mut self, src: Input)

source

fn put(&mut self, dst: Output)

source

fn is_non_negative(&mut self)

Implementors§

\ No newline at end of file +

Required Methods§

source

fn op(&mut self, op: CoreOp)

source

fn std_op(&mut self, op: StandardOp) -> Result<(), Error>

source

fn code(&self) -> Result<CoreProgram, StandardProgram>

Provided Methods§

source

fn set_float_vector(&mut self, vector: Vec<f64>) -> Result<(), Error>

source

fn set_vector(&mut self, vector: Vec<i64>)

source

fn store_vector(&mut self, n: usize)

source

fn load_vector(&mut self, n: usize)

source

fn ffi_call(&mut self, ffi: FFIBinding) -> Result<(), Error>

source

fn poke(&mut self) -> Result<(), Error>

source

fn peek(&mut self) -> Result<(), Error>

source

fn comment(&mut self, comment: &str)

source

fn restore(&mut self)

source

fn save(&mut self)

source

fn ret(&mut self)

source

fn where_is_pointer(&mut self)

source

fn deref(&mut self)

source

fn refer(&mut self)

source

fn move_pointer(&mut self, cells: isize)

source

fn set_register(&mut self, val: i64)

source

fn set_float_register(&mut self, val: f64) -> Result<(), Error>

source

fn begin_while(&mut self)

source

fn begin_if(&mut self)

source

fn begin_else(&mut self)

source

fn begin_function(&mut self)

source

fn end(&mut self)

source

fn call(&mut self)

source

fn index(&mut self)

source

fn bitwise_nand(&mut self)

source

fn get(&mut self, src: Input)

source

fn put(&mut self, dst: Output)

source

fn is_non_negative(&mut self)

Implementors§

\ No newline at end of file diff --git a/docs/sage/web/index.html b/docs/sage/web/index.html index eb344948..1a12d12e 100644 --- a/docs/sage/web/index.html +++ b/docs/sage/web/index.html @@ -85,6 +85,137 @@ } console.log(document.getElementById("example").value); switch (document.getElementById("example").value) { + case "const-generics": + source.setValue(`fun main() { + // Create an array struct + let mut a = Array.new([1, 2, 3, 4, 5]); + // Print it out + a.println(); + // Set a value! + a.set(1, 1000); + // Print the changed value + println(*a.get(1)); + // Print the whole changed array + a.println(); +} + +// An array with a constant parameter length +struct Array { + data: [T * N] +} + +impl Array { + // Create a new Array container + fun new(arr: [T * N]): Array { + return {data=arr}; + } + + // Get a value from the array + fun get(&self, n: Int): &T { + if n < N { + return &self.data[n]; + } else { + return Null; + } + } + + // Set a value in the array + fun set(&mut self, n: Int, val: T) { + self.data[n] = val; + } + + // Print the array + fun print(&self) { + print("["); + for let mut i=0; i(10); // Populate with 10 + let y = Matrix.new(5); // Populate with 5 + + // Print the two matrices + x.print(); + y.print(); + + // Provide the matrix with the operations for the elem type + fun add_ints(a: Int, b: Int): Int = a + b; + fun mul_ints(a: Int, b: Int): Int = a * b; + + // Perform the mat mul! + let z = y.mul<4>(&x, 0, add_ints, mul_ints); + // Print the result + z.print(); +} + +// Define a constant sized matrix with a generic element type +// and parameterized width and height. +struct Matrix { + arr: [[T * Cols] * Rows] +} + +// Add some methods to our matrix +impl Matrix { + // Create a new matrix populated with initial values + fun new(x: T): Matrix { + return {arr=[[x] * Cols] * Rows}; + } + + // Get a value from a matrix + fun get(&self, row: Int, col: Int): &T { + return &self.arr[row][col]; + } + + // Multiply with another matrix + fun mul( + &self, + other: &Matrix, + zero: T, + add: fun(T, T) -> T, + mul: fun(T, T) -> T + ): Matrix { + let mut result = Matrix.new(zero); + for let mut j=0; jStandard Lib Vector + + diff --git a/docs/sage/web/web_bg.wasm b/docs/sage/web/web_bg.wasm index 6e029e00a8281f5be3c8b775d174894ca46edb82..7aa42aa528d0fb47e53e336c66114e0704f61769 100644 GIT binary patch delta 673444 zcmdRX2b>he^8fa1yxTOJkK>Np+q;7!gTfIc+>nuM#t15gLlI2R=X<^*OAt92utD;Z zr>H~$K_m()C`b?m6%_=P92684<^QdouzLqS!_Oa||L@SZgt}}r(PS& z7JiBUtJ^(8VuNB%m(^-<+FWWw`(+WQ&1Ok=S)5jj#Uj}(HpwbkTMBVV z8%S_5r`731`;3T4vx5-&lhSQ23$qLKXh}ks&2Pc%N9IK z{s9O2u2yqaZA`QhON~FPlXN{Q1}tKBZ>Ha>)Gpp+zLtH&c4YvpeBt0134Ekzy z=*mnW4sg(d4`PP)M-s4GENK=?smAX#;}0ycO68=eaf*1Q{cqgEe4)rCF$V+#ogoPk zjPXZQl8GYv0830lPw>AVq**as0Z42lGl*ifiZ`Paq~n>NdIUPaGz@;2IFJn}QbN=t zyci3pEOe1M&=WfmAQY7zik6^u+JL4KJVc?zLh6ezx`D{xXvC#KF_ZzF0f?k4SIq2j zI&lsUrj0PlHq0!?Y{<^3#v-xThtr;4SlHPBy)go)K{nY zo1!xTxvRR@A001y)jj^0dYhb2&u!|Ha&_zKwAJcjxmwFtLjF4*xWE6s_w~80cfUJt zd+?EdmZw93+iv^Y?f3S(^X@+VZo9wtefK?Zhh=dfm{Ry)AFcESwNfBax-=3_dDiE# zez!gJ@BcCr94!jtR|9TM!u^+z@&_awg1UuSLG~j|$Irt%!UP*yR4v`j)gcaMH8f zr%}UWD?!&mYM;lZM3zVP26$|Y_%|oKI`SP5j1GSv`ZDx(Xq;~&KHm*(!oPQLwK&9M zD}t{^_Jqed*F<=1ZDfY?rSS3a;qaXBaCxq4UF7N5Qu}P@e&=%g0sEKE*X?T^EA2<@ zpF6kMzi=+Le`Y`6eAT|p{-u4N^I)lcp?#74HT!=13j1@;CHB3}SL|OoKa3m>w|gV< zLF75-DUfdb!x(6&p3zpUt-<& z2e!Ib+ds68WUWs|kI4i5?@2oyC&Mp!zwnH3Jt;4fmf4QVzxZ}br^4Ta=azcc`JQyG zl2$uU$me|@Nk^>ThF|m!a}9T$V6RHMUB~4?{$0`<>*?^z-ks9h(uClLkx#>)g*W;) z`A^EHWP_V;ff3&YCU`eEd2D@jLu7MwarnK+p~$Al_P|E@&Bzboo&MLOI|A!Mr{pL7 z3)oug&*AOvagNg6w$H8avtK+Xqux+pW6@Fzp#H~|JJ_S z{Uahd&L!==cUqKLyQA>dp4ZHs9Xx_P{3eYGdT>$iJ;4eVZey>jUd^*3}Y^ zeHhxDwlcgkvMPMe`tQiQ(OHps;jNKF;SYTu_&)HzlD;53NJVss?S{MF2JUcWhvL^gXWM_0qbVGEdca?WVwDi?z-nii5@Sy0n!28h` ztOtVw!R^7ZpQGoZ=c6x1=iuK@(Lorb17p8LKZ~f*{gEFdPexyh&W-Mkyb@jRJ01Bp z@=fH2$l1vEk?$fuMb1UeM4pxx`ko2C9eyn|KJZTP-5?Ks8$BJ}?>ibi7Cat25j+_@ z6+9bw%lCSq^qb(f!PCJr!S90K2hRq72&#bzfgdrt4~6&p-wcnHUt=B1?|m*|V^8EuVH5pObfi9mW`#5?vMK(X!~%(ecrV(V@|?(b3W2(IL^n(NWP6 z(PyF~qfbT0MJGhZM2AJ+_4oc!emn41X?R?0qxW0iX8(0dJ(~h=;r1QxS>HS1cf-4_ z{}Jrm6h0%ZlU~Na+8x>$9wAQ-?hdR7Jsm#ie=SW7kG4(VI? z4_Igr^?Y=CbVhVqbZYe9(V5ZN(dVMGqCd$``9H?^9~@a!>Ye2p;~FQgkcL}%Y?F74 z|B&@m_;6sM_e}KPt|5`vq}Ockg|~)3vOX_}*$e_c3MEIw3(>MzS!{KfJ_iNH`u9jf zBO@b=y)Q+|T>o}%kd6d~1A@MnnZfU(-$&0ze~A7V zeJT2KbY|o~FtD$L-}8?v4bG07k4z808Xg2nhXe)(h6a|2@jk(RG_oynIP$ag%gDjV z&ylYq+rkTBeCI_MMHj#?&temOXKcd*(*j$9?*%{fe-Ydt{L*(W_;c`=;Q8Rd(4f$h z!MA-&e1k(nLPJBtLc>E(hDL-&hNcH*1V)7hMutX?_&>3h&H>x^gh<~;$*V#?g_no7 zgT<~MHjbdr6R z`#Uz*x>uTLonRg79^rl`{ipOF)6b>va-H+6k&oNox6KH@lJ<^$SE>DN_J!>yr)nR} zCZ=z8?2=z~jSa8yuJsO0-)R4y4QB`03F#a5zI0L=!zQsG*)>BQ$DGHV+t@Vgn`!Ub z-%U$WxGB0v9%ZV-g1{lD#YSm?s|>?;1X#B(yah({o6vE%_MPGR@)~v}{O+vL&C&!TJGWsbekW1;=>O2?^6=Qi$nM~X@V@AT$g$9u@>kI>(9r(qf$03m6u6{Gkoj2O_YQ*N zu|v@%k>_mN<*%dZBWDa}gJS!hR9WSEnLpZ!q&9JToE1sMal3-Ao$2^qdt|-Zsq(e# ztU9Z5eKu2lzj7Tf$}C0FMjsykXj6Sz1$f#Zt3&;nVK<73`^v{caaJfR3lyd0TpK(V&5T>(&ZZU% z&~8gFk(a3bbMo+TLQeHudMGL9q>@BhJY61S!;PyX?u>ilX>n`ZCJ$0S%Sm_u<<`LD zJ*p>O*jd9V5l)9Z&#KY;ZrF3Dn@D!$O7vyRb;z?qxlXOwgbSdhaTk!gl-(BjSTx}j z-|C=vgOG;MMF^dQP?ATf8{-9_a!@>?T61$7ra<7K1PFjRaOGjduid^9Wg9pOh9%OA zB&V=p;zW za=V5xdXZ*DB?;9;kF}~ra943Do>nBOJ*zbW^Tt(+JC8**s+L!KL>}US^3)R2px%9~ zHZQD%-jNRPVkP*T13@fjP%bJuYbl94l+Q`mGUFb3goKZI>d?Xtz`UjK=Gs*3qSkEq zasaEx;Z`=Tfj}Ce_Cc^?;9A`5!H4{ffs7N|g){U`+kt4LX7ilkGFz%VAx*ycMMQCNiT8|~Q za%ru6pU|l?TM3O_DAd=r{#Hwu$;IUAZtLwICu=c+>FPA9c4bYS%4`WQsS}2`vdl{S zm}JuxB-eXUwdxQ3@ak&i1w2vVkstpRSWTM%lkge(bQB{c?k!UD>-1)KtHbLQR5eKl z^I__sq*93jC}o30cf0ZFl!vI>>ogT|aOjdd2}*Uva*!O-G&$6+TS+<=Qa`FwS-qof ztUby4*J?NoO?1TFq-)j`T|=wobZuQ-(lx1Gy9U1#qnCv4CKY!>#s66^lT@`{?RHfC zzpGL-Q!}6oVL>G5#M@9*_z9R(VWhROmtMa?{Z#exkRD+$S)o_BBISZ*!xhXMc>_|u zm(>UA7qR*3^Yxp;B<`z!H`}dtylim8ZH~A_{#4eXHidBkXSX{Tmteb<=LZfP_*i>y z7f)B{G6~3~lwn+qzx?vcMPK5=ie9WrCsMln5*ZjJ#a4nQJe|}vjDSYVor!^^L}D z)4mG8q7&QU^>WqvO+xt^jlwT#j}mAFsL;)sP{Cf1#}aeq@Z(&D&$2gHLa7F z6$0o+9|<@OJ{Vd~HZd1I0_6*RB&(99-Pu>_>rI!kQuUTQGS&0F?CQ8H3fN+G*%gFSlawo zDlAb?iVA@iS@3&xT2z84{?j6^-qRwX-6y6=7-|_bW;06UsbtR3!?+{0&9_?Q)}8JH zn1{gNFv`+X>Hxt7b(W~nmi@yT*U6B2E+fPgjH&BdMg!V|bj`vVrA?FI8ti0`r!FZ4 z%!Ft_VGk-CN=#$XFwez(6C~$AaTeR5)`5K{^K7B6>{f3mZo}?WrxjNR!`?2w-Zb>y zyd1TSB4_Qe!VQE=auNS1tZ%~M#cEvK4ShgNr1n=DK~OI$Q(@_h_OxE4hDcJy5UHX1 zTB``!+uADrd;CwJbrk^DYaJtEEJO?;U zqeDItgf7})caNy8+jP^zC3483M>E?*(blpy%I_g8vu&QquTx{P)Lw1V+Mm&*#dP@$ z#nQhf8L}*}%8*$qryLbI99sY~nxI>JO!Lk{?`Qs}Z~BArA-8a0VRJHlk$K3ls~gUPMgB?V1H zD6B9Rq6=C-)RkRsjp0(G!LA&HDI%+=SY(4o4|Gjb@CJ6(-L1Xv_P8BEzE1@CUZyU( zu^xChuG>;JN^Rf0S^DYYm=P8#Q%|f{$8^so-=WW^7I*L36n7r23uKHb&hsKDbI6N) zn%fqWEJxg{GsLAe1%R*AD|%!?eAo4$DIy8A?j3e@N)La^-R2&y;D)2xT+5>kkCjKY zxz_m}H33-jsxJ8a`&Bgmp+UI$s;n$cI5Z9Q*hwvQUTf~|)R?%Me{~q(O|H&I>$hG_ z$}{!q{Gc(XLzHgJ=@tyhiKoYHg_0*>3&2J=6@wUODlv64x0R<6IxJ?}8$s)h*YraJ zo32UV^XN6%aibZxhQS2IjIugrltH!EHBq(YwLPuCsZO~zVI?GMudU+1w?$sB9=Nvs z<-2LxiqY<*7}w=Vqh3-VGzw!MB0uQW9Ctgfn6Mu7lBvJ-x{OlPv$oZ&H!Ql>M*J~{ z0Sc@ho5?U`Cn%EFr)l~GiQ66|yBkmMn{dlN*ipO}Zr*E7g?(CoV8pbp8~tfy-R*;8 zcE)W1tQtb@2h^Xg%Z%$B6P4n@M$%?vC*lDC37uCE96U3Yy(i`~M~VmQbK-zatzk(jWb=!*FeQ7(mH zIwpLg#&mi_+DFXRLc?Prx*|O$PBft#y#wmFTQjUg?c7^yrirkh7@_XHwE;~MGY}+ ziKpYa3(wV8Zfn=@fFBVrJ{%Y*DR?kQ3=t%B%VG=>>QL=oz1cixkjc=c!A2 z)kP@Nr8fo0g$49f69FZ;psq$pLpqT_tcj53Q?+w%3ZMt}uA&DC6h0Eme@C2A_X734B_!`rGTM2?Y)tKPdr`g?@fe1v91wXrq|Y2~b=}lF^_|=O z0RRizT-;aB(W!@Tr?5ZXHxq7vEc;D&R5wlX1;IqK0+O*d1uT@7_>cyKfS3CcHnMKH zR%>zGDi4%Y`OYd}Z{0iNdf=hwCZRo})LwT+^~n{fjiGuvUUlr9SrQP;yR*t=q@ii% zj8PcXH0lnNJx!kmrfJha6p&>pP#0cVTdmP2fNl(m$JLwr$l^-#a8LIM*ESq347kuf zQ#n)OL2ZmuYH@3y`t3E_L)Mryk2I4skIXQ}G$kN)TWwfGS9yylRMQ@JsgthH4;WSi zBZ-EIruQJ*k~avTEzX!?=e8VL3&d zReqqSL^4KpdTU#!x}roxOC`0SlvVmxzqnW)?wfhLp&y|8Vp50D&2;szX@;&CDLSO9 zMY{M_Pxj3Q6~6l#=srixgk8iFN+RfvQJJJoX-VL4@)~2dW60OG6ep|{17RqNNZw;o zia0-YE-Z360))(tNTVlUhnIVCxy@3N>*51eJLBpn_f>+*pe;@B&rQd45%w0i zkEng_ugT7<Ve1cx#fX)SD04KPGaH3u9W#HGJ$o(HMtoqTgZs2^|cGK`{bJ-;2)7>6%jV< zy*vOR6|JOv>Jdh>S6iFfvwyha0>D4|cR*;cp+A;rc#na;uo@ds*_Ud4M7SSUdkr8H zHDEwA0-;OF7|Q#!^NPVlag#cAK%-pc!1PTNN+_(84O0|hcz!~FLeVlg>KD{~4_7MP zgUN!nB=r@{wg~HlFpH!P;G|utS5hP)BBV>WlOk!GcD>w-YY{m@a!83E#FXQtUET(d z4a4rW#~p5TS)1GF{Qem@#I!{+;+@xhCF+j@YL@D$8PNjO--(Q_+(@gfy9#fvGtZ*T zl=>!I`4$P$Org|4c}8>_F2tqCC2@v{m`gc`ETt1oyA*pmozG8ScG zMTP;SG_}~^Oxv&sc1rMQ;q!K`n zSW0iqjq-)8B%j#54I%w8wcSH?AhbswYU(!AdC^P?89HI*rPXV z*_}dZTe<>?k)|?Yic90DNNdu3a^a&{2vv1s0s#1?AJjdM=7MRzJerfCJwo9GpEmE& zF4M58d8JzVx26DF@wbbvYUVx`W=qtf$DRbp>c_6_t~t%rg-^do@5EtZcEi$%aV;CNpr@)N?g<)3@lV_*=irW5P zHGduVsDJfEPU5?N<>524wEnHreZ;RMQVMyrh}lZ^4%2W?)$;1IN2rf!hgwOEgh|q^ zk1`kYX1y=asTWIYX9=CMDC-?CFS>Bh2nK*vp01uOZ41^E4J^Z_kug6t@Jjs-NgR)! zlofME^}#{a)4mSC3yDS9;^DEJ!@_4Mn?;zWCmt=77q%&zDG~eepjxeAWHm1)=6>4j z(~~7So-P(eFus8`JsIV{Kza^qnU0EZ67pfSBco!ZcVToR%r1GR%s$+PiJY8U4ngRoFH6vJ# z^?6`DW$}phP``yfgMF#&e|&hApkR^~sX`3G!M!xRO3##GEY_JW5D~@qn7JSz6V)_V zpotjHMDClA@{usbvNsZWlDNRUR5>_B&3!UQ!dI&&^VwAO?kBH_?b#3iRuc&v_>vI^ zaJ>y3$I|bPCtG-q3LXew_@SCLqMLQj7wgr2BdX_}wQF+@v6yI)*I*%>d<&>Th6-bi zR&`g5=o%PngEIjGR>JMU-C!F=rIGpJB-&Q2k+hR`gM6s=7+E9zEcs&iU(_BpvR2j- zC$jt$s|rPx@SI2zSIDz`FmQ1j6kwlDzlWIf-PaH`!J(`vXe zq*jmW0yCz1M|U?zRtWktVRTj4f!9YH*-ori`NS+%gzboQV`}~OA$?1Q28oPVGgnJAS?}d7bb#!&mSW3xH8r!UVVn(d(V#5x_6IujTj&904q_(6SMS+p1 z)U%Hf-7wMw40I+*5qFfigEWmkG?LV-%dQ3`FO=m+U_rFZu2^O#|A||5Zy7DRof;ES z{o|@4`BgNo%Efq=t-d$J6Leq5=NaR~<{52DS5F&{l-nV_7hR-;Bj|xvC-j743aiyt zq^g5T7X{u6n06^dK)T z;xRD(nA&w(qjW9FW(Bv@9=GR3XCVe+11cjaLvt{((n$&WjnlFNOZ+qy5&N}FgxP9n zdMIDR!6-qe1^jzu%%S{Lc(^3Nl(Iou zZjC9khptD;BW{<62QfK3;z#blcu2EAq$`+GN(;3C&c*ES@3vtJm1nPfH} zbX*FlEoV8PitT1~PV*BDP?~gg%B;*%Z#@2jVtq7@U?F{gVtcr+{8bp(-EKHb2B(4D zQx;{qNEw<^(c)oQ7;r%8MtbUl6VPb?6U!? z9JSCu^%P23rAVCMJA=lnhdSg$QV$Ue%486audwJNHix8X+#sCb2AYi{c^Rk9-jf^C z#E}7(SusDA(LvE*A}mj~=VGdi0Ekw!GSK(jN*b`2CiK}9ws^1^kffF#Zjq^2;%R+zD}mj;Gds_pS(0#Ldt|N;)t&KlUjJ5G74_`wd+@mTf0{B`o%)}wn2eg?xZXlUj0)zf|PoX3Txr1R@~+3Hk@DwQ5hh&c|T)4uWGfH+(uX%S5@ed-l2 zT;>2*`zB=dp%?1kKwj9OPjP{_0aD>WJOGYC8I`-+;nv@mct?h|66w7SUt)sch3e#6 zNI@VyuNG*g$E!fS{py()YB0YVpL0!PQt1J?p?G#H%T=UK+3_l^*zh6UA$ET}i-G_{dYftg zEg=ujuY>#6^TmFzFRHQq>a6(@lq{Q1&9MWyYG47?C|F?JmoCUgOVbumHe>CAd_4P7 zJR>SvE+p8i7ZNPp&s$g-tlhM*AwJJ9jNw_b<^GGPu93w!QdLfDIzGywK- zUsQ_$Y7}rdltS8v8%HjZ{MTaj#U&cA8UQ-F)Zp6#ONmQ^KBRl1?bD@oaX)T1(c0tV zcD5|4`t+;xc-^jQx%;8?4rQiB%##;u#*FCkEB%YTv5kF#t7Nn zYLEG}bqOqja-3Wd2DtrogVtMLr~72}&9B$S{g1B`Qv+{Svw^8ksO%M@Aqn*MN&-5w zG6m?L<$z|b>I#69t5N{|Q4WB5wrVwDIkGwh=wZM%u}oOK()u;(5q$Y)gDc$ z1|36CwOBp+h9RG}>&r8A@p|gOzV#`+eE5Q1&fh>ldp4x>@}Y~g()CTFl^5O&qQVOE zKJ*sdSAENPUiwzh)B>SW?Ne0hhyeb@1it?5@+80cc5Sn=l~ky;dg>igAt(e?sQbn! z+DdA}+Koi~@r@}xyzhb@zP^co4sA*S>U#mutM3rdfp>Huw57aDq+R!}(XR#XR_Irg zlzvs-T)rP8Hxs&Ln{{+#Anv}9tK|)GcWc?u_3Dx>)vPf7>StT7LbvO`SEn*cjU6El z^wh+-YqFU3NQ4QhEB*UA*kx`_K4;!uX!HLnXE4@+$a2Q+@TFR1tS`xWc`ZRf@6 z?b}(tz3v}Ws5f3%Y&4fhY0mGtts+~6{Z7*T(T5fAs3Ujj?UzS%>u(^seRnxT=0Fj) zwyIix4;k(Y$h+k?uparS99FP(%EuQa@8;h?^zbJY5#{gE5!Eiou$xj4=~|fTf^t&E z)ww-nT>PIB9x~kbd|F=1Km4?Uy{KHyUiAKqz#sk0sJ>O)C+)}9&+O`(8w+g0`u6>t z#tM8Dd7kSoh;|z9r2%!<-V~r~F95oH9|85=rvt%^tln4NWYzhCAa4F51{VDCnMNkFfCnF7@90-)hv zRp73(9Crg>m+#u3uL(qiT{$%ZJ{ zKY6s3`>1Xy>Av}~b|7fzv5xqB?^xv&vV@5w+C0TPZev+$=J7mVN>#t7rB;4-#qt(f z`I3s|%|T#}YCDn14yZXNXd{2a6CKk)pWt3Is+FtGIgzi=Mr2G05e?!^8E{$5M)se$ z%8wk0X7sgsYMYa}Zt5bLeo(9SKUrHEY**JFuB@&&*&;-7)IURN5xrS>{SnYPYz8f@|_oGiY%^Da^&ie!sdU3;Wl>1J%D}^+4 zk1a|Qf6Q;kf1lsR6cw-jBBA!QA9+Dt9G-fZJjvx}Po8?3UJd*{!ah)sok^I3Mhv++ z=zFf(;=6{>|A)U*QglElWoiDj3ose7DW%F7KKF7meiu4D5@zjLl1a&iM4i+g^>62$r2k!u$p+izmd$MUn;6KpI-cNEenuD4S2znQmtezS_#7X$a0mxwm||1A`LfJln>q z7MXn}c2No^g?}1DG@FUX221=NH}O8f_c)l>o$`P$wy`?aIm6cT12%@&*SXiu8aW2R zVxhGw?W|X2T!ZvNsTXa;L{=R*vxKSkxC|Oae^1$2gze`}2kR&sb^22s!qm&ba+^@v z3wvdC8>3k?k>}E;A*mffras9dTaxr@c#!N9a+q5G5n(ozY6;9g(Q?3kjx!~j>0Zx8 zZ_Lr6yy^8)og_0l;ou)RnY%LTQv*iMh+5c28@=4`uI1;QthzMWrEbsa$ID#o#MQ}V z8PAQV0T+ebERvO3a)AedFs(r#BZ_T#2bol?xNwWNl*NWZFw~-aOzTf1JxR&zRyiU0 zq;QPyNMrTbWNuAoUq(I;B43UbrB0Ov->@%99%_PSs zKj~&I@m0^mve@;!i-+adwmCf4@%|pR>?WYXtLAZ=K*eZHlhJF3TWt8QM;qC!wJitJ zu*6cUo%b4Tiz)WSrIp`F#*lXQTuqzbwh6jLSI6?fURFDZC54e59Sdy&^j^h#)Mg?5 zO){}`C8}ZR%5xR}+RJisy8T)^V&`cO0?Ou|AdApZ6kxAje20%U&`W5~tEUHl4kdbi z6B`3jLL`ECbXbr$*~Qn@X4u`p7d5mec(*X~vL5`FFl!A?&k8dvr1MintS)aR1F9=O zk&6@Mj`6Yxi}`4I*s9Et#1e0JzC|wIcz5m%u*z&2uO489`d$dIi5cW}=XVBJP1c2% z1<>Qpzt&^H+3td4de=lrH-0Q&c1?7@o6$9~0+oeL9T#@38($M-jWZ5>hkW%>sjas? zypx$_hy9yYQw_R=F0@elbJ~ehm=>$)l_-q3F!_Mp>&abVXyEcJIK# z!08Y|+~HNU{D9Nq`88q}{`WR&ab&ftP(z*g`!T%4A+D-qur}J&T^TH=7Fxb2{fqt! z?zb~E`mf}2CDy7X&|YcMPu900{o)OJUwdy0LknP=Y_K~7Cr{?%DzWNZDq=ByPbR}# z6xtB#+KIU;(=jUaK98n6sMZ~}Os`g$`D@kq>`Zo(wOA^CrZTJ60~N?<3}gvlTaI@v zwKth;SdGKN78cS5C{i~s)~c;^um^3k5aW^T4{}k)%Z^q$bcBv%iQD+&m0502tZ~qb z*qW}SZa$}Bg<^oy`n-v>vAK;AE0_w)wNVUiRfb|a;{vf(VpYz;82(`6i>_q_-lu*L zTjRhaWs8-Evshbfj@|s-dVX^j%jtmH^{Mt=oatg!W?D-W>w~bYa!H{DE4bABZag91 zP~Bo_WEE~zTy1kESAo0Pig~yCELyrzv~>`RL&^&vWhF)*F42J^=_DQ3BdjX6&!b!z zY>5c5DAR0WN2O+SX>?(wo>W-Kr!qXa_6iB4mY++J)HXY9bIB^9tw%(XvQZR-Q%cr~ z5|0TIxAW%NtO~R7o3mM+QXs^OOBe9Ae8bwFAE_8VFQczdsw-j1QBr*EyiMTTfPr2$ z!#c7u3{f8T5*KNmf~@Uem$}76ABJ)PoIN%HHm0o$PUIHwhDIaav7u=)g?TF`qJG00 z6!Ya(SaH}qCMT@e=#(57&o;dDY8K^*9M&LQ3PeZYR`mCT;gb}Je|9zNPS(`Z3Ov@f zJqV$bt}23}$*4CaF_>Xl3(O|tT_epV?sg7kp;sEu!O z3oHG?UY;mm*bzzb zf+)b2D*jRdM!_+@sesiI@A+$@5JS(fhwiGZfBHha7fYd&Jc;I!Qt_J#S$1OEZ*l)+KBGQm_2!A1g%f`I4JBA6YUc5FHH1d? zxWO9Xd;QjQ{%Q>t%@ypX_-YCAO@-3K35LxCxagm2!Hy4$yo2}X#$xIB>80{K?yJdS z6aZJ_)oZc@(*VLZ13-I)73_zr*ckRy6#*4GKDs8W(nO1R^tU7Re6u<83!O;@o6UG`BbLRt)e>_o zs7?)s82eYG#>gqI37u=28Vrh7oACa%Sp)r*daa}a9h>>u+Cn+ameXKQDNf3j_<~|q zi$7Y21qw1WEyRR?UaJuX8=S-LHmh=iOo$jPd|gYH0oHxolGWfR>o6yAyy*ob!1QX` zuCrn@?^KuFg?g{l#XP1l-(Qzq#isM3daONb%Kuf5ABk{mX?eD1Y~b@^#V(oo4-l6={T98+SRYQ^nwRMRwU}>#v7e zx}3`mSg6{KgleW$d-q5;9oWmP30n(F=)Ea^Wdl~FD&F4GjFm9+V#3Z%w zhA|nPryF4Iv-cd0_QwG8mBim`z?!z!1u%&=hEkXz+A!V|)a>040oq7y@|{fJ4*?BO zp2j@#1#Ysz1#Yr|(e+>FHEY0cDq^kurV@cG?ZA~qG||&$c(C6XiEVIa4iSGt>{7zN zq3D>r(`(`V8?*YxOit{UQG_bg`?Uvkf9*jX@!&d584+#Ht_;JSg5`tJ*Yfm zoD&4AKq@N^6{+YB#5-R4V3ViwXcN|%)ix~L-ncQlpQ; zigu_jtHwt+WjB|S9iYLlAF@KBjgLa*lrUO<)mIDfwD}smEsd!HA$GhQXjg_%h|nJI zBnrX96>BD@0%|if*KjJn26m;Ec(vHTj`})sEqKrdFB;PD3e&}>U4elm0u_qNbh~xv z3O1SE|MTP%Fp$8CPvhg8u~u+|A2wsnz@`CL!K|FT3)*m3b0*&RCs=YqumW*Dx;bpu zNxrfa@#2=uLs<@bY1GtkF`{|zmLe{oJVJG_ z2^;fMsK+&ejQ?tQFSCK1{8UFEyaubN!ydeAYZ|c}KEIe9L{!2R#?e=5y%t)hITTqJ zc)s#vQs}7XH}XVqfpMPT6I!v5_2^IQ`Ae->n>2ll4|eb~t=OYrLywz8L}4&8k5148 z=PC>?jW8W~6+X5Ni{=PdRx|{ z;-jzHvfeaWMgPPcQ45&(jqO-g76lhVFJIL{*Gd}KX{J$$k8j7uL%s#=MF=>hJ-ZiN zvv*)^QP`;id#oDbH462O!?u8Ft)z_AFjOL3LkLAd7q)x;F5^}nrBcOVs%Vkv(@ZMn(H^Y2=+H5YD7;sNHy?S|9xR8l zd`cz5^5P^LI?e{~;~7n2NEvgDx&wb}dT`RnH_(xiHeUZO7IIL(7fSqS4|cgUN8-6x zu}Ux<&8{*`$GvXqp*RYFxs7ySk7@Q$JJPd_SQkxpUZ1}rd^6{=8FWqjLuOs@kNRi6 zs*h|PpPt3y;x&9T(PQKNu34%y*BD+kIF0(HvONl&M7G+UUDr9iGw-Kh*Fy) zf(AV^g*S@-NXp1CstawrR~E~rsk`V6_6nQ5F*967Z{nIx=q-xDS)L3&?>bhAPM0d5 z?=jEcz;K~d3Z+f(HgvL>>?b9Kv;+;}07}nTBy34F!0||AYLJT|`)NGcM6V~(JPF4U zV&sV&kuOZjPNzB`97LKZ_j+~(o62vwo~>hF@thmjW!haO-uDJJ7eyI8S#{)*TJ>ak zWV7z>$r^h1oTW%}o1SEQu_tR{nASs9m{wBo411ip1+$U?2Je0&%eWkDB65f~bg)B8 zN=Zv4QUB2cE$Gq51XXm2is%pTe&GA1XrbCLCoNi_`pVYjh(<(GqaP6;CyZMsKd zP53C9%wEmc0st;>-)(Fj38SnR7L<Bwp5xtaXZ_tD(%}pqkqqST+|H(h zxO?wl+3a~I~*yVz(&$&BTFM!{2Cu>V_ak82DcVf0% z$~WH0#5-T48+w#PUc*Qgh!%3#Jl?Gj%eY62frU#HZ~s9dM_BcPD{u;eX{Ss*qZ}|D zC&GjcrZp`k=i)&&6K`l3{&s60mY<$fMgDW2i^gE+Som&M18=`+!BAWT=NPtHPpGq^ zh%N?tu;_<3uWU+K{&Lv^cVmqzce+no+^eVWai8L*ooQCA4~k?p<{Yoz!#dTT9LmM8 zgAJi{vR$6**55gCqE)%#Lw@{TmWu>{T*4~xe)qDg|8(_w>;P9vSWJXQ-TAK%k=KxSWd2lauLMYRsvNGw>ohodo z!aY`S%H4O=z{>y*O!Mz&9SBK#uB>3~4KgkT`9mH^c3UjbiEgK|D_IJ5)d8{f`?IzN zi5WtLh*OK!GrUEn@jY2OXp-O*+kn-lWBu8^2E?W4+N1}QT}!riYJO6p$M)Z7;L74fM{(4VFOSaqJvuV7$YdjKD(0d ze^^tcR+?^H`v}V>rBE)pQk;J@$%Z74QrVC!{VT@M$j2^id!dxEp6tp0UjL^3voBnk_TV1rlt(JWKC5acFCGr zG+a}V2AABF4IOc5hk|bu>mngCSu~z?zeL)3X!IqMDNtxk_&+0@y9 z>0>XgWDCb#%Jv2ttW4U={}n6Re8MGDo{bYPSyNZ@OV-q9lUNr7 z#kD50u0{liZ9nA|$x_UCqWsJhY!IH#-Ba19ZU}af z^VD|r;WR^Y3TgLbiz#IJhkz6v#;;HfrsR9Boz7=VotGY%%KFh{uzWo|bhhh^EBBC> zPGk8XXZlRcEnc67P0M-!p5#+%_midnqqsv%V{&=>8A;wH8JpT(vQ%gHnHlW*Ki$JY zM(2{2HB~i|rTfW-AZuBVyYIMqk;kPVeHKVlA2|uWnD;7_TT<01-eGz-a@WEz{-;FhP zQLKaQe8wV#y31d=m^!2y{G?X@4^kpw?pwt&o6@nZdX|XR2$9Idt?##Mh- zJCCnocN;uP26U-BN|yeQ!o2!?+?q=^g~(cW$(nlMjZ4(jrJBF4dXshh(@}MdKkyc- z+USC5$3>a9 zZMK6w#iwn=(h8lv7?&~8%C}(gQ~q{YbQ8Nmis6_*cnJ&n5xf?poZEs|OKey~zUN(* z$2Rk6cf0RkZ*g{yyC)3(zR{IKmyH)or^B`aP}_Sf4|aOSiNZ1}q!kRTYN4=96i(R6 z$8Khsd1wi5Rngm;`0`+lbQ+-PjTtO(Qw?R-R=#;NtJ(fJ!a^@|0?T}tXN$`=k}y#Bi^3#Z|U^B7YZJ?ec_ zPs2V&NY<*P@dp6MHeQ6^4TlQMZxVdEN!Sokcz~ouN6%@T8jL~-XGSVz@9}keS!@2r zRuQgxUBO#oH!*%3A>SeuE0%;6 zXA4SLno{Nhflh~q4?4{n*+-;%1~b0>V-|^S2zv$@R4k;HtcoPBav~ z6-xC^A0>E~2_M>#Zqf{LvHH8hEy%T@y;9L!0JZ<6*FH_P(|PYtS^I)t=vr6ffoUcd zWw4VR*NP~t_3gP+77;NH#!QY{X?q^rai7#e&e?) zk25PjZdS%QY(hzQ|NhE<7nQwe`7yono~^v)N32tGlPeY2yN{4lLWo3lF%jaNCryNG z#4{hW3@=!MbKL}C$F}lypRi5^zlQrlHGt^e(~;nmH-Y5jA4Wp*c~t8th+kz z{}*Dv-^6~Oj(r)h|FQ8$RNg1>koD}V<5@w@So))8m~izqX)4iit<-v)cX2f{Edr^T zP$!6F;g_07?$uGe@fR}fUX#FkbnF|q34{2TjDvej>^S#OjQTBqu=~WsyG<;2=~&+X zgIK^s`HBAKTB8JYGGv*2r&SxB9o&FLr-fm*=tz%cW3o8E-?7dBX_R_JxupRu234Z=1E%Y+!zfEsp_4dEc z*xzPizg5S+LBsyL$2ckZttJ<6RHGOw?+_O>4gD=l_%WP;{N9r++nj}AE=L@e#@R^S|y4|Z`5RndOh`eLw5)b z`PFE7)DGaKxn+e;rLsnwB|x}6P2t|4qkoF3I|VnrvycR_kbggw-V~n!MJ!C;?$$=%lNkMSfa5eQSk$GsMP>7Rhy7#$c>A=H2;eK`rM0j z@CK92>vb~KB$>^hrE7*BSBQ|O80EhiAyXUIn{8aDw=tFKYkK|{wQ-%<27cmQXu*G| z4eaB^r0g$h<66-MMf=z2Z7kL_<}bp3jfo$}D2YD2wu9&Vgqh0!Tn-rBdwp9X$URyhidI zzy252S{gQ+&%*IpeBm$bbIK%%VTJ)kN7>+)U?y#_&;cvR>4;-Q)=uJe(xn3axnHuo zaIA<+3R+ zuIw0C%C1QhXGt|$e1u{naWK^B$s-iVm?TleH5B#0%zg zsEkfx)ylF7FS17ICf>#x-e$nN2(YQFeQmN}4=)W#c7CfQIYI1QlGI*jYzM6-&X7{p zSE%`}sCk(V*j)p>27p^C0Ddr8lirn9$*V)(ph4dZ=npGEf2I>O1JIylp4Ft~9<9=S zsC2MGrIT6{ZKAZz8lU@Xm>veEpHne8OO&C{@_{zV=+$Ey z;6DL4;@R?yD|=S!)sHqor^_yNEYPrzU|OxG7^+RKP;Hi8ZHis;>hNVc`~-skcPhLc zKMeaU-(r_8(?KWcpi>ESK?Tqy0hQA(eq|~=M$v|6HPO#Z!q3s+=Mwx| z72w}{mREN|rN2+YFVx|e5d4k`@E;5K%OJ#?ol?h!8gtg_H8xO?C?-1KczNRxp1G-<4)Ef42_0hd^HjXzDmx zJcZQ3kkeir^ZZP&`mn$)*`-gW@K@c^gUu1mP;81{ zNoJX;@AB?^NDNtpx7x z&}sQZmJC`7HOgy&@|_i+_Xt`Fc-?>rZ8`&|@@XnG2%?u?iJ*jT>64btwDeBpV1-I2 z^h&u@2|xdq>_xFgR~yjvZE7X-;wQZqHG`(@HeG^K`MCo0uo-+?CGdY>658|&&Qwb; zqyMHYZiWC*H&*9e(J^wLPa6C|gov4Dme3nhR@Gu(~oIh@MK8Rb=G zoJO**vKUd4%;3jRLkCSU|4wCn1!CTw!KXwag?pnWF)8NXscfnMzeT_ssF&+htRyP7 zRselpM;(g^Us@0|ed$KM+GeWuX@zS0^lHnsYH!7)Ht4!LLuylBb2cev*r^;rZQWu! z6?oQ@$$P8f<$;h?iBHZj`<7yooyyrHtkAK6Gx@t2(q(!xDOT92jF?%znK8+Gvzhjl z%w|$7vQwFugcZ$9o2iYb=}Gv3lBW4XB`{=G1^5>QyutDjI_OgbIxiIzsF zzDx(5K%gsAK`BnqsJIL-`Py(yP>JF*1F1=Ry{S}hV`@D|iSph|UaK+`=EqF4w=;G4 z*#!S#1^7Jz-k^St4my`W52S*E`Xhq+g1T^tR^?kfG(zHEXxBB$%4VU=r^SFMqwI+fvTSP1QGP94ROqnJ@l7mLwD#&xB9>8u^+m52C% zy3#y0ljqcvsz}e`%;=stz47*X(klFB2!1q|Z@yCs@@wh?W*i@TnH1xdE|cnN*G;@g zg|X^ZS8k@_lEve;`V;QE9N7p_)P!Gixil2hrH?L`dg`aAIq7Tzq69xh<>xc|NV)v3 z1_dDZi((5?zr1%P{MzKIahgIU_mE-U!8jYw^NEPp+kN$$z zeW1IxWsVy^{a&jb&Z9ua0*5Uf<1bwy6$S~5eq@|ce&7nJSd?oRK_GC-=Xp^xDK8=5 z73|yrnzL>ks+)2`h*jB2rvv??nbff8P=K5;Zh>F?zBqo683(u7m9>r%84u~y5Za)W zu8{+aNB8`zW(b>(@tV!0e7TI=81WrHp^M)a8_92JE>)pphp1`%Z~=aqUcq5W$ySa8 ziD~#5?jw9=bE$3V=Qy;UjwHg*YNwaTTf++CHxITqBV|pL0JV~Ox^s%giJGTywti}L ztvUIWgkL=WJveeIG_U;}Jb16z9!yB`k9_U+ODSFzje*T4-P#EtbP$y!e}sqv zxjb}78*2)eXtxMN&Mapz+ShT?+|ICXO3BSL|A62AU zO-*sd(+xCsWe?8PLt<6a1Vc@dM`G z&`B{zNN8FvoaCe<_RaZzW~vhjog;Nz;C?hGfpy-Y!Kt zSUh#z%1+!l78&V=LSR?LORE8qB`o-?x@>GH})r zV%G~*kk@G=W#nt@g3g{Y z?MJF|@zHIiq86tRk_yYQkSW8&p?42rk6$_@qyKWaW(nR4qa9L&_re~WE^SwiVnF|7 z$Q`vurX!r0)Brx={6FzF+eoSy{Da2ML%X&P?JtW_u{%i zKV8oA+ep&$N{j>X%jPyOeu~8{DAo%EpB>cl|Ksgj;H0d||7Xs5XLfgX zX7^q8z6N6uF29FA8|WyXG~;ODQ0Vx3bKE!oonMKo8zAO;JfPEWD7dg@uZW zr3H$Kg-QyBY5uS>|KIO(-gjnpb{3(_zdo`v@0|Bsp7Y$F=RAjZ&EraUU>P89FP=}J z%av19D~ghV&k8`B%chc|AAQfTGjfjRDQbt2l` zf4FKvd8KC$SBKzR^$|ex-nfba1~=Bgvqg78mGY^s_L+`nw9YR9)brs9Q<&CjQ* z^Ufm9#jxyXsst!h;{FD3LkJVRG{%a?F{x-=fz``Wx#ZF$%55%JFjr73E)8717;hLU zL+WjQ8><@#1fTy7K753K+z-t)M~XM}Pe-bAQ5y5mqu>^J!(4fkIC6n_oqYNe%{i5JZ;^1@cQ9IiWq%n@G+`?_yu#qG3p4_ zvC`aij2eU$Za7Ab7_;jWyw=BC&euq_K%sds7N3r=s94oR#fvgQz9@b7Pofw8;>0Y7 zVWk;&teU2mE?;ZzJXW>$*%guXa!lXR2}`Xsg)6z?^aEuf$=2*RR`n@Iov=!GlZ$_L znC9cu(cu%!%;Qw6FE7`Myxa~_d%2UmMA29jJ3daO!HK*MQX!r;;oi z44z>tyIR88fe5bEj^>&6SHvrkk94ZN#I zvIk2hT5(E61f&#De1Y(P=|t6!leCy^hX#|dLz>Dj0IOawW4@rytK7?GCLWG6NtTW8B^4Wj1kJV}j;u{@mU zsPoM5lc6PLb(T_JXZiBUDmh4cNp{vR$Vj{}FQl;G&%$!m$?AkkC?LXQeAUI&pQ1*I z>J#eRjTb6MOutjpOHNTEjw55M1DE2J2%t}91z;Si62kI?m9aKi!WSE$`4DNoQx)^t zNnqJvY?veZGB2L3>Wq7;S{q($UO81=09rffG~5I*f2Emqnrc*YR+?*0Q~O5e0HR=F zzc@{`4gf_&a}tcVSc)FTvzIVD}0nw*VSHmq*$Zho=qAi?1 z5Goxam4Q-#*!H#$EAd5F%I{kiY&!>!rg|gFTuDMo=_c%Zlmd77T=>CQ;2%xfrr z^4oF>L_JG;1m-3JrI&eQ4BT}ueo>VZ7Ms7Ag+;1Cf&;um&+p$V4Do>`JX;MHX^#X9 zTZ~V%5RR3dj5N-UP-|A7p_b+>mvZxsGu4Zb4pXP8^8qtzH8Ees$7tsDX{x>*kVU!v za4JD82$Z*crPm+zN2b?Vs(v6h0;}Zd5ZvN2Qk_SmtvaQ+0a!ehaWPBU+y&;0v($kt z7PI{o2!iJ=^!XaI;cTc{8_!aQN1m@irDwBnBCgu9og#2ejY2vVO-k$x7(i#4GtW}v zSSuAQFTZOa&9h)RCx!X8X6FlvUPQHpvqZ-*$(Pi$=v{b!kH z&sQ@8iaKCA*J8duUESa869Hi8fQtZUu--UM?9j;m!VGmp)HX2p<$eCg43!)>KaqrA zTi)<#&(|OW+y(?iqtfMe_kwlD&ElD=&LKLOH_igW|7s@Gz#XRi0(I!9M@rIUC$f)_ zLtD5|+z&0VqzQ`z2ltamr_GU_UT^{U$dAn@7pN14;~-KgFI#hMi&XN+E_g#s5bk4j-2@n&Ko=^aaCqWYVVgcd8}qM=#Feq{Y=w)O z%@=1Y-ktE3*{WYoo=`l{27X{Ruy==f7ESZ)TO#9&HSv~W5?08_H*x4qdBdSfvpaTR zC7N#oXStCbgS-U)LGGr^B^RsHF_)JvR)j!vc4x6!e3|+-meX{3_dck;=7G!A z0WoWs52AMS!R6}0%#Lc-6v4$a%~&Vo2CN#%e|g=FGn6+e(PY2B$mj6HL3e>Zmzb1j zw9oNA>M~bPN;Kd*Qs%&5ruwVt{Z*BQE#Q4M_|}}kU58L*sUyIh5ucQ(vRy1l&`(h?4Sbhn!3&Y> zF)6{TcRNip`+FtK%}EJA)^T&3-WF&Peu~g7@i;1Gx|2{PKkN-hm|#@}YrI$CJ`X&= z_uCV!16(sHfwO4tyfW4p){_!tcC;7F@GDeL9`w3GrG{hLu<%2Z5`IF3fZT!>CU0y~ zf+yE-M`5rPo6NE+R86l{mBRUwiIH%(k#AW4A|o;{KWtvQLiH^Z?k;=#*%fM3t2Ofc z?cf_731m%{U%xV}>NCz&eL~(c*9`fYdM6w+bx*3p%QpfoV_;d@Z80;SRQr$LSkC)3 zMk8MJGRz3agBjp6ddFKYPqvoJwOHVEPSR;to6AS3wWW-2fm~lVZ#}76zQkTjY_H7p zw0-Wow|&M(Fl_cs64*#pimR`3P8X>|Zl?bnrf|$Occ|~T#YU>7%opX*ikt{GU_DH) z$fYnpqp%~8AMAJwE6gh$s%6~#3VId7?(MiIQeFYwy3b24aS0eYDjYZgL!Zyj?3HW8 zdk~+)pHivJ&KTDZxt#{PpI`3Y!J0hM0+vRpJ3~w(-(8e5b{uaGG#kLi{WKz)uzhd0 zZve3J#;sthwB<{ZxZ(3;ZW#qQ0X)9~Bk=ALOyC{(L%6D?6>{eqv^nI?;u)9!J^Kuo zo^k6!*Hnzs8_8W8xYNrjrh9Yfz71|IN@O;cj|zpM*N`ET4?A?g;NK+xU(CN%%kdtS zXSd>6Nq{OujD_eOhKhg$|B9jmarazRZpL)*I^H_GpX+S{zWMzC^0uRN^C;a>ZictV zs?GLasC}xqDeO6H*LZz}8Tv~#IsI>)Ajpjeig*CBa&Imr#PDQi43(+f zd7ydf=Z>G=i*jmU^!?YW-Z8tn_RxX~bJSYZnCT#Z+td=A;&YEcyUhY{ zbWh*375|V&j<-z~h}rUaIIw;l?_N96MO>x@0w+tasJw=oHs)6lk#OllsbAC?8v_6l z-$B&a=`MIhT%8jJFu@eLhrdP9 zcWx9fI829mU>o?4XTS-3WH)xz&qb2vOTSXRkMFcsf%h0Mb=s?}FC@E^-R_my_$xJ8 z&95-YU#p`tzgMSL7R=7fUZ<*|w_Np#8hnD}mtrrdbGtW(RVK$7 zEH48#$RyB)!4G;es33~(1=GdT{D@B2Ms!M^Q7zLJ@i#WlAqn<6N&5V(gu`r<2$LNK zC@jN}D!LA{JYIB|?_iiAV6271V6M1J!H*b0l?vDh_=$P>8R*O{=Cfzua?9hh=Hh2n zbvryP@Q+kMR}IIZnRJhn=D}y7TD)tXdsem9-&_rs3Tq%>uPk+8e^K5$`keAkCu~8e z1za~LCrH2f8;s?M?ARkY0h_Vb-2S#oOvo1#=#jL&9(QSzVnJP0qrl;WXIb=1YfCtP zl4naQ%&C7+&E|o#bS$$_c*bj7K6u6=@{DYE+(6+sB8t&DHuGS+m%RN7+e&_gNS<&Q z0K>AB9Aif~pa+FC8)jMhHa@`h4Lp?MnfuqP9uX)+?#!hH=(u)e24Qmgt zmot-xiar2MSYHll|89?zrX+{$N24$VCROe&!__2oI}0A>_;k7Vq~*s;6@0RA8EnI? ze0Z;fSHhK&9SLVGC#TK8bB?O}IQYU~gk3!q?f|y#b}Lo| z>o_AQq+}{LVk)A1Du2#{p;BU}ajuM=V}1UOZ+(Pq^Lj#RlVbB)42C*HwUY0dU%#YA z_7~iSicG6>2>AxkTQv0<_`DDR^SvFdzfq&U!~wEejAbxb1n?xEyyFY< zA+VQ_mlCN+iS2Khhbuxvv+z?LL$Dh0;2rbSZ&a@%X+>wlX}s2sM`G|#zI`O^ee=lI zv1uM@!jEcFj&RMO->PP{H;R&|K-eMQX0dt_4bcBw(>>$gP<3~&>5^r`f#j>a#(PZ#!%j1kXRRt%JCnjRSXfrmd{=GRGU9Mz+Hl&U(V8i$l2RmH3QPqwmJB(qr z6!Wlceb(aN>j}*}k39vNx3xExRNS~p^{uz6Ltt*4ho0y>d%_&BN$q@ z#9X0{TgYLl<95Sg!3PUf+^nf=CVZw6i3+SL>IbP_FyU8KQ;P8@E2Q&>r-4K84NEtf z171~qL>3@BqCgh>FN}Ib-lzTo-k^NeKPOK)3k(^t-|6HK!;2upX4 z5M8Yn%!VYR?Q{T^?aXJ13mcPWPt6opoOCXRu+YVw@scb$$PTJyto-Td4c&VSFs5y zp!G)c>1HGjz@z`GUgJx7#vMxaOJ?TlYINP}Q1-Nko3x=HT6qf0E;Wz8u9|w<4G>S5 z72ZsU7-EUa?0j9-%4MxW4*;v^*;vERTy$i2HA{#JJVK=W9+4t-`M$myAJF2WC>)Q& zW~56o&r-}kO-Rw`Dsk_mg8V%Tw4V6bb2^%?R5Q}$Xj_ggfXN@jAAb*!&_pbV;g1hb z=zGB@3S_Vu_efPWAz3~+)Bv4ZatP6raomXRGqu?W^ zuu{NVisPo35pxBsBkbSd9f@xIY-ApB^ZpyEbfPHvmRW&+hv7B`D~Hm=cxaZIZ1PG# zD_QPBev0iMy+!rTG+O?$2wM6w_-n{(w#B9-tk%B_%n%-;nvv>m5f8v?L6oo+2U}x- z%ajhI*UG1-=uaahI~S*LMY{(QgjIwsteB1f7vd|(#HsM&Gg1lQiVK&`qzrnh!L!mC zl=2mxBY#~N=@!xxFu=9e8O^u^bav}}waDkv)<8?ax>%qO6QjwkyJabP93?|VF>n`1 zRGtoatGPn{bh6no=L*a+xXp~D1UZ?ku=BG#Lp0uiIpc+bsnO>O(B@S2VfeDepYPro z(^;Qu%vaTGla;Co4$~wpd`TC8kP}gFW;ecvJCBm<_$Dakj=bILTVJg3A-L zv+IJaPNEp0`Y|NTTPyGL|^CybirOl!4L|G6PF4!58lk1 zm+d0v$3)-v1Vj}#Y-Y|+m`5jWSR^*#qqxFk)4i2HMwZrty#AbnZHy2c;(zwp1N^;s zM((oG1}Ovv@Xx^|FOZ=nAkT1lqwH9oe;BMEpvjEVD^aw9a$q@B_jUN}+aQ8Hut4+e z5b>Yh0_SZkura*5@Qqn-VuP^Hb&*k_#Zf?VL_os6%>rd2YlAF`il^Nx>&He*qrraq zM#vqx2kdfX#7zH_YD2w0J1NjT(0jK8M?e9K(=l0rrMkHLS8!L+!d&LlxS-VJbmWU6 zU^*jRBB^v1Q+#huo?gbg(o;YX$9n+QVBlB`JUe&EGkA8~x3bdU7BU|=bpnv$rFG&> z#bjViehbV-+;Z$$#5Exq7+C3;wdn|JTwyA^OYbt#Z&!l*i=O#q4m?0uR91`GT%N8) zJ8Xaqz7vSfVPTX%^Oow9*_nXTmte#stb%wqkQs3}#6#={GR0_0gT-n0g=)xKKnTh* zArvNr$flExlaMk&PeVDK&HR6|i}pdQ78`|>700_I? zgB|d1x#*D(fLIb{S|}gWS|%69+sdVq6DZdM@pyuM)9LI6z2eZeF@Q8hJp)fM5_O#D5ypz@}Ya!F$1uhs4y=AQQuV87Ws_ntbb|C6{I6?1@W%z$W851xc5~WM^4XtUp-6CVNR^?Ct>7RPw98Ad=+aanjptZ2bDbqK0@imhrc5(f5^|;Bcnv4(X`)2D zEl?%t8~quqhlsZVKa~Pxf;LFD$0Kv=UscaI3P-T1bYj;2RizV%ikA^RE3hXwn-Bl0 z4r(uNQxh2VWdbSird03-7fW}=%`-k!U&1k`Uwx=9EPD;yqUXJUoO$U(Rcns>NFABj z_AF9vZm$IXZFzRBdGI6EPjAGB-+!b=Ml0+js{f{@G(QT@v-??fvWF*Otun671!6Ik z`Le&MgJ3B=_BSP9s(1Z!>m}ct%kY*zkI(D>fMGv0`+ThS=~ZWw z4nZ9>S$!oN$tx7njb`r0s%7wfl0+XM0WE9{7u#lc%bP39U>KK}NrM{$pt3 zl9=H61Izw+k8~ov|6LtX(bF%>=-3L5~|dL93Z?yX9gCexYdB&!hTNWKqAY}+Ey z13JI`7vTi7$~4tREZ?~}I7VQ#%&>cF%x-?sMU2cU75{;gu2Niq$la3Q^Ioq4FCqag zXA;;|33+n&2yyS^PQjwyF5kV-6!_8AHowtUztI-I5d*=*M0zFhnlpW*nnNRUe#H&{&@CmH zt4Fj4W3L$$gVSyTkQcmLL9qo8wKt47fae=RGt!m#p^~aY*!|c{3+w(Biz~=Z>9{}z z{y&);!}^L^+dk?0{@`o-7;#+Fs`S8NKfwOb_Xk&Bs;Bq``KcE^HORAO(i+x?bU%(> zZZb-<#*gg-WN5<_Q^Y1Jcb~7uFN>kaplp-gXDsUZKzD&x5r41(x1&me`&6tL^C#!V zWcd+_lk&y`6mbZzT~rRoX?@sKGVz3WH#Cv?5d8^ni*?D0|B9(YWXH66m~h8vD!@oL zGBN+xrI2E>+3+-b^O&TpJd8yqjN3pzW*!|$1|IC?;3R>rKe$6QxBdOR|8cRIQ@gS^$a z7?w;vfYcs}^^FaMu^!kLkl_m|tb2%#u)sT(okF`_WU~)teCXK)rX?UMaM8YF1^u@p zS#eYd@L~>vlN{xrE(!uJe`O!*LOd3fwa%Gao3L|C0Dq`QzGa?>=+=y&eH3`QE;JMS znUDR%dcl5>Odj@=YUnmg#fjBf7d6ySpeeoZ_*pmzwlnLJeiV%@&R!(E? z2QeDi6!=KoN%>Ti0I?)UEaH1km%87LLzW~MYrBzqJ{i~)VC+OZnA0IHv{Fb&^^Yo#v8|K~#z*6YZ)7aSpyPVMc2RL%=&;Y8~eBWO=)~8|Mxk z7^I?S(_Y1dU@cf&6lF*jfUFMT_Amudcm}lBrcii>jtRsd^_M4ro^W2v+OPSZ3ADRg zQ8v;HA}pZDW0s=(Nxt1)6V2eNE~H`_%JiX`zn8Et-{nc;SF+9UsB>5YE+Aq5-9(sd z2Ve=z@U*Y`c@LQN?r?uNsjxsZTH+%=Gb~cgg~)HJV!Cz!upN{hf@cf+0Hn9nL`M~r zS#gYjvZQNsbWAt+5k2P03fAH;oErWBR`F$YfsQijWPk&M8InN|2tM($?qQxC2{g%k z5|RZw8x`~hR>O+SmSvIAv8IOgyOM~P>Rg^B@-Uw;y~}m_Gz?7}8EiG3+ZU_H{ueWv zM+NCQoH*tUcN>mONlI?#3^hNsGn=9Iw{qRL#7|B$skm;M^eWc9pIWA|dmsRKDgeza z4^_URUX!NtE$n^UGV4&b0oaa|4VV+xqbo6kvT`V30fYK=Tn{@Nhm<59BUB5wl!zb% z>Pp-ncl*n;CFy8@>OkeFc(X9GCtOM_$Gg@}qm+HYi)v0uXeR3eDTFQA`$0X}E*h~@y*+u*SW9}tYgzf3EKDrMeC=mRnzIsT$#yF07Vl6CMRY1XP9ioqt+|^|DJK7hXkcP}l^;|00%U zV>mvR<R2*ay9e-~q7@zE`C6#IE1;45>sXj6k22dT$sV%e+-$*)Gf=Kluj4g`=v_1o_>f?dP zbyj4-Vi?2sPnc7rQ?hf%%-3Drd@gk=sIk~cOP+hJ5Mu>WwbUjfS-(5bP9{z5m2%7c z!_}iRF_Dgr<^Es^X{L7a3`xw}h?!a~kdKBah~B}WlPI4khM{rM_Z0(ZKyLWVzz;Sj z?4MghMkZ`Hc9Q2&LKZ)xzOJfsz7wd5NX*{wb=6n`*MG>n`w6r2>*}1;hR5WDE6)`J z3n%s;rBT`=>M>oHf7d-`maS6Fs~26Vt`6^ugP!oHihaPtpwZy$&>WZ~#O!&&anM{V zbI4U{P=6i=#fkWKHOFDj2^3Te3t^eAWi(52B@*6-$ILBPsROD$@~2eEDQR!}V`ke` z>Y$okd6RL+-m1U}-tQBqXqHYO(odbME;gB|U9-@W7NT_c%>o%MF6ZN)<8(F)zny=1P2TJLjP!iJ? z{hSC+Jf^QG+OARNvCiVPeGfgK#L<2MDvpCd-$8`;M!o1Vg!hiO4ZnxMc-C~%*b!4*4hAI*fjo*lp6qT^@ZP3 zpM^`8{_jRVy8D6u6{g9-Q{$h^M~y7hVZKJSs1=W!aZA(#Rl#~t;Q=Wtz=a!s4EOk~ zMGDn19ygiqs_%xMF|h?|WZZ9wYvR{Ew)%(#sB*vq%O$AH5(7S=sE?a8$!pc`aVC4$ zwW=>(>wTSS$_^j^5hPxJtLkfJU8iPaE?cfseNV7#mxtr2kUYnFLIb_c+zzQHL~@b) z6QewY5fos@ejW`9z@Ovcx%<`=*;=m}OwRkx6Xulb)%)4eyDV>71IQjn9t1gI1ukq@KT+l3wW{{FaW_`Z6* z`xmRtkj3hz?C+M`(XrXMSe>o5eg4k;MRsOxIV?|0IqoxN=MAcVc8_A*qdqsPu}Uwx zZ|&-7OVupU+v*KBq2ODh6X!5PZc&W|k2d^3HJF*Vs2UW5n|ljf#7T40E$TJw=w-J` zUf6B7s@~b@gV%star)TUuVD8NzD~@%bF25^bW2Hg$x%9jKfGab@PXJJh8WvJ7<4LG$QASx4bBETq}g zFH?0`$dF|!RkJ;xZ;93V(PQT9W$I+L@^SOzGSsC2liIXQm{j?lY6_XuaX(OpWIJA8 zWHA331{Ih#_4f>U{*I!3CqXG9$MOv+q{-)q^rE+mo{)=VS?V_z!V9 zJa`A88cXx$i$7E^DDeCt_n?3w01P=(XU@3?TzZFj@E&!Ddgdo)*FAacLWlvJIZF(+ z<`4I({nhh7F-^Wm&&7?1LNx{ve z8rM5KW}N%gyV+^WQhip{X8J#%4kax^w&&6E3W%Y6TD~&-b~j|KR{q2+U!g{0!Edfm ze=OR3s2R6XjWGv2sOEzto_rB(Eotm;R;=HG_=W-yE@8C2F|>k?XSkTX}c~q4Zg+)gtV~XRFn~ zfutBwf)-Ml*dTKT{6)W5!bcl1%a^HOJZ(;R6os>PnfZ^ZSF>x#j%+S@OkF-i286Of zjWOzh4NI>ZqT!C0@`6Q3Lz9qbJi(_@o<@Z6lj6ws< z(c8i=Ywm}T{15@%HM7jR8hx1=TdN-(LWm(R4!St>e(`UlXx88vUWBgvIFewH{R4>& zZE2iI)giZNk(pShsS?eo(_@egV3jZSvrb&8$Ubnd)tEW#*z74-AI;%ej!Pz!6au1e zEq)+%WR6BBEM`(9A$wPzDMonM;+SHA9pL+&Y`5_Pe28Ux$|j?BY6p11Rv2r}sMkZn ztIT!vx^ES{6G&uYq75d22Dh6;lRikScXkfGG1gQ!VBw?90S%gw{NY#VK4xbhU1IKU z(B%&NB>S7k8ua*zv*;sQj`PFJQXFZ%)~JUa>~nJ~<@^vZ`^7e+t`zJj=;sW0ETShw zW&l~WKwNo2Pa~wKp566?@kg6qHR=)7NO2WE3%e26+Ql54+?TMYtjrCHE#^L@0tsG z=~lm&E$GEYcz||g=;hvCddT2=5t#wov$pa~hOC9_@n!M~=m=r>xJyy8fUmr`*r|`c zSdGt%O-pY*xeXZ;WHSu4aDRxd5XJlmY6<(H7WkpewY~LJsZWQyMi6INfH+Ge7iS4J za9|!JQsEJ%IjLFnCDx{!PMe%)$KC)V{yjSI(Hq4*t@*iyC3r!sobtW}1NHx34YZH> zOHz;Ni{x#v?;v>~z-4=|IRHf;Gc~0j!s0(o0Y!dfE=p_GBSC6HBZ4BWzynOY6?MGz znAXna0stbKe6Y<@#N9;*0ZdM$Orj5*1%IZa6E6-k$MpdgwwNpXXr5&bD7B&ttXx{O zn37gKZr{#R?Er6q<&HQfohcd0*+%p?UKx$hwCPLj>EL-x@5n8{Sc>66X1M_ zc$G6MoN%;%37B)l>p3}58t-SGZ`CbTeMxytbSg!b5<4=Vw(33-nuze+FQ^`QK<}Ah zef7AeUT6!jxqq(aJy7Dm4&M4sU%gNDDjP8%yQNfhGnOBqUzk=67m7pR`L zyA>A*O)N2(frx3~OBQ#4N4BaaF62ZZRUUEq=PL8c5Ix4?jyqKMl3IsWR)CuY)AK84 zkOYH@(#c~vE0nN;(2Ar&l023dht4HwCQC69E(h_}WX16?umt%5*A(zkfFs4&rX*U- zFNf;G;lHdLrYDS*MQ0U9q?rMc5of}2S(_$8zCeF2=n($`t-XbhKn?x0+MQvZoS++y zoFWBQhVfSez79gc^abUEWyxz+rjeQKme*(w z+($P`ZY+~Zq|X9&R)7TmG=xvj#R zyFBP(QVLbX22cUD(f`$D(Se%L8Ff?^ZJH|rwH;ta4AxB8S04glddA;ouPc3T@PquQi7Q%BnXr$|s-~a#&k~&#-$fwl3fS73cuq46f)r(0c5Peinn3K9~Zf zkC{41_uD7OK>^5iuwNvYaPR!6GxjlCg~qBq@0mLX>EZQYCnee3B5ohvAwPd}kWLQi zrYAvdThpeCY*os#>M4Sid$uikU;%l8Z-;Q4-3NieA(0_+PPH?6V*lZ&v>>I0*FD$C zQ_YHTotflv9FgqUYG+9sbZ5wxr_*zsLlPwjc448sG|<-@+SHa3TMKNmU=Xnbwy$hB zt&ISiOyy|Z1lxYVXwAysuJ0>jjZ8|iha6BMnwlfVK>5yJg792(<(Mq9 zmINXnkice~n#z}WlbIeX-IqZ;;%I?nSW|~Yd{fRh$&Wn1WOWb%fC((VnwbqrS=z<5 zR9Q8%0vL_DHE1hJwMp-<_w&&yaK)5@&}3bC_ym>?jPe)TNtk_(GEfP;53osKvw45r z-U3{ZSSQ#APkO=4A@NTC>n77WR`*3p-C<*4tzeCUbpDUH1Y)dCPsJ<1CJQ9In}w5K zzG1DvOlQkC;5(F7C>8z>qMfjI2`qKQlDCi5^H5TF_5phMq}>r}p%!VmkZ;}rrrc++ zupZ^K42PP!ak?sMe>H>0>BhYJ>si;7kcRo0;ale>kEFEP29Y0UG9Ye`v_Kj84S`MReE z)yqhM7$;`~`D5eElb*h_M(PV#?vI}+m)sM~B@=aeUpqmT?Z zoClu#hMY6~M^PjlMdY9+&O(}*2kX=!Tz99Ipdv00FH?g7+6Z$C@W#heAt!>NB)h~{ z4%RJwL7Xxp%Ym~RF1d@?=7OH4agv_WiKT;kVzXkMc)C=C6qXk7g1xrx3%8W1Bu;!pE`Q(sO}YTe#L^^5>2I;Vvh(*lN zr&aa6@t&#!O~0wS0%6ttroyrKQ}fnT-7ox-i65!|(PQh!U^Cklt1TnB2+Gq&(|D9V zJarp_0GzVeA*jNP@B3%JBk*&Zx%w!bhUv5XC^3DI;WX5=9jzb41mtt{7~S6UZEDBc zSTF=jx}HfjQd-VICdD=8&|~z~;Xjxcj|ozw(q_!Dx_a~(e`f>e4altS0Afy!eN9Q)?s8}x3`&nkJDqqx0wr$)5$SlF4Shc zd&sz``e~lx7PXH6_^t?Ye6phl15g70>Nq_d*&LW2mxaI#RTRvyh(5OsPlFse24=d* zn>IB^7ffLkyR}mw1fGE!#hH!ZV~j%YdTG*Je!OOV{%M!%0p{c5^~9*%LUZ5=`dSP8 zA@r-UpN%@cU%C0&DS9yVE_q_co~U~R5~rLfv50S-sOQ?3(&mk?B3?7(3;Lv>_lLir z@321}T=QT_upML>wvM*B@N`|PZVQ{LM%)Fp<#g2VdG#b9#bWd6N&0sC=1}w8$-1`Y zq3&MCRPH!cBk$)F=oX93)Km0C{8@C0UWWIFpQ;b8S-JaHr=a;ervil*o1v%agYoCm z)ASF5!6##eH4pE;2Rpd4I2s>hjy?s)Bo>?UFUt6W$gh1-^GYN6eAyZLYK8b(%gmZ>)s5@GSl1&I6(()ahsIFXGRdvvu?E&K*=Dm6)lZ1!{z6gn&e2EbQtoW=?mwPWx~>J6A;Eu@nVc?jaeq||&0}(Z71>BBZbxjMt%n~UBXkivVAT_(bRLBg6gb%I zqe zFH?=DW9Db)>E`{IaEkfLP@Exo5|2mOl}m5ZB2@-|Wf>S1o0^+120_Qnp!0R}$%Q@O zea>AL$ zhCUBQCoW;Y2+DUG|Hh=o)YO!gQW=ECV(yrsd*St;&44>~hk4*K#F7Wi)NXjS88=g3 zAO6HVKT}V}FEtnF*6HP7wDeHd{PE!fMd|-q;aPJ{1voEkjhqpmBTlT#1O>0;xnhGkEhqGUF6Fk=ff9=@jpV zE2OPI32jvt(3UxMwr(EalM(vb6EZp}^Z8`5Z4b$W)BxlZN+(@_v;?Xk@tFNk#y_2D zr#IQg3_PDDO?={kl2rzTcfV_J{IU<|=dp`*^XY}X*1H^ksy)tF3~?6PBb_N$_b9Dor!(j4#gR&k@(yz+{a>+^)qw#siA?HbtzPspPJ>D z;x^a+gGT7hF)v=Kzbv9ddAK6aoo~F$gmTWfET9~(H+=rQuwb@T03?=&`v_3FpiLc} zPMFMBpmruN*AqZb5Nlt9fZ2Sxo`!D+enlJmP-I=gM7|2N+hHK-2Ag-kDinz5@qGVs zM&C$nU6rsbuu7@Rmc7kF{UX12UIjATVahV#dAFG_X7tn+G3I!4mw1QQ;KMrB1@g?gDlW@cOD>!*%NqPm-8X`6<1ur{ z)%tkzz&F8&1t^0=r^HswH#@&68!gb8_N~u>PAs=#bM-t?o(PEi$78QXzD(gDZ(gnI zp;UZwwLZuG_N%V5o%|iml8dvxqbKya4FZq$FMw*dg5VXkhmVM-Z=09Cqi^Wi%l!G$ z%gXtB!mzwv=HM09ZuK4AwksOsxQ>;c@1>$rC9l!r(_P-e&lYR5?dD#ihb3jdzzVX- z_n>R=3!U{}ymXCjs-UgycaN)9jkiD#O7RW`wDhlFz)ck-s~|8O0C(2Ks41=JrF>!y}lvkljM`U`*z7eiq|Z~zKSjxis6U$^KL z{!4c4N6W+bn(Ui^42Q749%X-BSNQAs(&3SyY&h?12|`5;k3fDo+ql>yrWSo?OSkWs znK$SG%>^Lbo^9^$BS8524f?=rJ7m$0z*OeVC*X$R6WYCbUdeuTRfiSbm%F7guq;3h zc6y^8(JvSr^-hD2e*aqw`^PI681C3LU3ctB{;;sf50y*1u5f97J7Ow&o>QdViX!bk zDAKN@u$_g(K}8|)a`DC!i#Fa?ys=lb@tp7G!6iq46D*o7$^SKngyYTJ2lbf3y}er+ z`+HmUu=e-%z@m-U7H>SRXydKL8y`@#@w^3jD3+VX*rJW^E^Lfled#u!MTh+0<6ds% zV~PTCeSYH{5Jwknyrp>KQRaw;^}g|4`M-{zR^l_nkws^}XkpQ%?pL(&isFq&aNH5) z@}s}p+_3xFNo_6u>pn%-w=2JK4j4!jCjSrU)#v|oywDFwlib8!*(ZDb zcNckO$L?S0DDuiT?%VAsn~S`XxPP~=>?-ogZM%PE$@jW0fA9l(mV*4d?EzgMU;q7r z238LADoOzzi`h6&BHG41i#Fa|ym52U#=D9)ZYtV%$&#YeXe`=zW%0%hR>G{$|JB!| zu6(d7vTl}kUC6nvDAE11c;niljc>gnZv%4jqNZr$HN_iO7j3+`urUa1%EO@jf65P? zX@B*@x-GsYU*iEAt~a+oqRa4F{KvXIzBc=-$*P12H(qJhJgob~U(Wst)XIN%b_L_NOl^)QvBKu0AK50H%rH95J$^MR+ z_+ASBogqd-==GV zIks6^h?_H3L(VMitm1DIGVDS)f8AX8E9QL4YUqzQ zb)LZ^Lg!s(P-1(Tm;b8|vYwAZ4_Q*=hYR?_@*+Px$scy+|B#Odm5=Eu)obVZq#Ian zH`p!e`x@?j4Kt3OwV@UUETNz&7Wm?0dU(^k;CHVJ8ZZ^U~qNPwESb|1$6A@=Mh=l~KDMeC(m*mBoLcy2r1KwjAkT8Ene$fe zQJ<&uk+xUPeakvDxZS+D5h=EXb04-&H<~+s0jFHi>0SEEV0wGhQRUM?M|;$K#jp0F z`TV_D(A&@KMaPZiTh9f}3%BQ_^}+fJe;N3Ecfb6r+h1OKp}TkPezCh>zOtdaUk-aI z_sf`<1*x#pb>_5}!69Y4N1CI1mqg7AZ6(AwU{aI0=viq9bgnZGJ*BHm&sX3Lyxn;1 zB}9&Iydu~>?ze)RU;nMXE5M8Y*$911+|JK|>cf|hFY@t^gf zX6n1TWM)+A`hg=KoGxR?%ke@-!rNO0Pb@BODTA-m9?oP43#^-A#KEBuD%EEY%R~ep z7p>DHjnYeDwta`FGp+{ZM;V_2r8V5L2<2upA3#* zGt21WR6V_$Q3)=iC&Xf+ESHTqdJ>vLX;3sfiUGZK&%-s_vAN7Yk3GpTsaLD&Gw7qD zSMPK>-3$Mv(>=pVJI#@X`nqUIX<4kcJf3Kw8(t1c^x@4)^jA}wDYu!&1nmQs!NMIw zJR8%w1rC;VZh->TyqJ|BbKqLe;OFJc1w_Am#^Z3PB&cyZIEH8mZU{i44!!^Q_mNmo zF;aWWTQ3-AuJBQNiy{)5MQ{RDEK4AX;p*MUzr9(E z1y@*?098qV9Y@(nx&oP%tN z62>wQZT8^bM>H_%&SQ-pNd(AS7_ZF$Sg}}6k7pYIn|xqBSsriXlMF#_A&f^2og4kW zoEJmqzxG*}DdF}Bpt(NGs?Nye0wC;#Mn3ozkY4dBc*H9$^zlOq!7Fb?Y`P>Tz{@-% zY$m?}y-7hx3qjBwzsW{A4E}|wMhy+! z7t5AI#g7ljZ8saiMYHyyPk2FZ6hPIj+o#ThD|!Smp+$A zD_Jx(%>F>miT6#LJAz;Eq|A> zMCg!a-sKh5vJ=>D+W?iw`ho{wHpnXV(b!VI!Vh-k5gShdsd7}nkm+pMLj|~GJY+YN zG(eil;yyse+#Bt^BS#yw_b9O6FAJ@C*aqoN+Itued3zC;q1ypll({Sc7;&UsdmR{U z4(qvnFfyFZY%H<&1$Au8pk%5=E>I3T&Yois*nvARi3L%2BsGH| zrEeY#Mvog&+E?-og{D}7P4F1Rhi;IToRI{Q9HwjpuDS1_6eVww2?x_=8VF|Tj~3jc zDi~=eguGFkiK2rWc8M-TQsih0&5?sO<5c4Ug!C98m4xO9E-mIT02nwBlGd~6($JaZ z`Ij4Z-ga9Id@pxhqSX{qM37ME#!=zwEDlHkL17!*$IdvgPM#FO0ohXGsohDkG`a28 zBD#<`kPv6aEG5g{6XDgx-i?-+&B0exxEY`UnOz-%z4(8}&x7-8wosiUEg<$U^|Yin zp#l&s0SmGs8u5LUw%dC9GrVkC8eqcSLpB|WD2-ZfLfqv4_EfZHnL6-(AmY{z9=ap{ zm!o+rupRh_xl$0wXUYWf1Uv@%j#Mk{XAGU=4_?^&=t;=bxn*+omPNNPNRJqoO~e*a zCA12_lI56{+8LBt6tne|aQ&5xoI|zu$fwy**xjGVhuU#|nBPF+kZ-uEmn5E&>_bw$ zPuaYxS8&8`IGSMh1(AXWe1Dl5r5lpwRL2?G0~y;Wt8RI!J=|k%b({uFju6HV1U2xO zXKR?)O$^3uYeJc*b+x=iP00P8~O$w zaZQjRs7T9qA;XX#2x7GLNy^yW40M9O_69zOH}FX(NY#Qo$p~k`+>r6;U%@B8S_U1+ zH2(^|fL+;16rMfP%--*mtDJZCOfIv7x5P3^+@oQ6i^Ar^Cp)uz(XkgiB-WkikO^Zak+bQe6je_EtptDCY(Xr_*K|U3T)z!Y^Mez6q-) zpckMpVGEd%U0~Wg<$|Tj_uLQ2jmYOC;2k#fjgwY5_!~n*|Mor63+(NCWCvE5TNd!k zQlAAZld~GyTa!IP3RQz=LD2pY$#AqVn1g4Okbn${Ti`Mu&nQ{}A8fmY4hXiR1h?<) z0=a;C)rt~mxEvh%32G+^0-!X5FY0o#>6a9>0o(AN!#ARmuoPh;u~DHXQ1_0v@7aYE z-o6L6@~D%$eNP0wzn?x|`L*L$3Ql5E+c85kdlIgmx}}|0R#iIj45UBL#sI-ThvZ}x z>4dCJ5wgZ_ShAqS_$6$~Vrby{8AoE- zj6|kZ7#*=h0cu9#Qwx|D&129e&13O*bJ3h72TUX1+Jyp6%M0dll!py)G9g)p!v+~_ zF2%h2ZA;)7->wI=w43!X8`i>v<}(it3nk>EzhDm-JqQ6g;xd~wuXIKEYP+x)REc)QP<#{kF1jhGTdvh$r83?U9mA$$ ze)!|0dQjr?V<}_?{>0NRtsf^P6#z=1h2o~Zn7u+Vg}dIo&A0;uR|>bO2Kc4WOij=e zGFW2-dy|wsltP>#m|S89OCC5b!N62&=ypjrkVP`{m32(yYQ}UGg%nBLhcg=*2oMmx-NlU%_TdlVP^WAS|*hSxsa> z7Cp}#;Jt<<{C1&qmH#5k%#;SkJ7z;kfm`EnRTz(z;{Yfx)Dbrxmccnx;tPbA3T0$Q zRAF#F1+tJLQs!9Nt_FbxBXhKr>!^V{&kn$ez_-z^OZh65eY}_y87|+k?n;VX`NC1N zUqpPB0QQlji)$}|zvan{ohxzKe#&16KjT)5=c|*kiSw`}9q1L3aiY}3MkmS03@>uI zyWT~DKCESaApzoe8XYEa+y#g`Fvrj4f@1DnJ%9{Qz8~VnC-%HUMKYdoJ4oo5CmbAb z6yb6}slDzkx1r|lR0P1j9z;A46+o5P-E_Sit* z2B*Lt8|YB*vj#fUq^<_~rWmwyGVK*$^WquWos%Mzp@tJqLcUs4!m3_)FSj1TtkB`` zHbg2>sEfk^O>_PR@c7-j8?X|b>0$rS8kHJztDoZ(5@&zvBKtZH^1B?RQbfXT4 z^GAecae^J#ts2#hYY|5zJIb8842&6{gOUJ%w7hFagFOcHCNxQ90Zw;HZXp8dMY!yN z2nr90XmG&2pd&gOMU8}(PG0J3tI)5F%-O#bXllz#y;tE( z&-jqRq4)nOS1V*{fg{d*GBVthb-@X9<5d0~=5}2t<_0Y-uwWTZ*)3v<$O~Ly+PihH zFmpGExi&z|5H_PcYm#Ow9l#)h;-K5=AV)0o#WiliudXy&&!MQw!VM|)$inzTmK#Pg0i&cvm}Q51#SO_`i*iE|M4d<# z1-yc7o0K5)UIWJ8i9_15VMRGg9)qN#bGIy|lLu3nWf0*AJeaHO=E3g<4(YJ6m~ikE zm|$^VOHl@yTTeofHSLc5h}Wx-{R}7jgf#BXitC2`bS5e2d!IuBRL=gJ6mX>P2VRpU zfs|OUVm}FIvW%$WH{bZH zt}li8NZmGyOSpB@;kZ>hS<;O7V~OWXZFb*4aX5$zcz^N7Nh5?$K`aGm5HOd|42t8B zpgpJTzBwT2H-tP2K85+*uI)@PFOX7@f= zlQ2GDgn8;xoGNASi0q>U=Lf3;J@I|1-Hg9ZxVTz(F$(jFAA9 zS~@Byz>k%V z%}^u6TF>LPUnqLuw`Dr#N?tBNY=Dy$28Oli0taBeW0MX*0=I}`Gv@%z zIySkB=Bk}KG1$Tc3^s7kT4yl*dQe+BDYa^|xu()NJOj%sN>&l|wm*dUI5jk1SzLFP=D%%d(s%{D0!!0ObDf5R;2Wp6!v?Ft=H*t>G#CVcN974umug6U z=swK0KwSC*PErnSTp+4XOu$a~1~veL(P>xNXSsL9in3mgh?(=g zZpo|y&lbmI*!{@KetabN^vAi6&)PD_Hj~F1Wc20c>*Fv8^VK?AXIV>~wiOX12hoN{;*&&~C8M&w73B`eF>Cm?@R&bRS3w8v0RP9p zIY9A(z9>BKGd7|xs02wg*f!x@@W067^73Sa$qM#K#KTvrFn_QIKOZCHrO80@c;AbX zsKH1=-oyOt8*&_CG$(1tmyyj2J9LBE5H)A?aFQ;jlJ3C)t;9^2>w7q<3`%6(A-M;1 zvVB%E+nL~AQ}2Z@NfGz3K%`Mo{{i0wI1-F6#90dg;uYtyEAd}7y5l9_l)yHqZrzYQ zm{Qn4O{NrJMne}3k(d^14S})%f9fU`rhm0lu@59J9J%!ALixcu(Lgatk$<^YygwMK zODR$bAxKJQ;%4tJS36%Q#S3x1XD&L%t*_t>X{BDtZ0Kg-(&oKt=YZP$65U?uQP^*& zHs*UjOVsF6+<$T4(nO<~S>yCLu{0S@N4QLHPIwAPr8J40$r=c)$c$7izD2yuCD@^v z({Y6hJ-MaHTKS59X4vFOnQ0szyL8p;bOkhvQq;SdR#{hVt~=JPk5J^r%~8iCnqByX zzb0vsK+5=ROf_{?ZF2F2cbC*u%)tCAW?X{DcDCrnxW~D@CdOw^7j(l;d!L0NI*?6? zrK49#tHcFN^yk8@T#7ZInh@5L1WxiBu?g-}lr?jEnYU`4WN*IZFDDrkLLF zK6Ot2)>2$`1Ec~kX1LPjI#Y1fCd&aG2s1*y!nnt~Jcfxv$=7Dgn&h+3B!} zZ>&mw0do!~A?ItnMqm~J1)QIO26#wt%OiNDv(S>Ep%+?Qz?f3Zr-H%U3Lh>`s@%MO zg4@3_4uNH_icBF<7OR)aLBM4*x526I$9fI8G>ATKq#;na#Y6@2GjAiw24>!x#~Ym9 z3209#r6vFtNXIm9H8>{@MvhEmHbNuy6GO++Osh{eP7HthTZ9_o448bnT3R4vol<6K zRo#FF$!JjUr~A{Uv4P-YrMbV+8HjrQziV`onaV6Qvn+|I5oGl?BzxGHosYsYjqEFa zc5kwWdmosbTp|dzz}SiVWJ01Tt(1B|pw6u1x%E6Z1|0fe}cG_z@&}irq~CwrD3k(aZR;b)@;q}#EoW2z*|#MSDl)Ge6T~H840B>z5bmUQwM`+03N}E7h^V&-_j0~v zHXPJYVixprj)`yoYZiF7m~FkB)?pvviThDis63l0np6XIX{rjflq6vkS?hygYFCZX zP%Baqb3kur=$CJRM&1TA!9vuO#31kh1QnUg1I)uSSzWzU>d+^f0x`}G9hJ-rkw|AiK{U&f5@QE zTAXInK091(0H3D)ar-5v-=^jv!0kRn#xoadhb6HPh{z!2A|^JtU795wGdJlBs+L=T zWtc4envSGX*Bh!8I@?Hha*nW(dhEmEBix9LLZwZFq)Z!;V=ly9Wd^652B>aPYeIr@ z(EwJS*G6$9?UR+G)UE#fmI7bEf(Zb`ukhKPS^$G_aj*}=31FaTK@dgcU|*dygciS( z)CS9IJO4sRZBs-Qj20eg)~2wA0AC3Det6E?yXKKE0?feD#6C`AA98Jk<}~DcCF{lN ziC0_X+3Ir`G@PAwdYYrtPHE%3%J^`$nOCe$YYl!LwwLh0{cyTFcz~j~9LV|rEKU|I zbPoYKatI|4EZFg`U`gU8>Xg$MzQLT*#~GW!LPz_v?1XGvfqd{ez*7NSV=$3KQJN*I zC?G@>tjum0j$_CK8L9U74a$JOZ!T^p#RO|0@k{&(0;91{rlu7r8+C6mqgtKAGD1k; z;@lFFqzs!SJ8s=RcxJZ_7l;7(-!23`DRs9!4A1p2h&_BK*Tao{oyfq?pTn@A2VCOi z)bGKhhXyZH#s_dnpC#q6>T@Rzb1ztSJA3$UZqgZx!Jpg3;9M7Nmg5yNJ7Jf8&tR8C zH}aq;8K$1Nzzzu-1@Yl0k_m|l&Q);X2sfvVENy&vo>|n-sSjIPDH|A!Yo5u2sLD%ON**R8bN6XbO^^gQ(lrN4-TVLnHSrgp7DIl zHviX-Hs~DZos{W4pz!C(1MJT@`=rbTU4Fj7|Cz$etm*ReR{v+pMpHh}>3Mkm*raSw zJz0wTXGz#trieadzCLZ^{1hx0m+B{>N_-;&ijo1DErXrfiR4Md&Jrum<(H8AECnUB zQGit>9wZAq=Xe%itAIDk(RvVB_pOG^kZtw18t00XsT@=Yj!}c0WDB5G{h!PWHB$Fr zUX?Phfd%uzse#=CWZZ55Qt`P1n{NzuMi-7*^?76NZWAg$cT8?VdC|op9OYLy;>nvjB`RpzG52_vRv6(LNRYWTJLI0qFDegXAc zRM(^lV-Hq&m`IV~_Iw;FtN!${o1IzWnfp4m{e7Y+V2E)9miN3dB71w@7~#D=Z;XiD zo;OB-XwMrXd!lRO6S{$h98(kvZ{nPc`)epLfjX8`c?vd}esU2u5Dl~wc=;dki4{Ea z-}WiMwk_-ft|`GR&NRR**e$>;U$oiRaMX(!CT6!a`>2V_0bgq35N6)X8TwU#d$`=y zD&f|Yhn{ZH^14bJOZYG0ccncVKw(R=o1-To1y@W^f9jp6fmn)xEtip;&*k_AYK9kv zhS}X3r>>x*N6mF3owjn&5?;U>VFElg(rF$M817N{7NS|LhrR@_CQkzspk?25M>zw+ zRtJK$nbm=!bOHN&muKB@6@mfzR9tC+2oL9sfV{8cS}gm(2cPu9<@7S*-Zy%}6dYp6 zok`@4V>XU*dON?zU3X@9N$*JbZanwPI z-yApEnF0$fJ2>?}HWCvD#N=XebE-FyA$unU9>9E%#7jV=8c7j8q3e*@CBdw3#plb#Pu- zec~ABxN!JcbN~KM`>gfV$hwkXHw!8u=8e>BuVN~gS=3tuB#ASQ7WE#%;Sb4Ji?YNt z9sr$S`V)hq%y&mATfID@GWcaVd{1;amnvC{)QQjpPl>zTcw?Q_)z7+^eqI@e5_h2~ zKfoE5`M#pZUj_zwAv%V`74$4foDBcO-37dI86$w`C$u0Y+^{p8!QyINIUzelmj(boyj=Gc$Utiq33LcCm085T3=h zGipy*3&1kP-VwyfZVk9a_qfBP++t&74{`e_6OwaaXr1*Chv^}XX1rT5#WIAr5r} zIL3xU%$%?EZh(>f)x$8nN|}qsI}equubz}>!~4t42ZuYgncXZG4vf86E?bj3;EpLd z9P|`X4s%01h&;sQ_cp8vY#4u+YRD+8_yAyN#Qmo{TM+?)koPftTblG@t;)0#V?y zgPq0ypH_mbru>y8xsu*oNvo^`2|d9|8n_bqspp=rr1#|iZz~zrc_qWRl3rZN2w6#6 zZY6D8iTw2cn0piOsEXweG-u{?Pe^9M1QJL>5+)%)Si`<=haHh!kwsa>1r&G1HK6DP zK>>**Bq}im!(5a!85=^i@BzP5xYH zoN>(9>{@$>UG^|?ux1I%`BN_i47(9QxFY0^5a zoa2-dXCVvc;nHx<)8GbCBAsue;>mOk*NSDnF93H|4tOMU+oP@uun2>a-B>j$ts%}g zl=mYJ4xow+fS5HzY~8EeG_b#!F*>@>RRPdHFElf2D*RuVFr;3H2Uu-NVM(JPtz@{h z#9PUIV9-Rpcs|VFNrF%9;dWBROIr6_4Y|y&NdB`4aCcTaf4Ww@fbv2@DK9^+lvn)< z&dZuE$k`Zw1I5-ha@L-gsR;!4uAqtZacXHTH1fF%pjZP}z-+?93i+84{FFG%tlrqqdLZKj6WFM@&R~L2 zOQHKW2%MR7)8JuddhZYldnS*sR58(|XeE=$J&+XeU@zd0gYf>0k}axj z7;ObTrh*y+^^)}%nmgFcjF9jz4L0jWBzzT}kUYd}G*zhz7bZ;|NrP!0DjEbP3twlq zL8>Wo?QV1S8boJwuOZ}EZGm2!Wl+fwvq^;hYI8j((po2_4mCSORAJ0ev&JNJ8#*>C z4s?8}f2xsv#DMRS8rsLuljY1^;9Lw}$u?LPUM$3%%$tqHw3B^}Ap1h6q>qQ1O*}Ri zlW&-r+5p3ak%b2}^Fk$qdNte<&5VxW5umm6h%p^rYgV=ZR|~d@JTlb~W%8rPI>8(q9(0Eo12RTAK*P2BiRvIhb#^vZk7#n%PFQFo5p}n@p50cEfOcU{hqObU2GCfv zHpEw=3tp@uvW2u3@l@Kz)s4FlAsLXu>ohJT9~=SfGN@FAg88)M(xaGqXPn5hH-DDb%fU!=CDQJ)5&V z9c4m(o>!;@ZFw-zYSj{oyE5jnEZc;_BJF6(8Uq^OjQ_qn3uZ?&A9~h=V#qAVQvp+m zG45rS&<^WJgpB0dT9x+8A{HlcJrTlkBy5S$X&_iPFB zvLe9C5qoT4ssaXWNYs;~mtgAZSnDwh}PBGmz`jB8f; z({2MKjPEYEc(YG_mcBuk_0GR%l7`;Gj*oHr{6KOJ%pZ^w*}RhD8uK{t&x^YQw_So2cD*j(6Wyt&l~8nXj_zKPKf zFDqy#2@}n3Uv@+9-+NVwXl z21IJB>=+gvF_;JWwH;nze!?s5zskHl`trL=uQo>l^Yd4meNax~168sq^%}E!_Q52` zSYAD1Lg#e_hoXUVi%|Q-JT*p;=;flZd!r63(b8+oHOBY2;n!?J*IaA11mdhIX1zq9 zfCJ25LXkN+h+>>0H~eGHlbgFRqVBYQin-AElsaCA`l)+KYtw@_nEoaeY6Y(v2U4t} zn#7d5)MV;Qq#0M4X~@pq5Lw5j*PE~7!w=V+D~z&*yQU`7x~XP8wB(RMxbFP(siw!v z8cHm8MJ(F>$EoHm3NV{y-C$O&ie$D3a@pLt^z;qreY8_ebiidd!lUp2-E^Z_3myH) zjV9k`tiGJN(M$}W8U68A@kW@E+amih_=cDBOX)LjDBpRSJkxBzInd@tS>d#s%ngR| z8)e;M)=k-kU`|+yArjGb>aJU!K~es1g=20pe>9BuX~=D6e>_&)W?mKtNvY8LKc)ZN zW~P9o@g-H0sL}0a0_f^+yLmhKb<6E$YivnL{cy zT$Pxko4z?3-UrKxL@_pL>u9*~%;Z$UBGPrk8zUqE(WK#14q=BQ+ zI9|)u8-J2|-wgFySgRE=@sOv$>Q~}N^Y-R^vxhGAE>3kvly&!XSp1y*vSzxOe9-|6 z4`vtMyvP12ACHI+gi6NLjXAc7|s}QZ#-n)jn=gOfnog^9sh?}U<;svS!Vre(2{TwE36jm17L^eftxeO zGKYL=frYC}(omWQB z-saAvNsG~gztZf*W)2jM=N6mw?JJ~9umHnhcr$XJ${pUP;?*7?utMS?Rg7+2ywWsj z{%SLpnvz-DR~9^e2+~ea;*(|#x{*w29!T=$QvTy+4y`0}D(LYo3DL87n%gYAW{LTl z?&BxS_QpY)@PzpSx-)qhX4lO$dl}}U=V|9Mvqr505CsT+k!0O>Q#e3hEMy9X{i$Up zZZB7}HU>>9ZCh^Est1u1!y>MW za{ZB{LV&JVZYI}MF?=;ILw$0G=AcJbn%N+;U?tkRjILf~cC1rrscbEU*%l>o@O2&s zT!!6%->ouhS7q)~;|}AGdpCWxS-%-4@_DVwdPhX{jv8Rjp7FW9TuG}|o3&kqZ&2}S zvq3DbFjw2v^!;kHQ(ar%P`w(dZ}3pWxK@LC@EUV##okRZ!Il|xYNOdAT3%lNq6%gO@FfdYfwZ#Yn!x}g0l>h?5Nu)lhIF|=}>nL=xxHlH)TqrvNOPWO4` zM+T#+{|oz)E@i^Pk`Cr)n7{Wzc+j%-P=3FopVymBo2-S9fmmS62cKsKlS9bZ5xXJD zkgSD_7nU=WvB6BjNSd_4oCr>Rdjo{#kMzTvwUX)F1~VS*8@o|SkI5UA^jN>qygRzJ z(OuVOqo?BH*&L^59E=7%E2$qmn_v=r#_Z=AS`j=xO<||+@55Vn#?+aiHh5t6_ zQkc0gqL4_})fMUFe%^d8|2vo>p!LI50~W9*F-sr`c?XZZ2d86D95KB)>}7}FC>O-J zm43i0egxNpU#YT#C^9(YEtiHeb1y^`S1?2rH7hU$Sh-Dsd8X-cW$-{b2pL*AEp?a{ zt}1AuQCrOJChUc?Y2_9(P)&{aU~omIeK(bCF&ot97R3$p7|6(r^lYeLXeGR$i7>(- zsoArD0x!Tuff@G&bBysX+V+Ck3~%4OV0O#UnAJ80JVkUq&JRNTOR49JN}W`3Uy5Ed z?;NPX9kI;R;h!ckOH~*-*1bQ1;-zw6 zI=;R~W44*O-9puKU{Q2)+g88=X(nJsW+XfVy8J)Vo4{iCmXnsng=TW>{C~ayy|0cV?Vr+vmaQT&gRd4{af6`&hAOPZ_3rtA(45P#1#x^Xwxn5!&31&xc z0Qy}UsisxL`=Q#@C zaF)xQ96Y&>9$3z#7ktDg|CjL318(ZN6BoA`)}{|>;!ZQCjjjlXvfy)8x=GQmTDCIr zp)Th3!55ZrUK+B)tX*j%DA#Y@2<1Dm6g^J0i?OcXO%sa|#pO6XSZuE4>T-}24vuap zdGGN*Or75_1Dzf1D!`dKU>agjWuTXp{ugj0^W3T?R$F?}(p}1a^8PNfLrPdKKnvus z3Dzbs+|LFDUN`HyPJc*!UWdF^4Ke3+Y;Y>C{1Z|0C4q9W^}1yaUR9r0ICn*G-5y#^K+Z>*|L7 zWHAdkSQ)YR#Fn#kpKi|}>;CYLS)-=rS=GljZ7iTRQ0BYJ;yB=4vxEGRMZjK4d{$Ja z)$f{Bazlm2uq!Pj9gkx!6@7=2?Bk`V@lY&VG#)yjQ z0a@>v=^gPEI<4+Rn*=ZwuS@=v0$TE(T6ci2+LHHuvt^dzX_faQXFH&HyB`Y2y$?em zEK*%gV$NPhH}GR6tv-oGW!)02lR_5||4~H@q=b)5pRuy=hZ57nnV$O&BYq{Vj2F!c zuRLHr=YvJ$-c-?%1|BtUGM*?bK5CwDgPX@2VgRlD5_#{Zn=HwbSC}V*w;3<4 zEv}_MzA`iI>y=ZOiE!u-lEJ=S83bg}&f21j4H3`~IbjIgk=(lQ^RLY@qVfvOt0E#R zG#YTI%f*!G7uD$HII%HQsX|ohGapquYIdTsIwFzYP8H*5=TUQbVSbue9I91%nus&8 z6j2qM=B&;?{$JKa5mh)kAo9$@zzHlhE3K5VjpkPo9q<@m0+@*IO4x=)Fcu|fK}^TG zs*!2i7JmmL%{DU7gLvHgo$7r@w<7Ta^=+|N^oq($E5A1{cBH|Gw2d}<#c)R&%H2kZ zKEZ`t;Zt-rEj2r&E6UhqL6H`w6YHsM^qo&k0{p5UK+QHP`N3=+jj`&F5hbfqGOG$F zH7YIPpB3RUeyW((*k3X4{-0FSWSlnJIf_@6eC{K2RCL<(L{TB_zC#t^23M;HH}GR~ zC~CUq{w9zBUI$r~U30 z71DfJ71RFnO~t$kLR^e)_GgRs4z!8`%8r?%qtlABMTNAT-&TbCR91vraNHb)qSkms zE7$U_G&e^q>Z7eda5{!|pv*7FAi_8(lePk33snhR|0>%GbVyl&c>SoXKzG>RzsV zBFA`>Ue6V`BtFIA9F!|At2i#Ga``(FhR~5eyos=mZfqdfn(##fk)65&IzMlvS}WO8 ztvBqKxb_Px@Qsw-P%MOHp`fA2ti1}zuyPdsGXO`ZU=<2kX)mZ1PWqHJ6nQlOq-v=u z#}!~_tGB5|Bf$oxYa5B?K81&ma-rYeqxFqMpDdLNC1N3}TK~Eb5;PVpQu`30Lm}wh zSY!gvq{gB-Y#`KFyo~L}Ax*?Mqm*7~BIaURp3zdYqn&x89<6995+V}f@}d&%$P-l^ z5Um`)>je;O|LEsfALUxJj$(!MwO=jdP**SxD(oz&q?zbZb!CFyS7Qj+B`LePm<}Cm zY-`bg_B9vmD+8C^WSW;|_^4(Jabrs8@)lmoVa0p|4Qmx0-9xKdh}Oce&K=o9AGHt* zYvMo?ItZthV2AF;Fw6^@f~%V7k1@d$yv(&6$(M6nV{s6lX>45aV9nu$eK@I=$m7^u zq2*O@W$+t~XeBbP(>nSwY?p>qdS#MkCl3E7P+Zl%H7p}-6|O4P|#3lB9Apa;X|5DIZGp|&hz$23wB+D6qKVy-)7ywl)IcvPP(kep^jsV9 zfB^<=E9zZ$oicu?vG<_%**t{3YQMcG)}t3oV?^Y*5sEGhWz46`HRLsF&Bp^6RK>c` zOFTrfd9}wqam2J9QC)F!wnUsoQ_u%(MVD&W^X8?P299TcG^*DQH#wUiRDEG;1ydaw zXeX7aL<H*{J7*2Zfe; z;g(0ZgKF@`;bk&Qm=pA1d(kow9A@?yfShL0rD4znE9p>sF`$iFh;lZ3_$!^_33W=F z3|?U(8%w}S`sck4B73r!2%!48$=%NE@7pFuiWI}i++*u zXepQfH_Gb>k++!!b`*1rZ|Recm~+=t{Z8Tw2&*ccMPo33o6e$BgGEVvL=x+6Hk3`V zyi@&ORs%nSS#$BI&UYCI-i;`uWu3*aM7=AI?Hjc#4__GiqqC@C{6RIkh|3dJ*^RD@ ztbfq-E}~v)xOWkm6{LaL)LMKa?d&2_Tm1Pj=DpwGrUY1XBgJ(E`3IQt|c=2 z*^$ecL2}UE60GP78YFn@PTd#BAt$n>9v!%df_Kt*C!Oyb;3$n*CblGK9?<#Dea3+- zArX`*b4v>WkAOD9XG@o(mS7*a`rSoa+cv38DaxZoF?vXz(mmZpy73Dw?Jk-({)J6d zF;H5-8fu!?1KZ_4$}G)OqRX0vSqPtBqBGqEJE1k|A%>=Lb89<|svW2eR*k5K;+Snc zL|5Z$I@3cm$~^WCq%oqx8rCrhvmf5X?n{B%>;i zLiMXgRXa7bZ|>?A{D%q|kSM?P7Flxc0aZwLACcEp(|ZVoa1csO?;*R8BV0%+fOGXd z%&fy$hw$D+hq5*-2)W)OscNV^yObCE;0j2)l*1^+Zk4?eRoQEovX4vo7+9UHa`=F1 zl~(ekrgd815EeLyJKDC$#W!pi!ZGZ2Jw%v=bXxrp|Ayhp3hP!EljS7ba zT-N;3NK}uN+NhrB2UP3u6{ubSsvyq*m8p2Wk)Z8iuTk+B00Pv zpUaV7Y41hiqO>5dii&*NxWD4l5&gl2r5~y?*YppSc?{j5`Sf!nhH>kzPQMtPu<4&F zQ_qV-nK0h$O!p%(I@3-^rfsn<}^OCHlLH9rhc6asjk0g4Z)rc50c!muGk>t(~hbW1)~0IS0QOF{sj4TJ1E zr2%p;31OHO0=ViD7LK1N3bwcVu!c##X!V=NqeP7sha2;#Z#vJf7e z39<2PzbsV#ua||(Z!#iWeyvqwgWHOYEOC@*p0!+pT#2 zs1P+JAq2%2K(J}iE{Y!=M$mk82tjcO!40F⪻$ZyXX}Mf}=oi9^Sh4@<`s=ak*;J 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 OTadPuCUUrQ+IByibt|*+5H20%J*-317J7Fd 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�X>1mnH@YprZ1msI@w~uMw{svzf?8m0g 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�&yOV6qYm3rb2% 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

C$s0>)TxL02R1gqGWD=H4lD*2M2iP-Z)*ly~q z*T%Ff*pOr^EP_9;G)PA`96Ko+(O?3B!$@5M_!fsi~Qqk_KUsn2eUF3p06T>G!T(`(!|ysJr$BG zmqcBZ91oOfb5BPr{AM5l^oxnZ{&`%Wyy$tb&j*Zd3&637g-7SGRqfUz&{6P6t1NW& z3t`fa?2BMu4A}YE95%!=@JG}D(Yfcm$l9nGKk|()VghvfN4$pq~k<- zI>1dC3mK&;111GczhwxTVk0cqOMlF`6(F)!t%Q9Quo^JBuK`~RtaEXv0q-lo24Eu~ z!+90<*MLp@(rngB4Y|x8&SnWslP`-s4LqhfYvH4x!JmP_P0nRLE|+DSY9Xc-y*DrO zZ*s9L8ghmE<*^tw|0mun4?O=$)to%0y4#JHQG{sd(R49Px=aFx9mmzvvTdVemB4)< zboDg|=utTGww1!(XAVB2H&dToG|H;iA+tu|Ek0dj4Q`*0Jf)wtPK6X<44G>ujAk6 z<8}U!-+1eJELuzZO>Fxsf^Iw@`6<{b+_c~Lw0Y=YzWR+HpU2`&9>0qf>z2Rshx1st z`qb~d^?Yp2P5Ygv&&OkhEs)dPcm+UXHp%HbOtj!;ysw*)5yniT9@)sZf^P%115`<2 zC_C_PC$NhMesqI&!(Ij;^Fwu|a*#Iwqtc$Lumx<0sxH6AXD&hp?7hY-7Gc4o{+bwb zwEdH}U(EK~-?@T88gLHy1Go?P{EV0BfHwZKl`FmMd`68H}g`wJHP zfC<11AP-m!tOv@0W57w^9B>Wz>lZUq0)IthKn&0q7!70q^MMt>tH1I&cJ_vS*dJ(p zfGl7Uuol=1Q~<|-&w#Ii%fO$&UBL4ydUqfUhyuC;1A)=NEMNh!99R!8sUoB&P% z7l1#3J6DlVk85ZwP|U4I8ZPy~_`*VJ+2@cljr4SVwi!-~6vNY^(RB2Pl)!o5R1{#9Fq< zh?zMpdrq!3$%;-#k;1vU&^IF{CrijKJ>d0gSyH@Im=9%|MoE4gc8Xo{d$9ZIoTsg0 z{hYDR(*x!O>sSCkvyQc}OAq-_HU>x=oQ#|{HyJr?XfpB_!P^=VFc+NWt1|p0;Izyw zc_ug#$ea!X;h-55{J}*8RU6i`g=+JIOKNE}wB_HAu~J!0~>qb_sru6r)=&KcU z^XXKc@X{OysVewMe4>HPm$&+1p zg)=Pv*(Nr|B=s)1@x$v_I3HBRd@a)Pd&fm%96P;;C5)5qozZer|0H<=xG_>X5y!}B zn*gnQNqsu&ae#rJB+iGH!WCRUFg*`=S(Ki7T&;1?4mAk%aG`#5EA9>5p7t>@O6#V4F=q+S z^lNI-$8m#Dzv-8Vl|*Tu3K=p;k!DVMHog#qLlV;StcjRV{g(;3ZUaatP z!V&B{P$4bCyZC41@A32!*4xs|+oJb$3?{WsiQfFJ5~e*P-N!oQSuiQj6QyZwNNEY& zki~lNvYCA!(NzOSdFxV^>v{GCNi}ROvx{KiPAwAD+fnMV0RuX zY|!nBOQID9={E*k(~}vIOAUG~_U=!bN-Kt&d_@AcL!0tplP}k{uoTm2xYJ1d7hj&e z1+&=@Karo{>$kAzz^A~eB_9lvny7{ihuFJxa7!&Oz>dQvTTs<1d+;0YMp#p_{4M(R z^uu*g$VMJz;N3CFrs^-{Q=FXtxs@e^{)ljBo_!rAE?>C?lg2de0X%6N>!-C1u;_D* zSeTJ;9}bi9YaC1jMS5>+L+2^=*20~x#2u!axRuHA%!3c^!o1Y#0Df;9OR&^I*bYjR zsnh`01yrSMXK#604g^{BhXJW@q^md(#G90}=-}IMC*`LAA7Jd91IitPj4Qj0Twbjv-(c9AS<@)pJRr*2FANU=TAZEbHWwsq$qbuTC` zQEXdvtF`)=Vyn=tQ8WHjY)5tL-)fO!J4sfL!Se~ra%F*zM3li99VOeT|JR`Az^0+WfZ;~%s9<*=Ad7R7F| zpt{9uRxFBQw%c&6Fvh5@-CWs(Dt0^5ms`U{4#mXG7CW;zEoO_wX;z&0SVSKJpxt7& zTP%th{iB*9t_Tye%WP+gVj{4KkJ+jKMlxRFzN`ey>~_WMkRJsflcNV9JDA;UwgWsf z1BDc`)gnKN)8a5OD?z8q7!Un4o0!QSG?~pd(1M{WqLw{`VVd;kZ5Q2SGWpE*pjmuO z7GP<&y5w*a#ZCYKLVhtj&~Y)d%jH79CbJcTG%0|L0iZ{V1ve5OgBljSn*E}tpcOM2 zPy|G$0z!dOCIB@vJN}{=m-6E^djT8&^(XCh^hNe6`X+mgDki%{Q5^;pbPXOmtC$=Z zykb&Si(bW1wUZb&O2El%v%*YZk3EcDm|#BmNZ-UVr|8M(5PU`j3FF{)spott102_6LB69%M@L|l23;cjQid#Tm z0pl}Ud!&7>l7SCNrcJmCRH_=+{Qh~MEpbKfL;<% z!rO9@kV#fGt|dj_hh!$zG>R=kfh9QV4!=myKu(aFfs2X*jDvvyZ!I>3D%xxYT9P~x z0hao+!%QhwL4H$FN{S>`iu|AkgT;w` z2(tJP`uHKZWE7EPpkD{G0YL~2=v@B35FA)zfuf)ipa8OuM9yRd-A$%;21fK1>lC#} z;-D1h380AsJ^+DZ3n8vFcnOVgka~byC?a|=CYU8F z#0G>&0K86mayYX0gq$!f_$L0`IwAz}oE22d|HTrvweH^oXm&TQ6GeXZ>f zRr=`H`5Jj)c8N4nnN9jMUvvFyUk$yr>OqCwzTW!HYM!W~Kdn|XuS{8~zo}LY%?bK$ zx%;j`cMj-xW8Z$h*kB7#1$EAK7`9AoQ z*n*8%ijlFGwN!aMyXsZWc4FNT(ePlSp}QlAX{5Zn`79USX@4}aGL-^afX z@T)XflDa4`FT6E0#=b0ElKNJ7iv6X~!O;HDi=ijf*^alvBT_%I?y@hjF0wAR&a*ym zf780lT5A2${)K&xb*^=<{VVHE`yTsz>ptsl`vU7`>kRt=>sR(Sth=qRTi>xQv=&G9 z7lk^#6Fw7uUOA$Es~%FnQ&)x$tK(Cb2IdD!QV**`d~dMn)^9`WT`N5sEqhq^W*CTl zsP9$QYq$Sn*D~uS%W&5IaO8;kt9PC9sqIkcHP2r6aL1GCLS>=lTlK7WvvN4}UFcQM za_gv@P_qZAN%}>UWU@TULRh^PMw_%;T-gloH2=@G0}# zkx#vw!e56!4SyCs9^M=tnfiKQVQ6G3{Tu2Z>)WpU5_%%M!1GdgtYf-;x$>?5tUBKJ zxw6taG(6w)xOHEffIJD1S>Nygb?l={CQ(0s=9GPGr=6j9(9NO#u)b$M8YWabc zu`7%HCBC^R92WlERhIIlWu0X+8|rz?ulwe)$HUuQWtL6sG0!RWY2O^S+Wc#1vumtv zyX8ysXRO%si~5wWl${A}aqTj1WJ5eZt55ohUSO-tr$ZZEV{D&WcA7t8XWgSxPxy}e zUUIHgPKI>vCfB#tAKCcO7s_gg?nqGW&B)ToGq&#>2OaO(XW3@hp0!Q1y>6Red*1e~ zW2)_l;}zRCwnL7?j-!rm9Ix3X*=E~bwN187vpr{w}9z&#Q0P_ju=p4hCl`MQHz!NsA|;T@r|!Q$|np<@h#Uhgl9yky=NIDmdnMNUUfM$SYQMCRk)*~rhZKEFhMjl39n zKfE}yHvCn1b@=(n3y~!dy)VK$!u!Je!@I*@hIfT`hWCW`hKpWQ=Xgs3?}XkAj`M#I zSQD5KI2t(?+3o#0a3Jta;9%g}z@fl#|9jqf{=M}CML zkDQ477&#O^94=ZBc_I8W%u_-$PKCFJhD7Fuj)j+pzYmxBKU9AX{}|fj`!0MW{E2^) z`2}-H>Lq0d8WeINRMQBSEcLpT(q zIqQGUv(jFYTIT-QxrTL8I^i6^g(21`1$aAk!j)Ok=3y8XTzt}k!TQWJSs9G zGCcBB`k`XIE`{GyoNhe@XD^&;j4Flrf>F%##BjnD+}Ar?C}1i{|ry-RqIpBC{iJL|%=|iIhh6 zh1LOJN$Qs140THQMX1R9(8q98)5G6{Cxu=M4fPL!@p;S-a{$h*54{d+y)3dYvMBPT zcSU$Jz!#^!rp{m`-XAQ({4e`I3akrk_U#Jn4t(YPIdCfQOW<_i*T9*;u%f^R-Z#Bx z1I581!J)y&g2RH32cHPe^1tGLGWc`om(U^KPvITrm(AOQBxp0#Wx?-5uZKPXa^sbe zY=3BDq|Gzd>8|7KHS zU(Y6+-%nXzP-VnA>CdyA@pQmX<$4GH+Y75-f->>ZbRGAfzL$6lGM%qrGZtb zu`5(;lx*^^Md)!bv^Fv;{BdMRD2CByFnfJuOzOe_nXjhqb_e%`Mu$g-#)n6Rzf$$^uHXsBJhxVoIxf5^Ff6n)GB&(7xKG_1`4S!NitLWO z8s_kvC6K1k-s3i^hb|+f;Te`s)vqGXA*UW^XCm)Ep`T8#n_gmTtaON4qpY#gHfq)I zwb6<1qc5)3J5|1%{iIK>T#rrG*H^CXL7Azsvc`+sB{n@JBOiC`WOQjVIpji7+y3g_ zV3ZXorfkKnxU>n=R-3fC+8TVR`&HAq1$;=VIn3MkRb9Mpz&cu2A8M{YlR2Cn)T?A& z&vxpMWIci3mMWJA4o1?Wrl`HS$%KB&oQ3Lqy?>Ql+#FM-S~lHOw9`sqPD<3Njf5U1xKYa`tEpRbd$hnSVJZaErq0$|MJwk`4QAVA2RRND7PF`W za2(oJlX@_cV;A50_5Ct*9!(3%_6}-qS7)1}iaJ7H8O;Y$2cnG|CEdjh1$R-!hF@+* zwA$(|)QV@WHi1|<&c+H2>m&%?w_O$ep6phDQJP)X=pluAh{4c*$gU>trs<7x((1@w zEV9OIvx`Pz7U;Nd7Twqib8JxtdT47f2L0ij>dJF=eQ>9$08*CI7=JUgD*8paVS^lI z0_6ZXy5>G;p7rr6eRb}C922*$GHE{bNxgGkws$1aca5D0Y*Q!c_vZ~})AR#*QMO1= z$-kFP(I3grt*QRXqDn2(8hegStJ%rY7EO+t2^B>xb{g$*p}7kIVtxLi+90ng$(*ju zEm>=-WiqAXT63shhjLOndL9HX6>Y4oQ1W2@MY%^VPljq3X3n3zKMJ)n@tP1Hv?~FlrX# z(OcBWjML`E8Vy^c6IT?nOw>W6ltOinKWZ&dW~D$voRC}>L>Ib3>g2wOJu_<^`VM&^|Q4iU`(WTe|D!n zw03@+I&aj@V#D;0Yd3F6jIbGuIEr2kIk6F0Q(|IblcrG7wkm}rF_2^Y*sHg%)1dS3 z0k9_kxJZ)BNsU8S)Cn0)>tu8{xC0GfSHx;Uzz*I#`GthJpmU`V< zoe1XdOHU+STFO$`4F#g`0b~=lA9hn%W2tdB*2vbY)(h4HxVU7wNra$7W^x9KkSka; z{DN6C8*(>K?_aMmdr5!3UUT-k{zbjp*(SYX{h_JrZBdiDQ#ER>4dDm8+9rKx{Y((! zbo~Z?fp}DyN#kDI23hb`H#TU;Ue*scZVY(a8WghidWVMX0d;soGPR`*Q}K6A!yDKv zy=o(>b3>y6sPj>yOYk?naTC<+)3|P>1ax-?42b+#iZ)h(<$kVlZ}tkox4q7QRhquD zL8{)i2{j+nggW}HN!8@$ZH?x3**w^^wlc|~*XY&@c+41CU4N%($CR)AFwaCy;nND5 zrRB-~g-;Wn1j^Y~8(Uml{9tFOs2K1z{nlnR*(7~jv)%?MPjfpPp@*B-&Yc=Woi$!! zSPFSh2q@XLY?yl7DD@Vquju`n_p+d42OqND8`Re|pQaQu-PbZ*KYEi@AJHP8y{6A? z(EyYsMZvlB1iJ@sEZW+j@lD8gDm zf%OG&fh{T>Rb*AIQ+kq)2tO-CO1;I14WI3F83rrWmsANcchsi)b0ZfCJ8%HfE}$Zw ztwxdn?<6W|>>iDiy=vY$DqPVY8F>RucR|I$CP~1I&bJtpj|->zoF48HWux`RU0Sn) zyl-D62pjZNmu_sJzOhR#Zk+6r2gdY$Izw;PH4VS|bRC3ytGZHf&AJt^5A^EYqy?+0 zztF7*o2nn}#=C4YORv+mzh=2deab`RgX^H^-CfzGVuAp1AZozGVWyKNtXz~rSvg0L z_B4_XiK>|=5OPQpfLw0G=u(jhge3eVy;={6PL6(bh(n**Bd4w~r_`4Xz6<8m z0G@3pJW{AvDzzdsHq7{m9#vtPGcQg86c)lNEVmek9E|?P#W$qlr^Ldlfu8~m&7{U? z)c2B{WRFo*|Mim2DFY2Hx9Rl;=j%tisvzcLJr{!X&3d(T9(oxQz5=ae)@r?|S0=d^ zW6CtM*CowyG1$G`pVK#N1S2}Akhq6UI200wECsa6~*Xo@P)^+Jk6Fy>Sm0PU( zsNTM$t9N=k0>_Q%lv`@ap_w$D%F=)AeGw{V_PH2;`}d(4PqU60`a69x@N0XYbmKa3 zDalBUOY_iCuS-crMqip2h|SOtea93}8&)Oij9Lm5caFsmGho+Z{o0fJt)ypM7D+FD zNzU*Ll+4E5`6N*5aoIq0vh1=P{M~t3W;E87OG1fP#f-Ze=7<4(+L%ne>E(UQfT@qV zJf|vv(48jAS6+BG!AO`cffEE2VG>nP-_ti=-nqdxnw`?bkfK_LJB4(O!tW6<2XK!E zJkrN^@`$uxTQnfZ4AcXcO~R8W0Ty>$Bkhe*N$j>0;QnT@tf+^{B)li$nOW%4`^O#j`tT&t(qk}wa^^XBx2igUFt7gTbC`+w_H1rmFS(WYYXH04h z)<~&&lA*+el&GV>yaEyQAFgX0BSxL;TL6>(*FRMhA18H50Vj0{`XlQ2T!pjV8&uko z{7~{hQv4}T)DDS*h}t`P4F3!9i`!?ajX4`KPccr>Evi5cQih*O9>|Na3+a2lsf9feFyIAFW%Ux(S9GoZ2Yl7*R%v2=viz; zIfmtmX&JGj%1wO{1P!?<;*%qYMG3R@mu{*IP#W25v2_6XxWY z%jvCeZXBhM$>1ir=;TV|FGuJlH#hd95^NSBY^3q@?Kg{QMZH1k@FO+M7$kgk6@9=h zj<~r`3O)L^yQC(X$Bd<%LKY|syxC%6vDlkqA^VtZMucfr&#>{gW`Vd>ZjBlNi;=Q~ zFpSW9-5N1sQ<9bh>e6r&-I}4CVfvI?v+9$)rXVw@y+kuFVU<%bM50LwO)W4lP0=ic zn5d$Fj8ndTc4RF*y`LYPp!8&yej)LzQLUK6hUFKU6qm)MxKe5=r61qzSFdxzoRYke zJd(VT{f1^!k`hjZjC{<#I?CHuA&}OnLx1|pyg}&no0UaO+b??e{V)6*fi8ep!*WOj5))`#T92u(U zp&Sm-Q@;sD9b&=6z}LuEAd5NwE{D9-H{_bM=}P|`d!9*YOLXd@JtKg?H^yYIzv~z9?nh|IBLH0co2QW!#7b@?VM$RGY`|W zFZ+?l5i7j>NCW)c{>Z=5%0;0;V_rlN+Z~VQ=f=W2iuIxv3J=nxRFET=f}@u{8V>CD zx$|An7GVTvMdMX{%cC`Z8+Lk8e>OvZq9_-CUoEP4!xS%3H35`dy^J2sWCJkebzf9o zQg#SQk&YL^bUUSqm@FfR!n_Mn1L9j_ED)b&#kJBQJ|=CIO)V2f8q7g0$hKLXq7Nf zL^)cEwhk6RA276Ld$=Cy0>p$!&ga}2V&noH(q8oAJg1*BCmNDG{itsr+B+p)M{o4l zMcL({ZcT<{6OiDe;+c(t5Bqtk(JR8pXp}iV5+%!!pE#c;~QA zAWr_{13;|ZJV#&fc$KsSbYplTSS~Z^wI-(N<|is;mD6?z(HyM&ljWi??|ZBM$i#fl zF61v7D`LzjnKQAbKJkf4*9!jai}Me3mgeqHFou$6#283tsW(R4WafCE%nArH%Fq!^ z60V~4lUY|M*#cTC1SC0KrypXrPQftZeZ(@N1bS;Mdq>jYNYws0N}fquj>To<&J^(j zb2n{G34fqPGz%hCqHlgOk3FaV^5kWy8>d1>Ye+{@O#2v$VFaxg_^YkgJb>*pQxj$KDh>leo1(~#Wu;5Id1$ZG{gsc(eMK5{k68~rmTnR|<7M2QO zZ;>^4{i(cA0&F|hMA=BXb6DT^RCVW16nrlh{-n~=H8W=0Jth|gdO{G%g~M;f7IOMN z-7wif!@cM)Je@7}Pe?BdeMWeI_+s-UXT(F>*E zW{jpu%A2F>BU<=obk=#}#4J}*s?8lswMjXp1mC;;QuRB>Bob{Nc`KehLzQR8)J-!| zbmC^z-$WWFYQK9-P8hz=Ps9`wM?o%TAF;fC&9N6i*b2%U>IZ)RIELdpG#aS!h0DR1S6|DdRz;T z?!$3eYI$4)T{89JcJ6>HW>h3y3%tqJzgbsw-JTNemKQkqx07osqXRa&*b$ z+&unw$r;q^>2;7dl(>^dQc6TjQbo{7*_J;~N+WOjCrK&thv4p4`hl^2{ixn362n6* z1I1C%Ta?U}i(TXugjz_?aH^zkny}6Y$0#JCJSpyzGax~3sXsa)D6%3l6PQSTQhr3# ziUoPGG__Ao0*SKHknNu^DpPa;5Bp!5{B|CRCSXH!kLnNeTfx-byd88eZ(@tg-?Q&~ z^oJ*2lx*H7C@}9GMP&E$#46{dPK{@CJjv9tQfQeRp;0UwA1T>qi60dS1o^X75I`+@ z_6A68WD-pe#tl${DMUCBo4NE}P1|Dx| zJW<4|+F5+;gE5O%pWx#jN(<_>pR=XG3kYeZfPg|fK*_;G)T#G)u7_9vwrX$r3Zots zYpsxZIO-JXpXWc&8Q+mpGxg$_CUYkV$E1jBnGCfB^r=I@%C zq1^O_*FBZF;9#S|!NT)}3UioNdSs!CF9nfJqpIp5{kj>oY=Euine-VmLaCFi*_lx@+$N$kwLhFIep_O2D`&P+)JEHiay@Ym59}zmJQLOZ2;0w8rG<+ce79u3>$W9eh=#^6m zGe9%uYHDGQ8}LAnkjkyum^K0)t*2B%AK4U?U|inVc<($ai9ACB*6@0pTW^LxtTgQC{Z?kKO6(kHPx--y8Mld}dYD zd3R=RM&-gB7dGW()1sX{iqrvJ(VWMHYG-Et8`U0ssdJDuPMeNy5(oio*q=BC53l18snqw#Gc(Jd5av~Udff6!mV!o3d2B@=4l;#99 zsN#VL@Nqkiz1+KsCmH|^Xc`aJ3pTq7bNs|*K@fe$%k_ZmXD?U7-(O#@ zgujDlrsiQ(p2BEEt8{;k*e(IA`$q$VQAh$IiadIsS@mt;QvV#E{`4$@^46@3hDeOx z-U(?uw}4MJFr7rif-e!ud$lNZ2f9jv>WpT+JUH8}2Vbeq+Xi#uWKlsXPs(=7*VvKN#KJ(Rr z+Ixc<%SJLw2&e^L!kJbQxF7>Y0t*&3R_=g=Mho>{Ud``&j#{$cR?8$cmKx5=>9`{L z(RM)hlMH}9F=>#_CVJkrT`4%Vi)j zg|cbOSs`#<@kT0ujeCo>iTdaC#P7ay8sYbxy;a$6{oOfXlx&(qU2j;Nt=B1~uG^Q! zuBVh{qK9RrVu83c5BJP-C7Ke0>*rGa!R5+6np+v<{d#UA{LP$~+Ma-4P(Di0dw-f! z6NF_k!U7Jt5M&7u7s;{1r`RYJhAQq6dURf>TqpSp36;wh(yF8+#@vNOj1Lw{Qf2GW zH-p{<*zi!G6yzwHt&`{9x_@qUR3|2ldXp;8{hTTja=*M;2iGfhP)=0xr@AGhP+g$U zUPM)nZLgZWTOc%DBJ?ECwP^*kO*M)fBKf!lddor> zc-@_Z*SaOta96x?v!!%>@zPl1m&El_aou-WRlU+OAMQ)q_gzNvF?X3kl3dWO=v*uf ziZG%`KfQM;QG`%__^t8;KKNEGKudd@plKggwE)^9=dgO;+qL2}HWS3Yx_I_}{-G#)418 z^~sea@AX#Y=xtVZh@&b7f2H1cA)z{FZ?1lHl?5PnuOxJ1O>V>QiL0msqecWIxW7C> zu@`lL?pz(?&Mm9U({RIT!t(6uq@mn*&QR99N0m;!XH=qI?mbU01KyAI^4|LaG}s!u zjt(wgTLn(ZV&64Myrz6WO-nzBfl66J*BNVK*Z*2megJ#d5N`gp2{I2{Tb`vm*HR7l zhe<;maLy37eMpt;A0<`le@>;1A61a0RtZ@mSuQL;Od@^qFk2)I^W$|itX=D3!)o?% z`C+~MG2yf6V*{U5K)?Mw(9dJDr?0PL{_5yT{nPbT&F~lc>GgdeAU!{+ElP_&35(K+ zpHMRU#3xnJOTsSRUshp&^%4Vw^sx;@*@Q_Nw4p1mmu_f!!(Q4TT7ZZcQBK^^Vego9 zbV|(8!N*awi$4}xo`Qd)%|%9|3e{nIW7YLupXS=6E!O}2so^^6)gyYq`T`Qg-FuPJ zja%csNwlIpY?`o?3CyqijBInVF%>ehk=OxCnp4h_{t>W!8_x%9!X^WlD+!o>c2jv0 z4%~dcwpm-wi^z?CFsh%noDbN`ThE7xe_MG(inpDwZC&Ah&Y{Tle}G8J_VWQ-vi-cH zy6z8vjo)z&u<~Xy$M6wAGnzzepZnS*$dG{$nZgxc5E5kS(|3{z*4i1neqv{N6+FJP zf-+Q2C5C3f_d3FFnjE!N)PQ#s&wf&l{$Y#mHzdWQHjibpL55mfBh9v zjvRB_edUMu#y$eDV;=!99CNR8jOi=;snVAHNtJq@Q|ZO86EqOs+n(S7Xi(=sc^XVR zKrlZ(kOcGMb6`&ThAOT3#;8QY>rsAq!e=%=7!wTrAT7PmJ$Q$(L0VYfb+VC%%#oaB zP~hJ8+e^IbMGWr~p}4!V?*Fdx_`_EHi*IYPk96mup7?vsq0Dfioe0_O6gzg3l~eT6 zLsiRz=_v2iEnnIpR{!S173#Ow>-|tmKXcHfe{#5f1suKKweub}%r9A1w+1lj`XxW8 zMgxak8tRYq=fCR;bPs)3ISE~1j0tCVTeQp6n;pq153Y?UexhP=Yf=2!ksMc2=i`sI zG$uM}+1LY8fJ_5fX`1NpAr96x#jyVFmS~Ncz>ik_{iAtC6BTo2GzrC<=AyY$h=YAMB5edo88^{vNRtL1s*Zmy3zR-L`A z_x}Exinp2xdfQKUn^M}R-4smv)h0-zP__s2RpF125+D?4^l^dl!B4^qf}DEoA6m1= z^t*nD=Awoi!Rur7C; z>qI>l@QGi)a-w<0uax#e`#2Ccp5`!Iw|@3Sry|hbh$ajI{-u~A`ln(FaKH#0#vq$R z=m=G;i#eXB+$2xm@MAN~3SB?t#FbFgtgX*jpRHf_QzK}~_@A^2%C_sLKGIrXN^!DL zlGq5%t7%AeIsh*?c@ZFNKiRyZu8Cf1peF1{ihjw@Rb5FIMlb%kg2kz3)Es}Rf=wvU zkDY3)_div|Mgj(j8++=i*w61yU6mqBv7n9t<>-eF)&e@yeraA2=e*c$Ij)@ZSi$1c z6>!Rl;q+?-oU+RUt9%|{>wdk8EJjR7^g3s*B6}0N_PMk8U^8o*Ldrt&nHi&$a<)Qe z8L>OpR=fj`E~&eq;+=Hk&IAuDNB0SBScNgBC7E33gfCb@MZ%>5lrUlan0Dw`B1L`}$xD+WM6 zd)(KaM4nKx8>5mYPUP#PeIpvh!~shK2?AM? zF|R?G<91?TNX5o{ovo2lQ&9ONtwQYPwH++xXdTkgy5n9`I9gI>K;mT%R=+YD5!6_k zi@=uAMlaX*@9@kNRt-SkB7%lHd!b`RUiBOca9+X`Dwiw@Xuh;MfeqeTv5y~lkiZCE>i zCviYq%BTwLDg#%FI1sh3x4HZ9XFO~X+rcmKvPg#yEx1vaHn^Ev<=%GyRD^IbtXu`vgxjF6?@ zc;G9~Zz1di)R+G})OS-^M+=~K;h)@u(@rweSS@*ZNgB%pD+Rn+e+gbqzAcSq5tPpS zmoz*ZA%1nL#5%}dqbsp0tc!&F%AbdPq!R0B1*lFgUL}>Kb7wkp^6S%CCPD4QAH}b% z&a|7>+u74R##j)>0;^R~TzCYFo2Wv`K zPi1Uq<-4z7;gH-g15;q813&0Ql&F-7z>R|-A`Plvc0 zh;37O+0;Rqm3BU66wK)Ga6 zKu5$9tKfWPcMZ{{Lwg*77#>-vhX&+X;HQ97e5aqGQEEPhk4+j4IIA5uLc%PzjETp2 z4RA|-d6cyc#Se%HX%;#k23p*fujm7rdpF7&`UG7Mfv$4HHD}rEiZqyBJh%mJi=7T; zZMs?Tvz5Rg*(tQ(bF$+&2_x3xcX4VVER=5&c8m*uW+8u8l^-Kdk#G_2W~3ss6#1Yf zJFKk!QnXhT+3tiq}>%qhk(ft zQRCr`bo#55kiJ-oCk3r3+eR+pIs7b;Jy`a-ZF7dYKy zBR1r6EQjKG5v~@n5PHlnV1t}<$V5X=)De7I0gJNviAWz}Ez`!I%Cv7b3ZTF&^)0>#%?g7$#}R@8v2+f#}q^%1XpVC zy@8e@emDaAViC&2-_ckaShq!E)w#DG&dMf)&gl{6xg0&#`uX;oSOFhjkI`1RvU-T~ z8*)~k^K8t1{HY2%>+0nSwK_uSUzsr17(vEMgwHa5X>Mjn#AuiGQDVZ@bg@@&>H(Ez-0g1_Y0z6dY0?SSrUb z(vmEuEW*9vFr80%$SM2|ZzywRpo*45>#mtgTT$O^u|yc@VSjx?Mj$-oR@%>XBx1kyl!I_ta=>* znU06TXwRQvOae3-V!!Yl;&~rl*qCKqblULf#*BfWgLG%Xr&^{mdfwjBmdw!I9as)8 zYs>=f1q;alJ&1~X&HTH@thuy7XXSo+8VtHI9w@>E8Nnd|?Bq=hNEXS8>g&wyKgWmF zJ;#S3dnd14#p_B|TVFlwMZ&+W3os}6%wyu0G-vf@-AF&rv{j9J2(ebb6POV7!M%ms2%n5LF8;_4*G~g3z(0x3#*>^pyPe?Y;C8IB1(nkI zYwg$pgf=DZ88`Z@i9TtXLY5?M0nlsQ02-6}ED;<)vm2S0FIdfA?!Y?Og?0VL%8z$o z_tS_6+#v!A(Cbbc4YqPzgMdN(RtBU>G{U0@myrO_j+X@9x2Hh!{;pbG(bKO@v(#Igd*GtHdpupgMe14lIoMUfQCYFJ`we z!u`)gl54oFr;H?vdNOP<;%0I97ppgRdnYXb+(d&CklrX@hJWwL4iIJ_8IDE#ur}7s>yz6LT#9sLzl8D z6m)2nV)juX@{4DxIh01}19(NIPpL*Xs}5Np?vb{SDiSfDxf zI)vuGkL7NGW!z*W*$F15#_da$!fNJ33V;%EbZVqDHNwJ}XDLn0$fn3)AW0&F-lUmy zrAyfrZ7~j#fH;CA1oWU%Qf|T=&rPJr+yu5Y$8r-6Y%*ulf)#Q#79&@aE)FFT#wC%a zY1oix7mrOz){}EGc0%Vb=45Qb_HcgeN|u!!8?rq%WRjtH&M20Yi4qcV!yxpzJSP0^ zt5~ILAzBu>zRZ$MZfi-$S__Y_gTXkDMhD1Ct(-Hfzmk`Yq!Z zW88S2`wxAtGp@Fo$4h@_QqR|2#~!NSfGIS^W9~o;=2tr^GTHp(_3S_Ccpy`Z4bKwL z1PiyNVR^&G-$+4P>4h8ERJLwWyBk>vQ`BGi=QpuVFz(rX;hbjiW_?+n5DpxEMiYdw z$h{n86hlel$h4}6cOL1BJjN_OwJ)oLHJZhAHHmNQ%U&l&4ZoRX7(2-kR5D1A5w?l| zfxmq-Ym6t;$cdb5Zn^6g5z-`9Bc8s6rL`#iJ@S~e^$N`Z<5G;Z709Gy=@wG#&;;EWx5o|><|l}$B{Z%MXZv711@D{jLi8)S-iEFMA>GC2+6IyCxG8UbBJ4+J>kT40)@XsII&hnhX zUrRQexc!`<4k)?qWYzJonhd9+V%m(zN`|zAf+(UN#cr&e;Snl}7E<>ty6sM^e$nxnNyo6qvGndFdK__b7JBg=FKdQ5Tkt{l~D2;fC;5=$^_HFP~A%9^`e4SmW536Fw)|3M5MZ zOHVXm+y&!l75##B^-9TwWn#l;E^L4A@(bHvw`VVGf14%=rO16Qq5En)v>WnVBD71C z&U{XUb{n2!_rz2u;VP4(&qOJr&on-MG8S2JcpC5h1m;>-&tSD;%@aX(vgRd9h5v0k zMFi(pPD#jiUINpkIZUDybC?J}GzD90r*LH|dzxlnNZR4)3Yr?)5>rDf66AzTxtn~+ zR53N&K9vppotAP^S-$0<=UE>5?70TRoq;ZYpnEc<};Ohrc&Jk?%;<{KNLFm=`Tz55{^< z7@1_7pD6tsVdb%RL_Ws#Cd;ZU^NkLiScH6|JI9S3@-C5YjHL7L7Go6mzRBAC#kAw{ zcUc~V$i4yaU(rP@Xk;~2nbiy-tBG8<%xd;n#0oMc5^1z^5vz^JVWWb91XjQQkJCK{ zHKOk#Q<=Hsd{X&O6JB)n>e36=Rg-x8&+Ez^}&I#yPdodHjD^!QlHjr#9 zwr-O^mY)EuTElw$MFCGNMAf8j%P(QYCN0@EqucW@X02GuK4oKg$%pJtl};eU!DVzP zAy)O&V~ac=u@*`yj@%XNQ&`W%`jj?#(JB)j5jeer9xVIl7(YM;Q}h8vkg%AhQmDug>-(QW|Lrh?x@|c_N-prayR> z86Ufig(J&C?jh({(V7-&Wdzr(De5vl<2atV0;S4$$Imc|QT)!&*b3{@PE?ldo(j2( zW9^PpJ6nZzGdHrR@_~aFe#VwlLo9Gphha3tv0tLUk;G|7yj_I)bLN=o%|}>L2Fh5$ zUhEPmTL7U*0Pq07qXvMI#eC3a);)hJ0WySnXi6M{_B@pn&jDyC-?f=FwP5IvN;nw# zBLK2n zQw;O>=~d|59uJc9uqrdeCTndND6O zz`D1J6Q%-zhmdxW1tvzFkAXPCDZ#)81!er8%mW7eQ9?WUj2~F%zsSS~;;`;FV2%CT zuEO&;BhyB#-xs(RqN>JqE1F zOUOq3RkgV%4hJX037lq1I4zRZAfd!@nfX0s63Pv_&DjmX1B!zT&~N=iposv3;)vgE zKwtR}Lcco>eV_q-%|8fzU>y2g2K4p+5Off|%|0n(0}Rkx{+E9KqWRC_nrSD7VF-^fRFRyoA@yRsO2!=qKQic-(5h8M+kW;r~10 zacdmbEe0%|V1@oFEXe=h!;;W98-QM3${)Q*>Hc5ykR;^hIGTM8=<^e3{v$o~jWg#a zqlXWc@*9q@e+K`X;?Qw`q0qveONH0?uW<+A*)d7@8w}82Nzi{u!EcBoh=UCUf(Mrh z+596Ycp=MBe$)3XGd?B5CTp6K$zTRSc**zdB4t#F-{s3_%};&La`IOC>1=Ck|HB5z z0;OR#Jw25t&!0EbW6d~rgvodptiL{v8BR$QmfNCGDMmvCtEE4JlW29d(dxxzLP&lyl75w-(sZ)In35?IC*;*}LgLs)F{Ihc z_@h6w?w)dBxc{VNrg(@O^C)7bBodg}@gyGR-OHakiQ|AI8^vZ@RBDKMs70`mv!7Y$ z-1!#i@l|mga59d-VZOwn)lwP?!%!;3#LHske;5;!3qB<^;R*xzTg!wD{{z4Y`6~qS zWOwmyZ-M-KgdFx@AmILo`nWt!pv#OtK9e%=55Nb3j-8e<3JwGk1K36baQ%}5xHLWh zY;P8QeD#lUn3&Kf4!^en|J!9^`uh(Mh~W1Y@JaD|8SqaKjpC}?*#ccFn^0M)&!$bd zL}{;#+&@8Ae#k}sK`0Df8%P_b@!pZo@t$jwsR~f&{+xSlNi7zdKz_;F&e#{&oL|2`-~wN9;w}DY;L^m$*j$$G9%4~GCbR7q4bM04!5a< z+Y)dWqHZ!V-`+0i(#s-=mmY=rZNv=1sY`ow5-$f9_R+P!4$%TRkmh1%P; z3x3tbBb)SKOEO|t$yV2))#nvj?Gb&{2kl<8#&Nns)*pcShbq)RE_$in<^;+$cbq_B z>hvf&g`=d`i-F36B#`?6WXO&rYS;_4;XC*PHl@BXrUzxkhf#54az)5s$qp%lH>D}o zlw!QM!$IKrS)0-|U-mMb$<`wonop_Fe5Pz(-%r?$MRQLayRk;Q5^DESayx6G_Sz0! z*#Rm3#;$mbekL0ACsY0T73wb*_3Il|ryEsYq^ir4t71fJc1S_sjyUL9M*Z1T|HBIP zKi$EjDM01BMEz2u{sOAMxkCM&qCWBS(iEj@BT1y?MvK+d;$U(MBxq0J+DHHkz5jj( z-;knoqVNc(ubMz!d|9;9sHVB#QENMuHtc;q(5c*vROJSzLK*8CE_n5Kcn_DNY16+z zO+){nCwQ*OLTA!x#;a=}8f6AP8wsCTs2*2AGl>5MU++?4#N29B-9c67plY&KE&4)= zM>ltzn7fSnUs3(V73wdS_3Pu|A`3kxm?W(SjCO~p-HPOPkk>U|ki6#elZk$g8ugD; z{dLLp!Q_nwUOhc=yiOYRPgDI(73zQS1s~#3sw-c9!C&_%_q0NwLa`=Z&exD$t`dti zQ;b;CjhouU%`5O8KyB8R6()7M&*T!B7l$@|KflhabZ3v_G&=?F>EQ2smEDwv?IryL zf;Aj`C;Z%SN@Q2?6FjQojEiX@r7dwiEyv8Kjjddlk5ZKsI1WBhRem(I)*WDU&IyPvp2uxks^$S@9eiWrvc=Eou!!5xvf zW)&NnHH-n9r4>3^DXGfeP1H~F7!chG@Ye|VG2@fuB<$MSWYFMj*=`cYe12D|!2ds~ zN{4#V+)g(zf&;*_x@cyYS39k7eU5A61yyFv%>4nS5>H8sk0!|(*tP8yu={d1Z;=)^ zjY)pMuI;W+b)Tr3&le>?FE-G6i_rSILj7-z`rb-nG#QoR9(IkePI3AUcx$`Ps>!S z)ko}wn>Rw_Uv2Us(^*u82SaI6j55lXXmD!lGZRh?N8^xFbHtn)z5SdLD8KF0tmM=l z$r4U&ZI*CqUuQ|D)>BTd;M8zVt8i+Q-x7(~Ke?QALsaQXlc-DLlQf*OD&WkNa6IvB z3r+KRezwvTv(me>6|u~NlT1bB`Q%CEtn^QI99z`v5$_mJbqZMTyd@V$<7uG^`Gq(_ zh7JO8${V#epg;dM z1YG8g{_6xV_0T>}ns!DHr4s)?%HEb+Mj>zgah@Wq=eeIj(g11453I*kTl zd;tzov8b!~+2%@~Qyl&v&Yk9C|D`nJx3y40=Wj5Nk8N>IgI4^P7D^Bu`C2OJw21}q zqu79ouRQEd#f!vwtCm2268}$2Wf>0sXwpilE>0!Gi-t`&yhJ_B2ewi&QojUhwM?^I zct5!D3R^k@axb6JN+}R;1vgHb5Y14&y_M3|cw0CPOw39P)HA$RYb7^Fo@h}9_;_`- z3lp}aLoUqPCv-H#J*|~Sjlc54tI5w_*PU(rU%5^r8c$2bcfFEQ7~ViFtgFC=*r)rCL#Fse>)erdLHcGlURM!+u5*1PF2ww7=R5c_)t49=h=AOVCq$qc?c|{nB zoZHJj!ES3Thla|EsMO%^EP`~Dz+AH!6n^tX?XkbW? z1jN-2N;4ct6%#Uu2KXk?AqL{qA<-`#QX_CwNAmkSAhtNjmv>N_(z#rqlsIWc%0DOt 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 lm&p@xT1VMb+2szL>I(B+@NpDQ( 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

%?tkP@m|v9BXDhEgm`p>zkU6Ra@Yz7%#G{H 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

    %zcRXUDuvj(1;;9o9m||Cc(fq^jIuxU2mYGu-yS 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 PoW{^9?V=9+vnu@u`|AA3 diff --git a/docs/search-index.js b/docs/search-index.js index 80557ef8..5878901a 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["sage",{"doc":"The Sage Programming Language","t":"SSSCCCCCCCEKEEEEEEGEEEEEEEEEPPPPPPNNNNNCMNNNNNNNNMCNNMCNMNCMNNNNNPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNSPSSSSSSSPPGPSSNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHFPPFPPPGPPPPPPPGPPPPPPFKPKPFFFFFFPPTTPPPPGKPPPGPPPPFPPTFPPGPPFPPPPPPPPPPFPGGPFPPPPPFKKPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPGPTFPPFPPPPPPFPPPFGPPPPPFPPPPFGPPPPPTKPPPFPPPPPPPPPPPTFPPKPPPPPGPPPKPPPTKPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOFNNNNNONNNNNONNNNNNOOOHHHHHNNNNNNCCFNNNNNNNNNNNNNNNONONONNNNNNNPPPPGPPPPPPPPPPFPPGPPPPPPPPPPGPPPPPPPPFGPPPPPPPPPPPPPPFGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKNNNNCMMMNMMMMNNNNNMMMMMMFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPFGPFPPPKPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFFGFPPPPPFPPPKPPNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNONNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNMNNONNNNNNNMNNNMNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","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","deref","deref_mut","drop","eq","fmt","fmt","from","from","get_op","globals","init","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","ArithmeticRightShift","Array","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Call","CallLabel","Comment","Compare","Const","Copy","CoreOp","CoreProgram","Dec","Div","DivRem","Else","End","Fn","Get","GetAddress","Global","If","Inc","Index","IsEqual","IsGreater","IsGreaterEqual","IsLess","IsLessEqual","IsNotEqual","LeftShift","LogicalRightShift","Many","Move","Mul","Neg","Next","Not","Or","Pop","PopFrom","Prev","Push","PushAddress","PushConst","PushTo","Put","Rem","Return","Set","SetLabel","Sub","Swap","VecAdd","VecAnd","VecArithmeticRightShift","VecBitwiseAnd","VecBitwiseNand","VecBitwiseNor","VecBitwiseNot","VecBitwiseOr","VecBitwiseXor","VecDec","VecDiv","VecGez","VecInc","VecIndex","VecLeftShift","VecLogicalRightShift","VecMul","VecNeg","VecNot","VecOffset","VecOr","VecRem","VecSet","VecSub","While","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","get_op","hash","hash","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","push_string","put_string","serialize","serialize","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","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","dst","name","offset","offset","offset","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","sp","sp","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","vals","Globals","add_global","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","deserialize","drop","fmt","fmt","from","get_global","get_global_location","get_global_size","get_size","init","into","new","resolve","serialize","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","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","into","offset","partial_cmp","serialize","to_owned","to_string","try_from","try_into","type_id","ACos","ASin","ATan","Add","Alloc","Call","Const","CoreOp","Cos","Div","Free","IsGreater","IsLess","Mul","Neg","Pow","PushConst","Rem","Set","Sin","Sqrt","StandardOp","StandardProgram","Sub","Tan","ToFloat","ToInt","VecACos","VecASin","VecATan","VecAdd","VecCos","VecDiv","VecGez","VecMul","VecNeg","VecPow","VecRem","VecSet","VecSin","VecSub","VecTan","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_op","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","serialize","serialize","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","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","size","size","size","size","size","size","size","size","size","size","size","size","size","size","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","parse","Add","Add","Alt","And","Annotated","Annotated","Annotated","Annotation","Any","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","ConstParam","Constant","CoreBuiltin","CoreBuiltin","CouldntSimplify","DEAD_CODE","Data","DeadCode","Debug","Declaration","Declare","Declare","Delete","Deref","DerefMut","DerefNonPointer","Display","Divide","DuplicateMember","Enum","EnumUnion","EnumUnion","EnumUnion","Env","Equal","Error","Expr","ExternProc","FFIProcedure","FFIProcedure","Float","Float","FromImport","FromImportAll","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","Module","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","UnexpectedConstParam","UnimplementedOperator","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_char","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","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","display","display","display","display","display","display","display","display","display","div","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","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","equals","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","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","hard_with","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","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","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_const_param","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","many","match_pattern","module","monomorphize","monomorphize","mul","name","name","name","name","name","name","name","name","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","print","println","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_common_name","simplify","simplify_checked","simplify_checked","simplify_checked","simplify_until_atomic","simplify_until_concrete","simplify_until_const_param","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","var","variant_index","while_loop","wildcard","with","with","with","with","module","names","expected","expected","expr","expr","expr","expr","found","found","found","patterns","SourceCodeLocation","borrow","borrow_mut","clone","clone_into","cmp","column","deref","deref_mut","deserialize","drop","eq","filename","fmt","from","get_code","hash","init","into","length","line","offset","parse_asm","parse_frontend","parse_frontend_minimal","parse_lir","parse_vm","partial_cmp","serialize","to_owned","try_from","try_into","type_id","ffi","io","FFIBinding","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","input_cells","into","name","new","output_cells","partial_cmp","serialize","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","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","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","std_op","supports_floats","supports_input","supports_output","version","C","borrow","borrow_mut","declare_proc","default","deref","deref_mut","drop","end","from","get","init","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","And","ArithmeticRightShift","BitwiseAnd","BitwiseNand","BitwiseNot","BitwiseOr","BitwiseXor","Call","Call","Comment","CoreInterpreter","CoreOp","CoreOp","CoreProgram","Cos","Dec","Deref","Device","Div","Div","Else","End","Error","ExpectedCore","Free","Function","Get","If","Inc","Index","IsNonNegative","IsNonNegative","LeftShift","Load","LogicalRightShift","Move","Mul","Mul","Neg","Neg","Not","Offset","Or","Peek","Poke","Pow","Put","Refer","Rem","Rem","Return","Set","Set","Sin","StandardDevice","StandardInterpreter","StandardOp","StandardProgram","Store","Sub","Sub","Swap","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","init","input","into","into","into","into","into","into","into","into","into","is_non_negative","load_vector","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_float_register","set_float_vector","set_register","set_vector","std_op","std_op","std_op","store_vector","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"],[65,"sage::asm::core"],[207,"sage::asm::core::CoreOp"],[348,"sage::asm::globals"],[376,"sage::asm::location"],[416,"sage::asm::std"],[510,"sage::asm::std::StandardOp"],[565,"sage::frontend"],[566,"sage::lir"],[1911,"sage::lir::Declaration"],[1913,"sage::lir::Error"],[1923,"sage::parse"],[1956,"sage::side_effects"],[1958,"sage::side_effects::ffi"],[1986,"sage::side_effects::io"],[2292,"sage::targets"],[2318,"sage::targets::c"],[2348,"sage::vm"],[2652,"alloc::string"],[2653,"core::fmt"],[2654,"core::fmt"],[2655,"core::option"],[2656,"core::cmp"],[2657,"core::any"],[2658,"serde::de"],[2659,"core::hash"],[2660,"alloc::vec"],[2661,"alloc::string"],[2662,"core::convert"],[2663,"alloc::boxed"],[2664,"alloc::collections::btree::map"],[2665,"std::collections::hash::map"],[2666,"std::collections::hash::set"],[2667,"core::ops::function"]],"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","Side Effects 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.","Assembly Global Variables","","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.","Arithmetic right shift a destination by 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 …","Write a set of values to a memory location.","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.","Left shift a destination by a source value.","Logical right shift a destination by a source value. This …","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 …","Get the address of a location and push it to the stack.","Push a const to the stack.","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.","Perform a SIMD addition over a vector of integers. This …","Perform a vector “And” operation. This will perform a …","Perform a SIMD arithmetic right shift operation over a …","","","","","","","Decrement a vector of integers.","Perform a SIMD division over a vector of integers. This …","Perform a SIMD “is >= zero” operation over a vector of …","Increment a vector of integers.","Perform a SIMD pointer index operation over a vector of …","Perform a SIMD left shift operation over a vector of …","Perform a SIMD logical right shift operation over a vector …","Perform a SIMD multiplication over a vector of integers. …","Negate a vector of integers using SIMD.","Perform a vector “Not” operation. This will replace …","Perform a SIMD pointer arithmetic operation over a vector …","Perform a vector “Or” operation. This will perform a …","Perform a SIMD remainder over a vector of integers. This …","Set the vector values of a destination.","Perform a SIMD subtraction over a vector of integers. This …","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.","Write some constant values to a location on the tape","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).","Push some constant values to the stack.","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 …","Perform a SIMD floating point inverse cosine operation.","Perform a SIMD floating point inverse sine operation.","Perform a SIMD floating point inverse tangent operation.","Perform a SIMD floating point addition operation.","Perform a SIMD floating point cosine operation.","Perform a SIMD floating point division operation.","Perform a SIMD floating point greater than or equal to …","Perform a SIMD floating point multiplication operation.","Perform a SIMD floating point negation operation.","Perform a SIMD floating point power operation.","Perform a SIMD floating point remainder operation.","Set the vector values of a destination.","Perform a SIMD floating point sine operation.","Perform a SIMD floating point subtraction operation.","Perform a SIMD floating point tangent operation.","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 beginning of the constant data.","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.","","","","","","","","The constant data.","","","","","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 …","The expression equal to any other expression.","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.","","A constant literal used in a type expression, like a …","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.","","","Duplicate implementations of a member for a type","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.","Import an element from a module.","","","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","Declare a module","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.","An error caused by unexpectedly passing a constant …","","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 character.","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.","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?","Create a collection of declarations","Generate an expression which evaluates a match expression, …","Create a module with a given name and a list of …","","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 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.","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 …","","","","","","","Foreign Function Interface","I/O Module","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).","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.","The type for the C 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. The …","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Boolean-and the register and the value pointed to on the …","Interpret the register’s value as a signed integer. …","Perform bitwise and on the cell and the value pointed to …","Perform bitwise nand on the cell and the value pointed to …","Bitwise not the register. Store the result in the register.","Perform bitwise or on the cell and the value pointed to on …","Perform a bitwise xor 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 …","Decrement the register.","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.","Increment the register. The argument is the size of the …","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 …","Left shift the cell by the value pointed to on the tape. …","Store the value pointed to on the tape to the register.","Logical right shift the cell by the value pointed to on …","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 …","Negate the register. The argument is the size of the …","Negate the value of the register (as a float).","Boolean-not the register (0 if the register is non-zero, 1 …","Interpret the register’s value as a pointer to a cell. …","Boolean-or the register and the value pointed to on the …","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 …","Return from the current function.","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 …","Store the register to the value pointed to on the tape.","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Swap the value of the register with the value pointed to …","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,3,0,3,1,1,1,1,1,1,1,1,3,0,1,1,3,0,3,3,1,0,3,1,1,1,1,1,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,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,17,17,10,17,10,17,10,17,10,17,10,17,17,17,17,10,17,10,17,10,17,10,17,10,17,17,10,10,17,10,17,17,10,17,10,17,10,17,17,17,17,10,10,10,17,10,10,17,17,10,17,10,17,10,17,10,17,10,105,106,107,108,109,110,111,112,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,105,106,107,108,109,110,111,145,146,147,148,149,150,151,152,153,154,155,156,157,158,115,142,143,158,114,122,123,124,125,126,129,130,131,132,133,137,138,139,140,141,142,143,159,144,152,153,154,155,156,157,159,144,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,134,135,136,137,138,139,140,143,159,145,147,148,149,150,151,152,153,154,155,156,145,146,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,25,0,0,0,0,0,0,0,25,25,0,25,0,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,28,28,11,28,11,28,11,28,11,28,28,28,28,11,28,11,28,11,28,11,28,11,28,28,11,11,28,28,11,28,28,11,28,11,28,28,28,28,11,28,11,28,28,11,28,11,28,11,28,11,28,11,160,161,160,161,162,163,164,165,166,167,168,160,161,169,170,171,172,173,174,175,176,177,178,179,180,181,182,169,170,171,172,173,174,175,176,177,178,179,180,181,182,163,164,165,166,167,168,169,170,171,172,173,175,182,162,0,0,49,37,0,36,35,30,0,35,67,34,30,34,36,36,0,35,30,34,35,30,36,0,0,30,0,30,0,0,0,0,0,0,35,34,38,38,35,34,35,34,0,0,36,38,31,0,30,37,34,38,0,35,36,38,0,38,59,0,35,30,0,30,30,36,59,49,36,34,35,30,34,0,57,0,0,31,0,35,35,34,31,31,0,0,0,57,57,30,30,67,31,30,35,34,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,38,57,57,34,38,38,31,30,30,35,30,36,36,36,31,35,49,0,67,30,0,36,34,0,36,36,36,38,35,34,0,57,35,35,0,0,37,34,34,35,31,0,49,35,31,34,0,0,36,36,30,49,30,34,0,35,36,35,0,35,31,35,30,37,34,49,35,37,34,36,38,0,35,38,0,30,35,30,37,34,0,35,31,34,0,36,35,36,38,0,30,36,36,35,30,34,34,36,36,36,31,31,37,36,30,30,37,31,30,31,33,34,37,30,36,35,30,35,30,34,37,68,69,35,35,35,35,35,35,30,30,30,30,30,30,30,38,30,38,30,68,69,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,43,43,44,44,45,45,46,46,34,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,74,74,43,43,44,44,45,45,46,46,47,49,50,74,35,30,68,69,70,71,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,34,59,37,33,67,33,33,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,35,31,30,37,68,69,70,71,72,67,34,43,43,44,44,45,45,46,46,59,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,35,31,30,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,35,34,43,44,45,46,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,35,30,37,38,33,33,36,36,35,35,31,31,30,30,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,60,60,61,61,62,62,63,63,64,64,65,65,66,66,37,37,68,68,69,69,70,70,71,71,72,72,67,67,34,34,38,38,33,36,36,35,35,35,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,67,34,72,30,33,71,33,37,71,37,71,71,30,34,72,71,34,79,79,79,35,30,68,69,70,71,72,34,34,80,80,80,35,30,68,69,70,71,72,33,30,30,33,34,38,38,35,31,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,30,37,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,34,38,34,34,67,38,37,38,30,34,67,38,34,34,34,34,34,38,30,34,30,30,30,30,30,30,30,30,38,30,31,37,31,35,72,30,43,43,44,44,45,45,46,46,68,69,30,30,50,70,71,72,30,30,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,34,37,30,30,30,35,71,30,30,68,69,43,43,44,44,45,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,35,31,30,37,68,69,70,71,72,67,34,71,81,81,35,34,34,34,34,34,34,34,34,34,34,34,30,34,37,30,30,80,35,30,68,69,70,71,72,34,80,80,37,35,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,84,43,43,44,44,45,45,46,46,35,31,30,37,68,69,70,71,72,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,35,30,34,30,37,35,30,71,72,183,183,184,185,186,184,185,187,186,184,185,187,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,0,0,0,0,75,75,75,75,75,75,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,90,90,90,91,0,90,91,89,91,89,90,90,91,90,91,0,91,90,0,90,90,91,90,91,89,90,90,90,91,0,88,91,90,89,90,90,91,90,0,0,90,90,88,89,90,90,91,91,91,91,91,91,90,89,0,0,90,90,91,90,91,91,91,90,91,89,90,90,89,90,88,91,91,91,91,91,91,91,91,90,91,91,91,90,90,90,91,91,91,91,91,90,90,88,91,91,90,90,89,90,90,87,87,89,87,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,87,88,88,89,89,90,90,91,91,92,92,86,86,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,23,87,88,89,90,91,92,86,23,86,87,88,89,90,91,92,86,23,23,23,23,86,86,86,23,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,0,0,93,93,93,93,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,95,95,95,94,95,95,94,94,94,94,94,94,94,94,95,94,0,0,95,0,95,94,94,0,94,95,94,94,0,9,95,94,94,94,94,94,94,95,94,94,94,94,94,95,94,95,94,94,94,95,95,95,94,94,94,95,94,94,95,95,0,0,0,0,94,94,95,94,95,0,95,95,9,0,94,94,99,0,0,100,100,100,100,100,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,99,9,18,94,29,95,99,9,18,94,100,18,29,100,101,102,18,29,103,99,101,102,100,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,9,103,104,100,103,99,103,18,29,18,94,94,29,95,95,103,99,9,9,101,102,18,94,29,29,95,103,99,9,104,100,103,99,18,29,18,29,18,29,18,94,100,101,102,18,94,29,95,103,99,9,103,101,102,18,94,29,95,103,99,9,100,100,100,101,102,103,103,100,18,29,103,103,103,18,94,29,95,9,104,100,103,99,104,100,103,99,104,100,103,99,100,100,100,101,102,100,100,100,100,100,100,18,29,100,18,94,29,95,99,9,18,94,29,95,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100],"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,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[[3,4],2],0,[3,5],[5,-1,[]],[5,-1,[]],[5,2],[[1,1],6],[[1,7],8],[[1,7],8],[-1,-1,[]],[9,1],[[3,5],[[13,[[12,[10,11]]]]]],0,[[],5],[-1,-2,[],[]],[[3,14],6],0,[[3,14,14,5],2],[[3,10],2],[[1,1],[[13,[15]]]],0,[[3,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,5],[[12,[18,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[17,17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[17,17],15],[[10,10],15],0,[17,5],[[],17],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[17]]],19],[-1,[[12,[10]]],19],[5,2],[5,2],[[17,17],6],[[10,10],6],[[17,7],8],[[17,7],8],[[10,7],8],[[10,7],8],[-1,-1,[]],[-1,-1,[]],[[17,5],[[13,[[12,[10,11]]]]]],[[17,-1],2,20],[[10,-1],2,20],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[17,14],6],[[[21,[10]]],17],[[17,10],2],[[17,17],[[13,[15]]]],[[10,10],[[13,[15]]]],[-1,10,22],[[-1,23],10,22],[[17,-1],12,24],[[10,-1],12,24],[[25,-1],10,22],[[17,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[26,4,5],25],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],26],[5,-1,[]],[5,-1,[]],[-1,[[12,[26]]],19],[5,2],[[26,7],8],[[26,7],8],[-1,-1,[]],[[26,14],[[13,[[2,[25,5,5]]]]]],[[26,14],[[13,[25]]]],[[26,14],[[13,[5]]]],[26,5],[[],5],[-1,-2,[],[]],[[],26],[[26,25],[[12,[25,1]]]],[[26,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[[-1,-2],2,[],[]],[[25,25],15],[25,25],[5,-1,[]],[5,-1,[]],[-1,[[12,[25]]],19],[5,2],[[25,25],6],[[25,7],8],[[25,7],8],[-1,-1,[]],[[25,-1],2,20],[[],5],[-1,-2,[],[]],[[25,27],25],[[25,25],[[13,[15]]]],[[25,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[28,5],[[12,[29,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[11,11],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],0,[28,5],[[],28],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[28]]],19],[-1,[[12,[11]]],19],[5,2],[5,2],[[28,28],6],[[11,11],6],[[28,7],8],[[28,7],8],[[11,7],8],[[11,7],8],[17,28],[-1,-1,[]],[-1,-1,[]],[[28,5],[[13,[[12,[10,11]]]]]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[28,14],6],[[[21,[11]]],28],[[28,10],2],[[28,28],[[13,[15]]]],[[11,11],[[13,[15]]]],[[28,-1],12,24],[[11,-1],12,24],[[28,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[13,[14]],6,6],[[12,[30,4]]],22],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[31,-1],-2,[[32,[31]]],[]],[[30,-1],30,[[32,[30]]]],[[31,-1],2,[[32,[31]]]],[[33,34,-1,35],[[12,[2,36]]],22],[[34,33],[[12,[2,36]]]],[[[21,[37]]],37],[[30,-1],30,[[32,[30]]]],[[36,38],36],[[35,38],35],[[30,-1],30,[[32,[38]]]],[[35,[21,[30]]],30],[[30,[21,[30]]],30],[[34,[21,[34]]],34],[[30,[39,[37]],34,33],[[12,[6,36]]]],0,0,[[35,33],[[12,[6,36]]]],[[35,33],[[12,[40,36]]]],[[35,33],[[12,[41,36]]]],[[35,33],[[12,[42,36]]]],[[35,33],[[12,[4,36]]]],[[35,34],35],[[30,34],30],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[30,30],[[38,38],-1,[]],[[30,-1],30,[[32,[30]]]],[[38,38],2],[[30,-1],30,[[32,[30]]]],0,0,[6,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[43,34,34,33],[[12,[6,36]]]],[[44,34,33],[[12,[6,36]]]],[[45,34,34,33],[[12,[6,36]]]],[[46,34,34,34,33],[[12,[6,36]]]],[[47,34,34,33],[[12,[6,36]]]],[[48,34,33],[[12,[6,36]]]],[[49,34,34,33],[[12,[6,36]]]],[[50,34,34,33],[[12,[6,36]]]],[[51,34,34,33],[[12,[6,36]]]],[[52,34,34,33],[[12,[6,36]]]],[[53,34,34,33],[[12,[6,36]]]],[[54,34,33],[[12,[6,36]]]],[[55,34,34,33],[[12,[6,36]]]],[[56,34,34,33],[[12,[6,36]]]],[[57,34,34,33],[[12,[6,36]]]],[[58,34,33],[[12,[6,36]]]],[[59,34,33],[[12,[6,36]]]],[[60,34,34,33],[[12,[6,36]]]],[[61,34,34,33],[[12,[6,36]]]],[[62,34,33],[[12,[6,36]]]],[[63,34,33],[[12,[6,36]]]],[[64,34,33],[[12,[6,36]]]],[[65,34,33],[[12,[6,36]]]],[[66,34,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[[67,67],6],[[34,34,33],[[12,[6,36]]]],[38,38],[33,33],[36,36],[35,35],[31,31],[30,30],[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],[60,60],[61,61],[62,62],[63,63],[64,64],[65,65],[66,66],[37,37],[68,68],[69,69],[70,70],[71,71],[72,72],[67,67],[34,34],[43,[[73,[43]]]],[44,[[73,[44]]]],[45,[[73,[45]]]],[46,[[73,[46]]]],[47,[[73,[45]]]],[48,[[73,[44]]]],[49,[[73,[45]]]],[50,[[73,[43]]]],[51,[[73,[45]]]],[52,[[73,[45]]]],[53,[[73,[45]]]],[54,[[73,[44]]]],[55,[[73,[45]]]],[56,[[73,[45]]]],[57,[[73,[45]]]],[58,[[73,[44]]]],[59,[[73,[44]]]],[60,[[73,[45]]]],[61,[[73,[45]]]],[62,[[73,[44]]]],[63,[[73,[44]]]],[64,[[73,[44]]]],[65,[[73,[44]]]],[66,[[73,[44]]]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[43,43],15],[[44,44],15],[[45,45],15],[[46,46],15],[[38,38],15],[[47,47],15],[[48,48],15],[[51,51],15],[[52,52],15],[[53,53],15],[[54,54],15],[[55,55],15],[[56,56],15],[[57,57],15],[[58,58],15],[[59,59],15],[[60,60],15],[[63,63],15],[[64,64],15],[[65,65],15],[[66,66],15],[[67,67],15],[74,[[12,[[12,[17,28]],36]]]],[74,[[12,[[12,[17,28]],36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[47,30,30,33,3],[[12,[2,36]]]],[[49,30,30,33,3],[[12,[2,36]]]],[[50,30,30,33,3],[[12,[2,36]]]],[[74,33,3],[[12,[2,36]]]],[[35,33,3],[[12,[2,36]]]],[[30,33,3],[[12,[2,36]]]],[[68,33,3],[[12,[2,36]]]],[[69,33,3],[[12,[2,36]]]],[[70,33,3],[[12,[2,36]]]],[[71,33,3],[[12,[2,36]]]],[[43,34,34,33,3],[[12,[2,36]]]],[[44,34,33,3],[[12,[2,36]]]],[[45,34,34,33,3],[[12,[2,36]]]],[[46,34,34,34,33,3],[[12,[2,36]]]],[[47,34,34,33,3],[[12,[2,36]]]],[[48,34,33,3],[[12,[2,36]]]],[[49,34,34,33,3],[[12,[2,36]]]],[[50,34,34,33,3],[[12,[2,36]]]],[[51,34,34,33,3],[[12,[2,36]]]],[[52,34,34,33,3],[[12,[2,36]]]],[[53,34,34,33,3],[[12,[2,36]]]],[[54,34,33,3],[[12,[2,36]]]],[[55,34,34,33,3],[[12,[2,36]]]],[[56,34,34,33,3],[[12,[2,36]]]],[[57,34,34,33,3],[[12,[2,36]]]],[[58,34,33,3],[[12,[2,36]]]],[[59,34,33,3],[[12,[2,36]]]],[[60,34,34,33,3],[[12,[2,36]]]],[[61,34,34,33,3],[[12,[2,36]]]],[[62,34,33,3],[[12,[2,36]]]],[[63,34,33,3],[[12,[2,36]]]],[[64,34,33,3],[[12,[2,36]]]],[[65,34,33,3],[[12,[2,36]]]],[[66,34,33,3],[[12,[2,36]]]],[[34,14],6],[[25,34,33,3],[[12,[2,36]]]],[[37,30,34,33],[[12,[2,36]]]],[[],33],[[],67],[[33,[21,[[2,[4,34]]]]],2],[[33,-1,67,34],[[12,[27,36]]],22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[30,30],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[[30,-1],30,[[32,[30]]]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[38]]],19],[-1,[[12,[35]]],19],[-1,[[12,[31]]],19],[-1,[[12,[30]]],19],[-1,[[12,[37]]],19],[-1,[[12,[68]]],19],[-1,[[12,[69]]],19],[-1,[[12,[70]]],19],[-1,[[12,[71]]],19],[-1,[[12,[72]]],19],[-1,[[12,[67]]],19],[-1,[[12,[34]]],19],[[43,30,30],4],[[43,30,30],4],[[44,30],4],[[44,30],4],[[45,30,30],4],[[45,30,30],4],[[46,30,30,30],4],[[46,30,30,30],4],[[25,34,33,3],[[12,[2,36]]]],[[30,-1],30,[[32,[30]]]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[43,43],6],[[44,44],6],[[45,45],6],[[46,46],6],[[38,38],6],[[35,35],6],[[31,31],6],[[30,30],6],[[30,-1],30,[[32,[30]]]],[[47,47],6],[[48,48],6],[[51,51],6],[[52,52],6],[[53,53],6],[[54,54],6],[[55,55],6],[[56,56],6],[[57,57],6],[[58,58],6],[[59,59],6],[[60,60],6],[[63,63],6],[[64,64],6],[[65,65],6],[[66,66],6],[[37,37],6],[[68,68],6],[[69,69],6],[[70,70],6],[[71,71],6],[[72,72],6],[[67,67],6],[[34,34],6],[[35,35,33],6],[[34,34,33],[[12,[6,36]]]],[[43,35,35,33],[[12,[35,36]]]],[[44,35,33],[[12,[35,36]]]],[[45,35,35,33],[[12,[35,36]]]],[[46,35,35,35,33],[[12,[35,36]]]],[[35,33],[[12,[35,36]]]],[[47,35,35,33],[[12,[35,36]]]],[[48,35,33],[[12,[35,36]]]],[[49,35,35,33],[[12,[35,36]]]],[[50,35,35,33],[[12,[35,36]]]],[[51,35,35,33],[[12,[35,36]]]],[[52,35,35,33],[[12,[35,36]]]],[[53,35,35,33],[[12,[35,36]]]],[[54,35,33],[[12,[35,36]]]],[[55,35,35,33],[[12,[35,36]]]],[[56,35,35,33],[[12,[35,36]]]],[[57,35,35,33],[[12,[35,36]]]],[[58,35,33],[[12,[35,36]]]],[[59,35,33],[[12,[35,36]]]],[[60,35,35,33],[[12,[35,36]]]],[[61,35,35,33],[[12,[35,36]]]],[[62,35,33],[[12,[35,36]]]],[[63,35,33],[[12,[35,36]]]],[[64,35,33],[[12,[35,36]]]],[[65,35,33],[[12,[35,36]]]],[[66,35,33],[[12,[35,36]]]],[[35,35],35],[[30,35],30],[41,37],[[38,7],8],[[33,7],8],[[33,7],8],[[36,7],8],[[36,7],8],[[35,7],8],[[35,7],8],[[31,7],8],[[31,7],8],[[30,7],8],[[30,7],8],[[47,7],8],[[47,7],8],[[48,7],8],[[48,7],8],[[49,7],8],[[49,7],8],[[50,7],8],[[50,7],8],[[51,7],8],[[51,7],8],[[52,7],8],[[52,7],8],[[53,7],8],[[53,7],8],[[54,7],8],[[54,7],8],[[55,7],8],[[55,7],8],[[56,7],8],[[56,7],8],[[57,7],8],[[57,7],8],[[58,7],8],[[58,7],8],[[59,7],8],[[59,7],8],[[60,7],8],[[60,7],8],[[61,7],8],[[61,7],8],[[62,7],8],[[62,7],8],[[63,7],8],[[63,7],8],[[64,7],8],[[64,7],8],[[65,7],8],[[65,7],8],[[66,7],8],[[66,7],8],[[37,7],8],[[37,7],8],[[68,7],8],[[68,7],8],[[69,7],8],[[69,7],8],[[70,7],8],[[70,7],8],[[71,7],8],[[71,7],8],[[72,7],8],[[72,7],8],[[67,7],8],[[67,7],8],[[34,7],8],[[34,7],8],[75,38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[1,36],[34,35],[-1,-1,[]],[72,35],[71,35],[[[2,[4,34]]],31],[[[2,[14,34]]],31],[[[2,[14,70]]],31],[-1,-1,[]],[[[2,[37,30]]],31],[[[21,[-1]]],31,[[32,[31]]]],[[[73,[31]]],31],[[[76,[-1,-2]]],31,[],[]],[[[2,[4,35]]],31],[[[2,[14,30]]],31],[[[2,[4,30]]],31],[[[2,[14,71]]],31],[[[2,[4,71]]],31],[[[2,[14,67,[13,[34]],30]]],31],[[[2,[14,35]]],31],[[[2,[4,67,30]]],31],[[[2,[14,67,30]]],31],[[[2,[14,67,34,30]]],31],[[[2,[4,70]]],31],[[[2,[4,67,34,30]]],31],[[[2,[4,72]]],31],[[[2,[4,67,[13,[34]],30]]],31],[[[2,[14,72]]],31],[35,30],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[6,67],[-1,-1,[]],[[71,[21,[[2,[4,[13,[34]]]]]]],72],[[30,-1],30,[[32,[30]]]],[[33,34],[[21,[[2,[4,35]]]]]],[71,[[39,[[2,[4,67,34]]]]]],[[33,34,14],[[13,[[2,[35,34]]]]]],[[37,30,34,33],[[12,[[77,[4,[2,[67,34]]]],36]]]],[71,30],[[37,30,30,33],[[12,[34,36]]]],[71,[[13,[14]]]],[71,14],[[30,33],[[12,[[13,[67]],36]]]],[[34,34,[77,[4,[2,[34,[13,[34]]]]]],[78,[4]],33],[[12,[2,36]]]],[72,14],[71,34],[[34,33],[[13,[67]]]],[[79,33],[[12,[5,36]]]],[[79,33],[[12,[5,36]]]],[[79,33,5],[[12,[5,36]]]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[34,33,5],[[12,[5,36]]]],[[34,33],[[21,[[2,[4,[13,[34]]]]]]]],[[80,33],[[12,[34,36]]]],[[80,33],[[12,[34,36]]]],[[80,33,5],[[12,[34,36]]]],[[35,33,5],[[12,[34,36]]]],[[30,33,5],[[12,[34,36]]]],[[68,33,5],[[12,[34,36]]]],[[69,33,5],[[12,[34,36]]]],[[70,33,5],[[12,[34,36]]]],[[71,33,5],[[12,[34,36]]]],[[72,33,5],[[12,[34,36]]]],[[33,34,14],[[13,[34]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[31]]]],[[33,34,14],6],[[34,34,33],[[12,[6,36]]]],[38,6],[[38,-1],2,20],[[35,-1],2,20],[[31,-1],2,20],[[30,-1],2,20],[[47,-1],2,20],[[48,-1],2,20],[[51,-1],2,20],[[52,-1],2,20],[[53,-1],2,20],[[54,-1],2,20],[[55,-1],2,20],[[56,-1],2,20],[[57,-1],2,20],[[58,-1],2,20],[[59,-1],2,20],[[60,-1],2,20],[[63,-1],2,20],[[64,-1],2,20],[[65,-1],2,20],[[66,-1],2,20],[[37,-1],2,20],[[68,-1],2,20],[[69,-1],2,20],[[70,-1],2,20],[[71,-1],2,20],[[72,-1],2,20],[[67,-1],2,20],[[34,-1],2,20],[[30,-1],30,[[32,[30]]]],[[37,30,30,30,33],[[12,[30,36]]]],[[30,-1,-2],30,[[32,[30]]],[[32,[30]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[42,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[34,6],[38,6],[34,6],[34,6],[67,6],[38,6],[[37,30,34,33],[[12,[6,36]]]],[38,6],[[30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[67,6],[38,6],[34,6],[[34,33],[[12,[6,36]]]],[[34,[78,[4]],33],[[12,[6,36]]]],[[34,33],[[12,[6,36]]]],[34,6],[38,6],[[30,-1],30,[[32,[30]]]],[[14,34,34],34],[[-1,35,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,35]]]],-1],30,[[32,[30]]]],[[-1,71,-2],30,22,[[32,[30]]]],[[[76,[14,71]],-1],30,[[32,[30]]]],[[-1,34,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,34]]]],-1],30,[[32,[30]]]],[[-1,-2,[13,[34]],-3,-4],30,22,[[32,[67]]],[[32,[30]]],[[32,[30]]]],[[[21,[[2,[14,67,[13,[34]],30]]]],-1],30,[[32,[30]]]],[38,[[13,[75]]]],[[30,-1],30,[[32,[30]]]],[-1,31,[[32,[[21,[31]]]]]],[[30,[39,[[2,[37,30]]]],33],[[12,[30,36]]]],[[-1,-2],31,22,[[32,[[21,[31]]]]]],[[35,[21,[34]]],35],[[72,[21,[34]],33],[[12,[71,36]]]],[[30,-1],30,[[32,[30]]]],[43,4],[43,4],[44,4],[44,4],[45,4],[45,4],[46,4],[46,4],0,0,[30,30],[[30,-1],30,[[32,[30]]]],[-1,50,45],[[4,[21,[34]],34],70],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],71,[[32,[30]]]],[[4,[21,[[2,[4,[13,[34]]]]]],[21,[[2,[4,67,34]]]],34,-1],72,[[32,[30]]]],[30,30],[[30,-1],30,[[32,[30]]]],[[43,43],[[13,[15]]]],[[44,44],[[13,[15]]]],[[45,45],[[13,[15]]]],[[46,46],[[13,[15]]]],[[38,38],[[13,[15]]]],[[47,47],[[13,[15]]]],[[48,48],[[13,[15]]]],[[51,51],[[13,[15]]]],[[52,52],[[13,[15]]]],[[53,53],[[13,[15]]]],[[54,54],[[13,[15]]]],[[55,55],[[13,[15]]]],[[56,56],[[13,[15]]]],[[57,57],[[13,[15]]]],[[58,58],[[13,[15]]]],[[59,59],[[13,[15]]]],[[60,60],[[13,[15]]]],[[63,63],[[13,[15]]]],[[64,64],[[13,[15]]]],[[65,65],[[13,[15]]]],[[66,66],[[13,[15]]]],[[67,67],[[13,[15]]]],[[34,33,[77,[[2,[34,[21,[34]]]],34]],6],[[12,[34,36]]]],[37,37],[[30,-1],30,[[32,[30]]]],[30,30],[30,30],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],35,[[32,[30]]]],[[71,3],2],[[30,-1],30,[[32,[67]]]],[[30,-1],30,[[32,[30]]]],0,0,[[43,30,30,33],[[12,[34,36]]]],[[43,30,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[47,30,30,33],[[12,[34,36]]]],[[48,30,33],[[12,[34,36]]]],[[49,30,30,33],[[12,[34,36]]]],[[50,30,30,33],[[12,[34,36]]]],[[51,30,30,33],[[12,[34,36]]]],[[52,30,30,33],[[12,[34,36]]]],[[53,30,30,33],[[12,[34,36]]]],[[54,30,33],[[12,[34,36]]]],[[55,30,30,33],[[12,[34,36]]]],[[56,30,30,33],[[12,[34,36]]]],[[57,30,30,33],[[12,[34,36]]]],[[58,30,33],[[12,[34,36]]]],[[59,30,33],[[12,[34,36]]]],[[60,30,30,33],[[12,[34,36]]]],[[61,30,30,33],[[12,[34,36]]]],[[62,30,33],[[12,[34,36]]]],[[63,30,33],[[12,[34,36]]]],[[64,30,33],[[12,[34,36]]]],[[65,30,33],[[12,[34,36]]]],[[66,30,33],[[12,[34,36]]]],[[38,-1],12,24],[[35,-1],12,24],[[31,-1],12,24],[[30,-1],12,24],[[37,-1],12,24],[[68,-1],12,24],[[69,-1],12,24],[[70,-1],12,24],[[71,-1],12,24],[[72,-1],12,24],[[67,-1],12,24],[[34,-1],12,24],[[71,-1],2,22],[[81,33],[[12,[81,36]]]],[[81,33,5],[[12,[81,36]]]],[[35,33,5],[[12,[35,36]]]],[[34,33,5],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[35,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,34,-1,6],[[12,[34,36]]],[[83,[34,33],[[82,[[12,[6,36]]]]]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[30,30],[[34,33],34],[[[76,[4,37]]],37],[[[76,[14,30]]],30],[[30,-1],30,[[32,[30]]]],[[80,14,34],2],[[35,14,34],2],[[30,14,34],2],[[68,14,34],2],[[69,14,34],2],[[70,14,34],2],[[71,14,34],2],[[72,14,34],2],[[34,14,34],34],[[80,[39,[4]],[39,[34]]],2],[[80,[39,[4]],[39,[34]]],2],[[-1,-2],37,[[32,[67]]],22],[[35,[21,[[2,[4,[13,[34]]]]]]],35],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[30,33],[[12,[30,36]]]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[[[21,[37]]],37],[[84,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[35,33],[[12,[2,36]]]],[[31,33],[[12,[2,36]]]],[[30,33],[[12,[2,36]]]],[[37,30,30,33],[[12,[2,36]]]],[[68,33],[[12,[2,36]]]],[[69,33],[[12,[2,36]]]],[[70,33],[[12,[2,36]]]],[[71,33],[[12,[2,36]]]],[[72,33],[[12,[2,36]]]],[[34,33],[[12,[2,36]]]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[[30,-1],30,22],[-1,35,22],[-1,30,22],[[[39,[4]],4],[[13,[5]]]],[[30,-1],30,[[32,[30]]]],[[],37],[[35,-1],35,[[32,[31]]]],[[30,-1],30,[[32,[31]]]],[[71,-1],71,[[32,[31]]]],[[72,-1],72,[[32,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[75,75],[[-1,-2],2,[],[]],[[75,75],15],0,[5,-1,[]],[5,-1,[]],[-1,[[12,[75]]],19],[5,2],[[75,75],6],0,[[75,7],8],[-1,-1,[]],[[75,14],4],[[75,-1],2,20],[[],5],[-1,-2,[],[]],0,0,0,[-1,[[12,[[12,[17,28]],4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[-1,[[12,[30,4]]],22],[-1,[[12,[[12,[18,29]],4]]],22],[[75,75],[[13,[15]]]],[[75,-1],12,24],[-1,-2,[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[85,85],[[-1,-2],2,[],[]],[[85,85],15],[5,-1,[]],[5,-1,[]],[-1,[[12,[85]]],19],[5,2],[[85,85],6],[[85,7],8],[[85,7],8],[-1,-1,[]],[[85,-1],2,20],[[],5],0,[-1,-2,[],[]],0,[[4,5,5],85],0,[[85,85],[[13,[15]]]],[[85,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[],86],[87,87],[88,88],[89,89],[90,90],[91,91],[92,92],[86,86],[23,23],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[87,87],15],[[88,88],15],[[89,89],15],[[90,90],15],[[91,91],15],[[92,92],15],[[86,86],15],[[23,23],15],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[87]]],19],[-1,[[12,[88]]],19],[-1,[[12,[89]]],19],[-1,[[12,[90]]],19],[-1,[[12,[91]]],19],[-1,[[12,[92]]],19],[-1,[[12,[86]]],19],[-1,[[12,[23]]],19],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[87,87],6],[[88,88],6],[[89,89],6],[[90,90],6],[[91,91],6],[[92,92],6],[[86,86],6],[[23,23],6],[[87,7],8],[[87,7],8],[[88,7],8],[[88,7],8],[[89,7],8],[[89,7],8],[[90,7],8],[[90,7],8],[[91,7],8],[[91,7],8],[[92,7],8],[[92,7],8],[[86,7],8],[[86,7],8],[[23,7],8],[[23,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[87,-1],2,20],[[88,-1],2,20],[[89,-1],2,20],[[90,-1],2,20],[[91,-1],2,20],[[92,-1],2,20],[[86,-1],2,20],[[23,-1],2,20],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[90,5],86],[[91,5],23],[[87,87],[[13,[15]]]],[[88,88],[[13,[15]]]],[[89,89],[[13,[15]]]],[[90,90],[[13,[15]]]],[[91,91],[[13,[15]]]],[[92,92],[[13,[15]]]],[[86,86],[[13,[15]]]],[[23,23],[[13,[15]]]],[[],86],[[87,-1],12,24],[[88,-1],12,24],[[89,-1],12,24],[[90,-1],12,24],[[91,-1],12,24],[[92,-1],12,24],[[86,-1],12,24],[[23,-1],12,24],[[],23],[[],23],[[],23],[[],86],[[],86],[[],86],[[],23],[[],23],[[],23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],0,0,[[93,18],[[12,[4,4]]]],[[93,94,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],[[93,29],[[12,[4,4]]]],[[93,95,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],0,[[96,5],4],[[96,94,[13,[5]]],4],[[96,86],[[12,[4,4]]]],[96,[[13,[4]]]],[96,14],[[96,94],4],[96,[[12,[4,4]]]],[96,[[12,[4,4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[96,[[13,[4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[[96,23],[[12,[4,4]]]],[[96,95],[[12,[4,4]]]],[96,6],[[96,86],6],[[96,23],6],[96,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[[98,5],4],[[],98],[5,-1,[]],[5,-1,[]],[5,2],[[98,94,[13,[5]]],4],[-1,-1,[]],[[98,86],[[12,[4,4]]]],[[],5],[-1,-2,[],[]],[98,14],[[98,94],4],[98,[[12,[4,4]]]],[98,[[12,[4,4]]]],[[98,[21,[97]]],[[13,[4]]]],[[98,6],[[13,[4]]]],[98,[[13,[4]]]],[[98,6],[[13,[4]]]],[[98,23],[[12,[4,4]]]],[[98,95],[[12,[4,4]]]],[98,6],[[98,86],6],[[98,23],6],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[98,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,[[99,85],2],[42,41],[41,42],[100,2],[100,2],[100,2],[100,2],[100,2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[18,18],[94,94],[29,29],[95,95],[99,99],[9,9],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[18,18],15],[[94,94],15],[100,[[12,[18,29]]]],[18,[[12,[18,29]]]],[29,[[12,[18,29]]]],[[100,14],2],[[],[[101,[99]]]],[[],[[102,[99]]]],[[],18],[[],29],[[],103],[[],99],[5,-1,[]],[5,-1,[]],[100,2],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[100,2],[[18,18],6],[[94,94],6],[[29,29],6],[[95,95],6],[[9,9],6],0,[[104,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[100,85],[[12,[2,9]]]],[[103,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[99,85,[13,[[21,[42]]]]],[[12,[2,4]]]],0,[18,18],[29,29],[[18,7],8],[[94,7],8],[[94,7],8],[[29,7],8],[[95,7],8],[[95,7],8],[[103,7],8],[[99,7],8],[[9,7],8],[[9,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[18,29],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[104,86],[[12,[42,4]]]],[[100,86],2],[[103,86],[[12,[42,4]]]],[[99,86],[[12,[42,4]]]],[18,[[77,[97,[21,[94]]]]]],[29,[[77,[97,[21,[95]]]]]],[18,[[21,[94]]]],[29,[[21,[95]]]],[18,[[2,[[21,[94]],[77,[97,[21,[94]]]]]]]],[29,[[2,[[21,[95]],[77,[97,[21,[95]]]]]]]],[[18,-1],2,20],[[94,-1],2,20],[100,2],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[[100,5],2],[[100,27],2],[-1,[[101,[-1]]],104],[-1,[[102,[-1]]],104],[-1,103,22],[[[21,[42]]],103],[[100,94],2],[[18,94],2],[[29,94],2],0,[103,4],[103,[[21,[42]]]],[[18,18],[[13,[15]]]],[[94,94],[[13,[15]]]],[[29,29],[[13,[15]]]],[[95,95],[[13,[15]]]],[[9,9],[[13,[15]]]],[104,[[12,[42,4]]]],[100,[[12,[2,9]]]],[103,[[12,[42,4]]]],[99,[[12,[42,4]]]],[[104,42],[[12,[2,4]]]],[100,[[12,[2,9]]]],[[103,42],[[12,[2,4]]]],[[99,42],[[12,[2,4]]]],[[104,42,23],[[12,[2,4]]]],[[100,23],2],[[103,42,23],[[12,[2,4]]]],[[99,42,23],[[12,[2,4]]]],[100,2],[100,2],[100,2],[[[101,[-1]],18],[[12,[-1,4]]],104],[[[102,[-1]],29],[[12,[-1,4]]],104],[100,2],[[100,41],[[12,[2,9]]]],[[100,[21,[41]]],[[12,[2,9]]]],[[100,42],2],[[100,[21,[42]]],2],[[100,95],[[12,[2,9]]]],[[18,95],[[12,[2,9]]]],[[29,95],[[12,[2,9]]]],[[100,5],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[100,2]],"c":[],"p":[[6,"Error",10],[1,"tuple"],[10,"AssemblyProgram",10],[5,"String",2652],[1,"usize"],[1,"bool"],[5,"Formatter",2653],[8,"Result",2653],[6,"Error",2348],[6,"CoreOp",65],[6,"StandardOp",416],[6,"Result",2654],[6,"Option",2655],[1,"str"],[6,"Ordering",2656],[5,"TypeId",2657],[5,"CoreProgram",65],[5,"CoreProgram",2348],[10,"Deserializer",2658],[10,"Hasher",2659],[5,"Vec",2660],[10,"ToString",2652],[5,"Output",1986],[10,"Serializer",2661],[6,"Location",376],[5,"Globals",348],[1,"isize"],[5,"StandardProgram",416],[5,"StandardProgram",2348],[6,"Expr",566],[6,"Declaration",566],[10,"Into",2662],[5,"Env",566],[6,"Type",566],[6,"ConstExpr",566],[6,"Error",566],[6,"Pattern",566],[6,"Annotation",566],[1,"slice"],[1,"char"],[1,"f64"],[1,"i64"],[10,"AssignOp",566],[10,"UnaryOp",566],[10,"BinaryOp",566],[10,"TernaryOp",566],[5,"Add",566],[5,"Negate",566],[6,"Arithmetic",566],[5,"Assign",566],[5,"BitwiseAnd",566],[5,"BitwiseNand",566],[5,"BitwiseNor",566],[5,"BitwiseNot",566],[5,"BitwiseOr",566],[5,"BitwiseXor",566],[6,"Comparison",566],[5,"Get",566],[6,"Put",566],[5,"And",566],[5,"Or",566],[5,"Not",566],[5,"New",566],[5,"Delete",566],[5,"Tag",566],[5,"Data",566],[6,"Mutability",566],[5,"CoreBuiltin",566],[5,"StandardBuiltin",566],[5,"FFIProcedure",566],[5,"Procedure",566],[5,"PolyProcedure",566],[5,"Box",2663],[10,"Compile",566],[5,"SourceCodeLocation",1923],[5,"BTreeMap",2664],[5,"HashMap",2665],[5,"HashSet",2666],[10,"GetSize",566],[10,"GetType",566],[10,"Simplify",566],[17,"Output"],[10,"Fn",2667],[10,"TypeCheck",566],[5,"FFIBinding",1958],[5,"Input",1986],[6,"Axis",1986],[6,"Direction",1986],[6,"Color",1986],[6,"InputMode",1986],[6,"OutputMode",1986],[5,"Channel",1986],[10,"CompiledTarget",2292],[6,"CoreOp",2348],[6,"StandardOp",2348],[10,"Architecture",2292],[1,"i32"],[5,"C",2318],[5,"StandardDevice",2348],[10,"VirtualMachineProgram",2348],[5,"CoreInterpreter",2348],[5,"StandardInterpreter",2348],[5,"TestingDevice",2348],[10,"Device",2348],[15,"Compare",207],[15,"IsGreater",207],[15,"IsGreaterEqual",207],[15,"IsLess",207],[15,"IsLessEqual",207],[15,"IsEqual",207],[15,"IsNotEqual",207],[15,"GetAddress",207],[15,"Move",207],[15,"Copy",207],[15,"Index",207],[15,"Add",207],[15,"Sub",207],[15,"Mul",207],[15,"Div",207],[15,"Rem",207],[15,"DivRem",207],[15,"VecAdd",207],[15,"VecSub",207],[15,"VecMul",207],[15,"VecDiv",207],[15,"VecRem",207],[15,"And",207],[15,"Or",207],[15,"VecNot",207],[15,"VecAnd",207],[15,"VecOr",207],[15,"VecInc",207],[15,"VecDec",207],[15,"LeftShift",207],[15,"LogicalRightShift",207],[15,"ArithmeticRightShift",207],[15,"VecLeftShift",207],[15,"VecLogicalRightShift",207],[15,"VecArithmeticRightShift",207],[15,"VecGez",207],[15,"VecNeg",207],[15,"VecOffset",207],[15,"VecIndex",207],[15,"PopFrom",207],[15,"Array",207],[15,"Const",207],[15,"BitwiseNand",207],[15,"BitwiseXor",207],[15,"BitwiseOr",207],[15,"BitwiseNor",207],[15,"BitwiseAnd",207],[15,"VecBitwiseAnd",207],[15,"VecBitwiseOr",207],[15,"VecBitwiseXor",207],[15,"VecBitwiseNor",207],[15,"VecBitwiseNand",207],[15,"VecBitwiseNot",207],[15,"Global",207],[15,"PushTo",207],[15,"IsGreater",510],[15,"IsLess",510],[15,"Const",510],[15,"Pow",510],[15,"Add",510],[15,"Sub",510],[15,"Mul",510],[15,"Div",510],[15,"Rem",510],[15,"VecAdd",510],[15,"VecSub",510],[15,"VecMul",510],[15,"VecDiv",510],[15,"VecRem",510],[15,"VecNeg",510],[15,"VecPow",510],[15,"VecSin",510],[15,"VecCos",510],[15,"VecTan",510],[15,"VecASin",510],[15,"VecACos",510],[15,"VecATan",510],[15,"VecGez",510],[15,"FromImport",1911],[15,"MismatchedTypes",1913],[15,"MismatchedMutability",1913],[15,"UnexpectedConstParam",1913],[15,"NonExhaustivePatterns",1913]],"b":[[45,"impl-Display-for-Error"],[46,"impl-Debug-for-Error"],[173,"impl-Display-for-CoreProgram"],[174,"impl-Debug-for-CoreProgram"],[175,"impl-Display-for-CoreOp"],[176,"impl-Debug-for-CoreOp"],[359,"impl-Debug-for-Globals"],[360,"impl-Display-for-Globals"],[402,"impl-Display-for-Location"],[403,"impl-Debug-for-Location"],[480,"impl-Debug-for-StandardProgram"],[481,"impl-Display-for-StandardProgram"],[482,"impl-Display-for-StandardOp"],[483,"impl-Debug-for-StandardOp"],[1222,"impl-PartialEq-for-Expr"],[1223,"impl-Expr"],[1279,"impl-Display-for-Env"],[1280,"impl-Debug-for-Env"],[1281,"impl-Display-for-Error"],[1282,"impl-Debug-for-Error"],[1283,"impl-Debug-for-ConstExpr"],[1284,"impl-Display-for-ConstExpr"],[1285,"impl-Display-for-Declaration"],[1286,"impl-Debug-for-Declaration"],[1287,"impl-Display-for-Expr"],[1288,"impl-Debug-for-Expr"],[1289,"impl-Display-for-Add"],[1290,"impl-Debug-for-Add"],[1291,"impl-Display-for-Negate"],[1292,"impl-Debug-for-Negate"],[1293,"impl-Display-for-Arithmetic"],[1294,"impl-Debug-for-Arithmetic"],[1295,"impl-Display-for-Assign"],[1296,"impl-Debug-for-Assign"],[1297,"impl-Display-for-BitwiseAnd"],[1298,"impl-Debug-for-BitwiseAnd"],[1299,"impl-Debug-for-BitwiseNand"],[1300,"impl-Display-for-BitwiseNand"],[1301,"impl-Display-for-BitwiseNor"],[1302,"impl-Debug-for-BitwiseNor"],[1303,"impl-Debug-for-BitwiseNot"],[1304,"impl-Display-for-BitwiseNot"],[1305,"impl-Display-for-BitwiseOr"],[1306,"impl-Debug-for-BitwiseOr"],[1307,"impl-Debug-for-BitwiseXor"],[1308,"impl-Display-for-BitwiseXor"],[1309,"impl-Debug-for-Comparison"],[1310,"impl-Display-for-Comparison"],[1311,"impl-Debug-for-Get"],[1312,"impl-Display-for-Get"],[1313,"impl-Debug-for-Put"],[1314,"impl-Display-for-Put"],[1315,"impl-Display-for-And"],[1316,"impl-Debug-for-And"],[1317,"impl-Debug-for-Or"],[1318,"impl-Display-for-Or"],[1319,"impl-Debug-for-Not"],[1320,"impl-Display-for-Not"],[1321,"impl-Debug-for-New"],[1322,"impl-Display-for-New"],[1323,"impl-Debug-for-Delete"],[1324,"impl-Display-for-Delete"],[1325,"impl-Display-for-Tag"],[1326,"impl-Debug-for-Tag"],[1327,"impl-Display-for-Data"],[1328,"impl-Debug-for-Data"],[1329,"impl-Display-for-Pattern"],[1330,"impl-Debug-for-Pattern"],[1331,"impl-Debug-for-CoreBuiltin"],[1332,"impl-Display-for-CoreBuiltin"],[1333,"impl-Display-for-StandardBuiltin"],[1334,"impl-Debug-for-StandardBuiltin"],[1335,"impl-Debug-for-FFIProcedure"],[1336,"impl-Display-for-FFIProcedure"],[1337,"impl-Debug-for-Procedure"],[1338,"impl-Display-for-Procedure"],[1339,"impl-Debug-for-PolyProcedure"],[1340,"impl-Display-for-PolyProcedure"],[1341,"impl-Debug-for-Mutability"],[1342,"impl-Display-for-Mutability"],[1343,"impl-Debug-for-Type"],[1344,"impl-Display-for-Type"],[1350,"impl-From%3CType%3E-for-ConstExpr"],[1352,"impl-From%3CPolyProcedure%3E-for-ConstExpr"],[1353,"impl-From%3CProcedure%3E-for-ConstExpr"],[1354,"impl-From%3C(String,+Type)%3E-for-Declaration"],[1355,"impl-From%3C(%26str,+Type)%3E-for-Declaration"],[1356,"impl-From%3C(%26str,+FFIProcedure)%3E-for-Declaration"],[1358,"impl-From%3C(Pattern,+Expr)%3E-for-Declaration"],[1359,"impl-From%3CVec%3CT%3E%3E-for-Declaration"],[1360,"impl-From%3CBox%3CDeclaration%3E%3E-for-Declaration"],[1361,"impl-From%3CBTreeMap%3CK,+V%3E%3E-for-Declaration"],[1362,"impl-From%3C(String,+ConstExpr)%3E-for-Declaration"],[1363,"impl-From%3C(%26str,+Expr)%3E-for-Declaration"],[1364,"impl-From%3C(String,+Expr)%3E-for-Declaration"],[1365,"impl-From%3C(%26str,+Procedure)%3E-for-Declaration"],[1366,"impl-From%3C(String,+Procedure)%3E-for-Declaration"],[1367,"impl-From%3C(%26str,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1368,"impl-From%3C(%26str,+ConstExpr)%3E-for-Declaration"],[1369,"impl-From%3C(String,+Mutability,+Expr)%3E-for-Declaration"],[1370,"impl-From%3C(%26str,+Mutability,+Expr)%3E-for-Declaration"],[1371,"impl-From%3C(%26str,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1372,"impl-From%3C(String,+FFIProcedure)%3E-for-Declaration"],[1373,"impl-From%3C(String,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1374,"impl-From%3C(String,+PolyProcedure)%3E-for-Declaration"],[1375,"impl-From%3C(String,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1376,"impl-From%3C(%26str,+PolyProcedure)%3E-for-Declaration"],[1969,"impl-Display-for-FFIBinding"],[1970,"impl-Debug-for-FFIBinding"],[2174,"impl-Debug-for-Axis"],[2175,"impl-Display-for-Axis"],[2176,"impl-Debug-for-Direction"],[2177,"impl-Display-for-Direction"],[2178,"impl-Debug-for-Color"],[2179,"impl-Display-for-Color"],[2180,"impl-Debug-for-InputMode"],[2181,"impl-Display-for-InputMode"],[2182,"impl-Display-for-OutputMode"],[2183,"impl-Debug-for-OutputMode"],[2184,"impl-Debug-for-Channel"],[2185,"impl-Display-for-Channel"],[2186,"impl-Debug-for-Input"],[2187,"impl-Display-for-Input"],[2188,"impl-Display-for-Output"],[2189,"impl-Debug-for-Output"],[2518,"impl-Debug-for-CoreOp"],[2519,"impl-Display-for-CoreOp"],[2521,"impl-Display-for-StandardOp"],[2522,"impl-Debug-for-StandardOp"],[2525,"impl-Debug-for-Error"],[2526,"impl-Display-for-Error"]]}]\ +["sage",{"doc":"The Sage Programming Language","t":"SSSCCCCCCCEKEEEEEEGEEEEEEEEEPPPPPPNNNNNCMNNNNNNNNMCNNMCNMNCMNNNNNPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNSPSSSSSSSPPGPSSNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHFPPFPPPGPPPPPPPGPPPPPPFKPKPFFFFFFPPTTPPPPGKPPPGPPPPFPPTFPPGPPFPPPPPPPPPPFPGGPFPPPPPFKKPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPGPTFPPFPPPPPPFPPPFGPPPPPFPPPPFGPPPPPTKPPPFPPPPPPPPPPPTFPPKPPPPPGPPPKPPPTKPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOFNNNNNONNNNNONNNNNNOOOHHHHHNNNNNNCCFNNNNNNNNNNNNNNNONONONNNNNNNPPPPGPPPPPPPPPPFPPGPPPPPPPPPPGPPPPPPPPFGPPPPPPPPPPPPPPFGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKNNNNCMMMNMMMMNNNNNMMMMMMFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPFGPFPPPKPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFFGFPPPPPFPPPKPPNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNONNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNMNNONNNNNNNMNNNMNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","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","deref","deref_mut","drop","eq","fmt","fmt","from","from","get_op","globals","init","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","ArithmeticRightShift","Array","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Call","CallLabel","Comment","Compare","Const","Copy","CoreOp","CoreProgram","Dec","Div","DivRem","Else","End","Fn","Get","GetAddress","Global","If","Inc","Index","IsEqual","IsGreater","IsGreaterEqual","IsLess","IsLessEqual","IsNotEqual","LeftShift","LogicalRightShift","Many","Move","Mul","Neg","Next","Not","Or","Pop","PopFrom","Prev","Push","PushAddress","PushConst","PushTo","Put","Rem","Return","Set","SetLabel","Sub","Swap","VecAdd","VecAnd","VecArithmeticRightShift","VecBitwiseAnd","VecBitwiseNand","VecBitwiseNor","VecBitwiseNot","VecBitwiseOr","VecBitwiseXor","VecDec","VecDiv","VecGez","VecInc","VecIndex","VecLeftShift","VecLogicalRightShift","VecMul","VecNeg","VecNot","VecOffset","VecOr","VecRem","VecSet","VecSub","While","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","get_op","hash","hash","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","push_string","put_string","serialize","serialize","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","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","dst","name","offset","offset","offset","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","sp","sp","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","vals","Globals","add_global","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","deserialize","drop","fmt","fmt","from","get_global","get_global_location","get_global_size","get_size","init","into","new","resolve","serialize","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","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","into","offset","partial_cmp","serialize","to_owned","to_string","try_from","try_into","type_id","ACos","ASin","ATan","Add","Alloc","Call","Const","CoreOp","Cos","Div","Free","IsGreater","IsLess","Mul","Neg","Pow","PushConst","Rem","Set","Sin","Sqrt","StandardOp","StandardProgram","Sub","Tan","ToFloat","ToInt","VecACos","VecASin","VecATan","VecAdd","VecCos","VecDiv","VecGez","VecMul","VecNeg","VecPow","VecRem","VecSet","VecSin","VecSub","VecTan","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_op","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","serialize","serialize","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","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","size","size","size","size","size","size","size","size","size","size","size","size","size","size","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","parse","Add","Add","Alt","And","Annotated","Annotated","Annotated","Annotation","Any","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","ConstParam","Constant","CoreBuiltin","CoreBuiltin","CouldntSimplify","DEAD_CODE","Data","DeadCode","Debug","Declaration","Declare","Declare","Delete","Deref","DerefMut","DerefNonPointer","Display","Divide","DuplicateMember","Enum","EnumUnion","EnumUnion","EnumUnion","Env","Equal","Error","Expr","ExternProc","FFIProcedure","FFIProcedure","Float","Float","FromImport","FromImportAll","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","Module","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","UnexpectedConstParam","UnimplementedOperator","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_char","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","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","display","display","display","display","display","display","display","display","display","div","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","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","equals","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","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","get_type_params","gt","hard_with","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","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","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_const_param","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","many","match_pattern","module","monomorphize","monomorphize","mul","name","name","name","name","name","name","name","name","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","print","println","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_common_name","simplify","simplify_checked","simplify_checked","simplify_checked","simplify_until_atomic","simplify_until_concrete","simplify_until_const_param","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","var","variant_index","while_loop","wildcard","with","with","with","with","module","names","expected","expected","expr","expr","expr","expr","found","found","found","patterns","SourceCodeLocation","borrow","borrow_mut","clone","clone_into","cmp","column","deref","deref_mut","deserialize","drop","eq","filename","fmt","from","get_code","hash","init","into","length","line","offset","parse_asm","parse_frontend","parse_frontend_minimal","parse_lir","parse_vm","partial_cmp","serialize","to_owned","try_from","try_into","type_id","ffi","io","FFIBinding","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","input_cells","into","name","new","output_cells","partial_cmp","serialize","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","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","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","std_op","supports_floats","supports_input","supports_output","version","C","borrow","borrow_mut","declare_proc","default","deref","deref_mut","drop","end","from","get","init","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","And","ArithmeticRightShift","BitwiseAnd","BitwiseNand","BitwiseNot","BitwiseOr","BitwiseXor","Call","Call","Comment","CoreInterpreter","CoreOp","CoreOp","CoreProgram","Cos","Dec","Deref","Device","Div","Div","Else","End","Error","ExpectedCore","Free","Function","Get","If","Inc","Index","IsNonNegative","IsNonNegative","LeftShift","Load","LogicalRightShift","Move","Mul","Mul","Neg","Neg","Not","Offset","Or","Peek","Poke","Pow","Put","Refer","Rem","Rem","Return","Set","Set","Sin","StandardDevice","StandardInterpreter","StandardOp","StandardProgram","Store","Sub","Sub","Swap","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","init","input","into","into","into","into","into","into","into","into","into","is_non_negative","load_vector","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_float_register","set_float_vector","set_register","set_vector","std_op","std_op","std_op","store_vector","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"],[65,"sage::asm::core"],[207,"sage::asm::core::CoreOp"],[348,"sage::asm::globals"],[376,"sage::asm::location"],[416,"sage::asm::std"],[510,"sage::asm::std::StandardOp"],[565,"sage::frontend"],[566,"sage::lir"],[1912,"sage::lir::Declaration"],[1914,"sage::lir::Error"],[1924,"sage::parse"],[1957,"sage::side_effects"],[1959,"sage::side_effects::ffi"],[1987,"sage::side_effects::io"],[2293,"sage::targets"],[2319,"sage::targets::c"],[2349,"sage::vm"],[2653,"alloc::string"],[2654,"core::fmt"],[2655,"core::fmt"],[2656,"core::option"],[2657,"core::cmp"],[2658,"core::any"],[2659,"serde::de"],[2660,"core::hash"],[2661,"alloc::vec"],[2662,"alloc::string"],[2663,"core::convert"],[2664,"alloc::boxed"],[2665,"alloc::collections::btree::map"],[2666,"std::collections::hash::map"],[2667,"std::collections::hash::set"],[2668,"core::ops::function"]],"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","Side Effects 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.","Assembly Global Variables","","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.","Arithmetic right shift a destination by 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 …","Write a set of values to a memory location.","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.","Left shift a destination by a source value.","Logical right shift a destination by a source value. This …","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 …","Get the address of a location and push it to the stack.","Push a const to the stack.","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.","Perform a SIMD addition over a vector of integers. This …","Perform a vector “And” operation. This will perform a …","Perform a SIMD arithmetic right shift operation over a …","","","","","","","Decrement a vector of integers.","Perform a SIMD division over a vector of integers. This …","Perform a SIMD “is >= zero” operation over a vector of …","Increment a vector of integers.","Perform a SIMD pointer index operation over a vector of …","Perform a SIMD left shift operation over a vector of …","Perform a SIMD logical right shift operation over a vector …","Perform a SIMD multiplication over a vector of integers. …","Negate a vector of integers using SIMD.","Perform a vector “Not” operation. This will replace …","Perform a SIMD pointer arithmetic operation over a vector …","Perform a vector “Or” operation. This will perform a …","Perform a SIMD remainder over a vector of integers. This …","Set the vector values of a destination.","Perform a SIMD subtraction over a vector of integers. This …","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.","Write some constant values to a location on the tape","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).","Push some constant values to the stack.","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 …","Perform a SIMD floating point inverse cosine operation.","Perform a SIMD floating point inverse sine operation.","Perform a SIMD floating point inverse tangent operation.","Perform a SIMD floating point addition operation.","Perform a SIMD floating point cosine operation.","Perform a SIMD floating point division operation.","Perform a SIMD floating point greater than or equal to …","Perform a SIMD floating point multiplication operation.","Perform a SIMD floating point negation operation.","Perform a SIMD floating point power operation.","Perform a SIMD floating point remainder operation.","Set the vector values of a destination.","Perform a SIMD floating point sine operation.","Perform a SIMD floating point subtraction operation.","Perform a SIMD floating point tangent operation.","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 beginning of the constant data.","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.","","","","","","","","The constant data.","","","","","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 …","The expression equal to any other expression.","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.","","A constant literal used in a type expression, like a …","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.","","","Duplicate implementations of a member for a type","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.","Import an element from a module.","","","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","Declare a module","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.","An error caused by unexpectedly passing a constant …","","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 character.","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.","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?","Create a collection of declarations","Generate an expression which evaluates a match expression, …","Create a module with a given name and a list of …","","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 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.","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 …","","","","","","","Foreign Function Interface","I/O Module","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).","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.","The type for the C 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. The …","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Boolean-and the register and the value pointed to on the …","Interpret the register’s value as a signed integer. …","Perform bitwise and on the cell and the value pointed to …","Perform bitwise nand on the cell and the value pointed to …","Bitwise not the register. Store the result in the register.","Perform bitwise or on the cell and the value pointed to on …","Perform a bitwise xor 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 …","Decrement the register.","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.","Increment the register. The argument is the size of the …","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 …","Left shift the cell by the value pointed to on the tape. …","Store the value pointed to on the tape to the register.","Logical right shift the cell by the value pointed to on …","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 …","Negate the register. The argument is the size of the …","Negate the value of the register (as a float).","Boolean-not the register (0 if the register is non-zero, 1 …","Interpret the register’s value as a pointer to a cell. …","Boolean-or the register and the value pointed to on the …","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 …","Return from the current function.","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 …","Store the register to the value pointed to on the tape.","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Swap the value of the register with the value pointed to …","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,3,0,3,1,1,1,1,1,1,1,1,3,0,1,1,3,0,3,3,1,0,3,1,1,1,1,1,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,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,17,17,10,17,10,17,10,17,10,17,10,17,17,17,17,10,17,10,17,10,17,10,17,10,17,17,10,10,17,10,17,17,10,17,10,17,10,17,17,17,17,10,10,10,17,10,10,17,17,10,17,10,17,10,17,10,17,10,105,106,107,108,109,110,111,112,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,105,106,107,108,109,110,111,145,146,147,148,149,150,151,152,153,154,155,156,157,158,115,142,143,158,114,122,123,124,125,126,129,130,131,132,133,137,138,139,140,141,142,143,159,144,152,153,154,155,156,157,159,144,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,134,135,136,137,138,139,140,143,159,145,147,148,149,150,151,152,153,154,155,156,145,146,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,25,0,0,0,0,0,0,0,25,25,0,25,0,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,28,28,11,28,11,28,11,28,11,28,28,28,28,11,28,11,28,11,28,11,28,11,28,28,11,11,28,28,11,28,28,11,28,11,28,28,28,28,11,28,11,28,28,11,28,11,28,11,28,11,28,11,160,161,160,161,162,163,164,165,166,167,168,160,161,169,170,171,172,173,174,175,176,177,178,179,180,181,182,169,170,171,172,173,174,175,176,177,178,179,180,181,182,163,164,165,166,167,168,169,170,171,172,173,175,182,162,0,0,49,37,0,36,35,30,0,35,67,34,30,34,36,36,0,35,30,34,35,30,36,0,0,30,0,30,0,0,0,0,0,0,35,34,38,38,35,34,35,34,0,0,36,38,31,0,30,37,34,38,0,35,36,38,0,38,59,0,35,30,0,30,30,36,59,49,36,34,35,30,34,0,57,0,0,31,0,35,35,34,31,31,0,0,0,57,57,30,30,67,31,30,35,34,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,38,57,57,34,38,38,31,30,30,35,30,36,36,36,31,35,49,0,67,30,0,36,34,0,36,36,36,38,35,34,0,57,35,35,0,0,37,34,34,35,31,0,49,35,31,34,0,0,36,36,30,49,30,34,0,35,36,35,0,35,31,35,30,37,34,49,35,37,34,36,38,0,35,38,0,30,35,30,37,34,0,35,31,34,0,36,35,36,38,0,30,36,36,35,30,34,34,36,36,36,31,31,37,36,30,30,37,31,30,31,33,34,37,30,36,35,30,35,30,34,37,68,69,35,35,35,35,35,35,30,30,30,30,30,30,30,38,30,38,30,68,69,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,43,43,44,44,45,45,46,46,34,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,74,74,43,43,44,44,45,45,46,46,47,49,50,74,35,30,68,69,70,71,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,34,59,37,33,67,33,33,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,35,31,30,37,68,69,70,71,72,67,34,43,43,44,44,45,45,46,46,59,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,35,31,30,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,35,34,43,44,45,46,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,35,30,37,38,33,33,36,36,35,35,31,31,30,30,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,60,60,61,61,62,62,63,63,64,64,65,65,66,66,37,37,68,68,69,69,70,70,71,71,72,72,67,67,34,34,38,38,33,36,36,35,35,35,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,67,34,72,30,33,71,33,37,71,37,71,71,30,34,72,71,34,79,79,79,35,30,68,69,70,71,72,34,34,80,80,80,35,30,68,69,70,71,72,33,72,30,30,33,34,38,38,35,31,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,30,37,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,34,38,34,34,67,38,37,38,30,34,67,38,34,34,34,34,34,38,30,34,30,30,30,30,30,30,30,30,38,30,31,37,31,35,72,30,43,43,44,44,45,45,46,46,68,69,30,30,50,70,71,72,30,30,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,34,37,30,30,30,35,71,30,30,68,69,43,43,44,44,45,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,35,31,30,37,68,69,70,71,72,67,34,71,81,81,35,34,34,34,34,34,34,34,34,34,34,34,30,34,37,30,30,80,35,30,68,69,70,71,72,34,80,80,37,35,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,84,43,43,44,44,45,45,46,46,35,31,30,37,68,69,70,71,72,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,35,30,34,30,37,35,30,71,72,183,183,184,185,186,184,185,187,186,184,185,187,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,0,0,0,0,75,75,75,75,75,75,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,90,90,90,91,0,90,91,89,91,89,90,90,91,90,91,0,91,90,0,90,90,91,90,91,89,90,90,90,91,0,88,91,90,89,90,90,91,90,0,0,90,90,88,89,90,90,91,91,91,91,91,91,90,89,0,0,90,90,91,90,91,91,91,90,91,89,90,90,89,90,88,91,91,91,91,91,91,91,91,90,91,91,91,90,90,90,91,91,91,91,91,90,90,88,91,91,90,90,89,90,90,87,87,89,87,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,87,88,88,89,89,90,90,91,91,92,92,86,86,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,23,87,88,89,90,91,92,86,23,86,87,88,89,90,91,92,86,23,23,23,23,86,86,86,23,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,0,0,93,93,93,93,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,95,95,95,94,95,95,94,94,94,94,94,94,94,94,95,94,0,0,95,0,95,94,94,0,94,95,94,94,0,9,95,94,94,94,94,94,94,95,94,94,94,94,94,95,94,95,94,94,94,95,95,95,94,94,94,95,94,94,95,95,0,0,0,0,94,94,95,94,95,0,95,95,9,0,94,94,99,0,0,100,100,100,100,100,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,99,9,18,94,29,95,99,9,18,94,100,18,29,100,101,102,18,29,103,99,101,102,100,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,9,103,104,100,103,99,103,18,29,18,94,94,29,95,95,103,99,9,9,101,102,18,94,29,29,95,103,99,9,104,100,103,99,18,29,18,29,18,29,18,94,100,101,102,18,94,29,95,103,99,9,103,101,102,18,94,29,95,103,99,9,100,100,100,101,102,103,103,100,18,29,103,103,103,18,94,29,95,9,104,100,103,99,104,100,103,99,104,100,103,99,100,100,100,101,102,100,100,100,100,100,100,18,29,100,18,94,29,95,99,9,18,94,29,95,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100],"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,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[[3,4],2],0,[3,5],[5,-1,[]],[5,-1,[]],[5,2],[[1,1],6],[[1,7],8],[[1,7],8],[9,1],[-1,-1,[]],[[3,5],[[13,[[12,[10,11]]]]]],0,[[],5],[-1,-2,[],[]],[[3,14],6],0,[[3,14,14,5],2],[[3,10],2],[[1,1],[[13,[15]]]],0,[[3,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,5],[[12,[18,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[17,17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[17,17],15],[[10,10],15],0,[17,5],[[],17],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[17]]],19],[-1,[[12,[10]]],19],[5,2],[5,2],[[17,17],6],[[10,10],6],[[17,7],8],[[17,7],8],[[10,7],8],[[10,7],8],[-1,-1,[]],[-1,-1,[]],[[17,5],[[13,[[12,[10,11]]]]]],[[17,-1],2,20],[[10,-1],2,20],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[17,14],6],[[[21,[10]]],17],[[17,10],2],[[17,17],[[13,[15]]]],[[10,10],[[13,[15]]]],[-1,10,22],[[-1,23],10,22],[[17,-1],12,24],[[10,-1],12,24],[[25,-1],10,22],[[17,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[26,4,5],25],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],26],[5,-1,[]],[5,-1,[]],[-1,[[12,[26]]],19],[5,2],[[26,7],8],[[26,7],8],[-1,-1,[]],[[26,14],[[13,[[2,[25,5,5]]]]]],[[26,14],[[13,[25]]]],[[26,14],[[13,[5]]]],[26,5],[[],5],[-1,-2,[],[]],[[],26],[[26,25],[[12,[25,1]]]],[[26,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[[-1,-2],2,[],[]],[[25,25],15],[5,-1,[]],[25,25],[5,-1,[]],[-1,[[12,[25]]],19],[5,2],[[25,25],6],[[25,7],8],[[25,7],8],[-1,-1,[]],[[25,-1],2,20],[[],5],[-1,-2,[],[]],[[25,27],25],[[25,25],[[13,[15]]]],[[25,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[28,5],[[12,[29,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[11,11],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],0,[28,5],[[],28],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[28]]],19],[-1,[[12,[11]]],19],[5,2],[5,2],[[28,28],6],[[11,11],6],[[28,7],8],[[28,7],8],[[11,7],8],[[11,7],8],[-1,-1,[]],[17,28],[-1,-1,[]],[[28,5],[[13,[[12,[10,11]]]]]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[28,14],6],[[[21,[11]]],28],[[28,10],2],[[28,28],[[13,[15]]]],[[11,11],[[13,[15]]]],[[28,-1],12,24],[[11,-1],12,24],[[28,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[13,[14]],6,6],[[12,[30,4]]],22],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[31,-1],-2,[[32,[31]]],[]],[[30,-1],30,[[32,[30]]]],[[31,-1],2,[[32,[31]]]],[[33,34,-1,35],[[12,[2,36]]],22],[[34,33],[[12,[2,36]]]],[[[21,[37]]],37],[[30,-1],30,[[32,[30]]]],[[36,38],36],[[35,38],35],[[30,-1],30,[[32,[38]]]],[[35,[21,[30]]],30],[[30,[21,[30]]],30],[[34,[21,[34]]],34],[[30,[39,[37]],34,33],[[12,[6,36]]]],0,0,[[35,33],[[12,[6,36]]]],[[35,33],[[12,[40,36]]]],[[35,33],[[12,[41,36]]]],[[35,33],[[12,[42,36]]]],[[35,33],[[12,[4,36]]]],[[35,34],35],[[30,34],30],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[30,30],[[38,38],-1,[]],[[30,-1],30,[[32,[30]]]],[[38,38],2],[[30,-1],30,[[32,[30]]]],0,0,[6,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[43,34,34,33],[[12,[6,36]]]],[[44,34,33],[[12,[6,36]]]],[[45,34,34,33],[[12,[6,36]]]],[[46,34,34,34,33],[[12,[6,36]]]],[[47,34,34,33],[[12,[6,36]]]],[[48,34,33],[[12,[6,36]]]],[[49,34,34,33],[[12,[6,36]]]],[[50,34,34,33],[[12,[6,36]]]],[[51,34,34,33],[[12,[6,36]]]],[[52,34,34,33],[[12,[6,36]]]],[[53,34,34,33],[[12,[6,36]]]],[[54,34,33],[[12,[6,36]]]],[[55,34,34,33],[[12,[6,36]]]],[[56,34,34,33],[[12,[6,36]]]],[[57,34,34,33],[[12,[6,36]]]],[[58,34,33],[[12,[6,36]]]],[[59,34,33],[[12,[6,36]]]],[[60,34,34,33],[[12,[6,36]]]],[[61,34,34,33],[[12,[6,36]]]],[[62,34,33],[[12,[6,36]]]],[[63,34,33],[[12,[6,36]]]],[[64,34,33],[[12,[6,36]]]],[[65,34,33],[[12,[6,36]]]],[[66,34,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[[67,67],6],[[34,34,33],[[12,[6,36]]]],[38,38],[33,33],[36,36],[35,35],[31,31],[30,30],[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],[60,60],[61,61],[62,62],[63,63],[64,64],[65,65],[66,66],[37,37],[68,68],[69,69],[70,70],[71,71],[72,72],[67,67],[34,34],[43,[[73,[43]]]],[44,[[73,[44]]]],[45,[[73,[45]]]],[46,[[73,[46]]]],[47,[[73,[45]]]],[48,[[73,[44]]]],[49,[[73,[45]]]],[50,[[73,[43]]]],[51,[[73,[45]]]],[52,[[73,[45]]]],[53,[[73,[45]]]],[54,[[73,[44]]]],[55,[[73,[45]]]],[56,[[73,[45]]]],[57,[[73,[45]]]],[58,[[73,[44]]]],[59,[[73,[44]]]],[60,[[73,[45]]]],[61,[[73,[45]]]],[62,[[73,[44]]]],[63,[[73,[44]]]],[64,[[73,[44]]]],[65,[[73,[44]]]],[66,[[73,[44]]]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[43,43],15],[[44,44],15],[[45,45],15],[[46,46],15],[[38,38],15],[[47,47],15],[[48,48],15],[[51,51],15],[[52,52],15],[[53,53],15],[[54,54],15],[[55,55],15],[[56,56],15],[[57,57],15],[[58,58],15],[[59,59],15],[[60,60],15],[[63,63],15],[[64,64],15],[[65,65],15],[[66,66],15],[[67,67],15],[74,[[12,[[12,[17,28]],36]]]],[74,[[12,[[12,[17,28]],36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[47,30,30,33,3],[[12,[2,36]]]],[[49,30,30,33,3],[[12,[2,36]]]],[[50,30,30,33,3],[[12,[2,36]]]],[[74,33,3],[[12,[2,36]]]],[[35,33,3],[[12,[2,36]]]],[[30,33,3],[[12,[2,36]]]],[[68,33,3],[[12,[2,36]]]],[[69,33,3],[[12,[2,36]]]],[[70,33,3],[[12,[2,36]]]],[[71,33,3],[[12,[2,36]]]],[[43,34,34,33,3],[[12,[2,36]]]],[[44,34,33,3],[[12,[2,36]]]],[[45,34,34,33,3],[[12,[2,36]]]],[[46,34,34,34,33,3],[[12,[2,36]]]],[[47,34,34,33,3],[[12,[2,36]]]],[[48,34,33,3],[[12,[2,36]]]],[[49,34,34,33,3],[[12,[2,36]]]],[[50,34,34,33,3],[[12,[2,36]]]],[[51,34,34,33,3],[[12,[2,36]]]],[[52,34,34,33,3],[[12,[2,36]]]],[[53,34,34,33,3],[[12,[2,36]]]],[[54,34,33,3],[[12,[2,36]]]],[[55,34,34,33,3],[[12,[2,36]]]],[[56,34,34,33,3],[[12,[2,36]]]],[[57,34,34,33,3],[[12,[2,36]]]],[[58,34,33,3],[[12,[2,36]]]],[[59,34,33,3],[[12,[2,36]]]],[[60,34,34,33,3],[[12,[2,36]]]],[[61,34,34,33,3],[[12,[2,36]]]],[[62,34,33,3],[[12,[2,36]]]],[[63,34,33,3],[[12,[2,36]]]],[[64,34,33,3],[[12,[2,36]]]],[[65,34,33,3],[[12,[2,36]]]],[[66,34,33,3],[[12,[2,36]]]],[[34,14],6],[[25,34,33,3],[[12,[2,36]]]],[[37,30,34,33],[[12,[2,36]]]],[[],33],[[],67],[[33,[21,[[2,[4,34]]]]],2],[[33,-1,67,34,6],[[12,[27,36]]],22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[30,30],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[[30,-1],30,[[32,[30]]]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[38]]],19],[-1,[[12,[35]]],19],[-1,[[12,[31]]],19],[-1,[[12,[30]]],19],[-1,[[12,[37]]],19],[-1,[[12,[68]]],19],[-1,[[12,[69]]],19],[-1,[[12,[70]]],19],[-1,[[12,[71]]],19],[-1,[[12,[72]]],19],[-1,[[12,[67]]],19],[-1,[[12,[34]]],19],[[43,30,30],4],[[43,30,30],4],[[44,30],4],[[44,30],4],[[45,30,30],4],[[45,30,30],4],[[46,30,30,30],4],[[46,30,30,30],4],[[25,34,33,3],[[12,[2,36]]]],[[30,-1],30,[[32,[30]]]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[43,43],6],[[44,44],6],[[45,45],6],[[46,46],6],[[38,38],6],[[35,35],6],[[31,31],6],[[30,30],6],[[30,-1],30,[[32,[30]]]],[[47,47],6],[[48,48],6],[[51,51],6],[[52,52],6],[[53,53],6],[[54,54],6],[[55,55],6],[[56,56],6],[[57,57],6],[[58,58],6],[[59,59],6],[[60,60],6],[[63,63],6],[[64,64],6],[[65,65],6],[[66,66],6],[[37,37],6],[[68,68],6],[[69,69],6],[[70,70],6],[[71,71],6],[[72,72],6],[[67,67],6],[[34,34],6],[[35,35,33],6],[[34,34,33],[[12,[6,36]]]],[[43,35,35,33],[[12,[35,36]]]],[[44,35,33],[[12,[35,36]]]],[[45,35,35,33],[[12,[35,36]]]],[[46,35,35,35,33],[[12,[35,36]]]],[[35,33],[[12,[35,36]]]],[[47,35,35,33],[[12,[35,36]]]],[[48,35,33],[[12,[35,36]]]],[[49,35,35,33],[[12,[35,36]]]],[[50,35,35,33],[[12,[35,36]]]],[[51,35,35,33],[[12,[35,36]]]],[[52,35,35,33],[[12,[35,36]]]],[[53,35,35,33],[[12,[35,36]]]],[[54,35,33],[[12,[35,36]]]],[[55,35,35,33],[[12,[35,36]]]],[[56,35,35,33],[[12,[35,36]]]],[[57,35,35,33],[[12,[35,36]]]],[[58,35,33],[[12,[35,36]]]],[[59,35,33],[[12,[35,36]]]],[[60,35,35,33],[[12,[35,36]]]],[[61,35,35,33],[[12,[35,36]]]],[[62,35,33],[[12,[35,36]]]],[[63,35,33],[[12,[35,36]]]],[[64,35,33],[[12,[35,36]]]],[[65,35,33],[[12,[35,36]]]],[[66,35,33],[[12,[35,36]]]],[[35,35],35],[[30,35],30],[41,37],[[38,7],8],[[33,7],8],[[33,7],8],[[36,7],8],[[36,7],8],[[35,7],8],[[35,7],8],[[31,7],8],[[31,7],8],[[30,7],8],[[30,7],8],[[47,7],8],[[47,7],8],[[48,7],8],[[48,7],8],[[49,7],8],[[49,7],8],[[50,7],8],[[50,7],8],[[51,7],8],[[51,7],8],[[52,7],8],[[52,7],8],[[53,7],8],[[53,7],8],[[54,7],8],[[54,7],8],[[55,7],8],[[55,7],8],[[56,7],8],[[56,7],8],[[57,7],8],[[57,7],8],[[58,7],8],[[58,7],8],[[59,7],8],[[59,7],8],[[60,7],8],[[60,7],8],[[61,7],8],[[61,7],8],[[62,7],8],[[62,7],8],[[63,7],8],[[63,7],8],[[64,7],8],[[64,7],8],[[65,7],8],[[65,7],8],[[66,7],8],[[66,7],8],[[37,7],8],[[37,7],8],[[68,7],8],[[68,7],8],[[69,7],8],[[69,7],8],[[70,7],8],[[70,7],8],[[71,7],8],[[71,7],8],[[72,7],8],[[72,7],8],[[67,7],8],[[67,7],8],[[34,7],8],[[34,7],8],[75,38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[1,36],[-1,-1,[]],[72,35],[71,35],[34,35],[[[2,[4,35]]],31],[-1,-1,[]],[[[2,[4,72]]],31],[[[2,[14,30]]],31],[[[2,[14,71]]],31],[[[2,[14,72]]],31],[[[2,[4,70]]],31],[[[2,[4,67,34,30]]],31],[[[2,[4,67,30]]],31],[[[21,[-1]]],31,[[32,[31]]]],[[[2,[14,67,34,30]]],31],[[[2,[4,71]]],31],[[[2,[14,67,30]]],31],[[[76,[-1,-2]]],31,[],[]],[[[2,[14,67,[13,[34]],30]]],31],[[[73,[31]]],31],[[[2,[4,30]]],31],[[[2,[4,67,[13,[34]],30]]],31],[[[2,[37,30]]],31],[[[2,[4,34]]],31],[[[2,[14,70]]],31],[[[2,[14,35]]],31],[[[2,[14,34]]],31],[35,30],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[6,67],[-1,-1,[]],[-1,-1,[]],[[71,[21,[[2,[4,[13,[34]]]]]]],72],[[30,-1],30,[[32,[30]]]],[[33,34],[[21,[[2,[4,35]]]]]],[71,[[39,[[2,[4,67,34]]]]]],[[33,34,14],[[13,[[2,[35,34]]]]]],[[37,30,34,33],[[12,[[77,[4,[2,[67,34]]]],36]]]],[71,30],[[37,30,30,33],[[12,[34,36]]]],[71,[[13,[14]]]],[71,14],[[30,33],[[12,[[13,[67]],36]]]],[[34,34,[77,[4,[2,[34,[13,[34]]]]]],[78,[4]],33],[[12,[2,36]]]],[72,14],[71,34],[[34,33],[[13,[67]]]],[[79,33],[[12,[5,36]]]],[[79,33],[[12,[5,36]]]],[[79,33,5],[[12,[5,36]]]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[34,33,5],[[12,[5,36]]]],[[34,33],[[21,[[2,[4,[13,[34]]]]]]]],[[80,33],[[12,[34,36]]]],[[80,33],[[12,[34,36]]]],[[80,33,5],[[12,[34,36]]]],[[35,33,5],[[12,[34,36]]]],[[30,33,5],[[12,[34,36]]]],[[68,33,5],[[12,[34,36]]]],[[69,33,5],[[12,[34,36]]]],[[70,33,5],[[12,[34,36]]]],[[71,33,5],[[12,[34,36]]]],[[72,33,5],[[12,[34,36]]]],[[33,34,14],[[13,[34]]]],[72,[[21,[[2,[4,[13,[34]]]]]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[31]]]],[[33,34,14],6],[[34,34,33],[[12,[6,36]]]],[38,6],[[38,-1],2,20],[[35,-1],2,20],[[31,-1],2,20],[[30,-1],2,20],[[47,-1],2,20],[[48,-1],2,20],[[51,-1],2,20],[[52,-1],2,20],[[53,-1],2,20],[[54,-1],2,20],[[55,-1],2,20],[[56,-1],2,20],[[57,-1],2,20],[[58,-1],2,20],[[59,-1],2,20],[[60,-1],2,20],[[63,-1],2,20],[[64,-1],2,20],[[65,-1],2,20],[[66,-1],2,20],[[37,-1],2,20],[[68,-1],2,20],[[69,-1],2,20],[[70,-1],2,20],[[71,-1],2,20],[[72,-1],2,20],[[67,-1],2,20],[[34,-1],2,20],[[30,-1],30,[[32,[30]]]],[[37,30,30,30,33],[[12,[30,36]]]],[[30,-1,-2],30,[[32,[30]]],[[32,[30]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[42,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[34,6],[38,6],[34,6],[34,6],[67,6],[38,6],[[37,30,34,33],[[12,[6,36]]]],[38,6],[[30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[67,6],[38,6],[34,6],[[34,33],[[12,[6,36]]]],[[34,[78,[4]],33],[[12,[6,36]]]],[[34,33],[[12,[6,36]]]],[34,6],[38,6],[[30,-1],30,[[32,[30]]]],[[14,34,34],34],[[-1,35,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,35]]]],-1],30,[[32,[30]]]],[[-1,71,-2],30,22,[[32,[30]]]],[[[76,[14,71]],-1],30,[[32,[30]]]],[[-1,34,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,34]]]],-1],30,[[32,[30]]]],[[-1,-2,[13,[34]],-3,-4],30,22,[[32,[67]]],[[32,[30]]],[[32,[30]]]],[[[21,[[2,[14,67,[13,[34]],30]]]],-1],30,[[32,[30]]]],[38,[[13,[75]]]],[[30,-1],30,[[32,[30]]]],[-1,31,[[32,[[21,[31]]]]]],[[30,[39,[[2,[37,30]]]],33],[[12,[30,36]]]],[[-1,-2],31,22,[[32,[[21,[31]]]]]],[[35,[21,[34]]],35],[[72,[21,[34]],33],[[12,[71,36]]]],[[30,-1],30,[[32,[30]]]],[43,4],[43,4],[44,4],[44,4],[45,4],[45,4],[46,4],[46,4],0,0,[30,30],[[30,-1],30,[[32,[30]]]],[-1,50,45],[[4,[21,[34]],34],70],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],71,[[32,[30]]]],[[4,[21,[[2,[4,[13,[34]]]]]],[21,[[2,[4,67,34]]]],34,-1],72,[[32,[30]]]],[30,30],[[30,-1],30,[[32,[30]]]],[[43,43],[[13,[15]]]],[[44,44],[[13,[15]]]],[[45,45],[[13,[15]]]],[[46,46],[[13,[15]]]],[[38,38],[[13,[15]]]],[[47,47],[[13,[15]]]],[[48,48],[[13,[15]]]],[[51,51],[[13,[15]]]],[[52,52],[[13,[15]]]],[[53,53],[[13,[15]]]],[[54,54],[[13,[15]]]],[[55,55],[[13,[15]]]],[[56,56],[[13,[15]]]],[[57,57],[[13,[15]]]],[[58,58],[[13,[15]]]],[[59,59],[[13,[15]]]],[[60,60],[[13,[15]]]],[[63,63],[[13,[15]]]],[[64,64],[[13,[15]]]],[[65,65],[[13,[15]]]],[[66,66],[[13,[15]]]],[[67,67],[[13,[15]]]],[[34,33,[77,[[2,[34,[21,[34]]]],34]],6],[[12,[34,36]]]],[37,37],[[30,-1],30,[[32,[30]]]],[30,30],[30,30],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],35,[[32,[30]]]],[[71,3],2],[[30,-1],30,[[32,[67]]]],[[30,-1],30,[[32,[30]]]],0,0,[[43,30,30,33],[[12,[34,36]]]],[[43,30,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[47,30,30,33],[[12,[34,36]]]],[[48,30,33],[[12,[34,36]]]],[[49,30,30,33],[[12,[34,36]]]],[[50,30,30,33],[[12,[34,36]]]],[[51,30,30,33],[[12,[34,36]]]],[[52,30,30,33],[[12,[34,36]]]],[[53,30,30,33],[[12,[34,36]]]],[[54,30,33],[[12,[34,36]]]],[[55,30,30,33],[[12,[34,36]]]],[[56,30,30,33],[[12,[34,36]]]],[[57,30,30,33],[[12,[34,36]]]],[[58,30,33],[[12,[34,36]]]],[[59,30,33],[[12,[34,36]]]],[[60,30,30,33],[[12,[34,36]]]],[[61,30,30,33],[[12,[34,36]]]],[[62,30,33],[[12,[34,36]]]],[[63,30,33],[[12,[34,36]]]],[[64,30,33],[[12,[34,36]]]],[[65,30,33],[[12,[34,36]]]],[[66,30,33],[[12,[34,36]]]],[[38,-1],12,24],[[35,-1],12,24],[[31,-1],12,24],[[30,-1],12,24],[[37,-1],12,24],[[68,-1],12,24],[[69,-1],12,24],[[70,-1],12,24],[[71,-1],12,24],[[72,-1],12,24],[[67,-1],12,24],[[34,-1],12,24],[[71,-1],2,22],[[81,33],[[12,[81,36]]]],[[81,33,5],[[12,[81,36]]]],[[35,33,5],[[12,[35,36]]]],[[34,33,5],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[35,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,34,-1,6],[[12,[34,36]]],[[83,[34,33],[[82,[[12,[6,36]]]]]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[30,30],[[34,33],34],[[[76,[4,37]]],37],[[[76,[14,30]]],30],[[30,-1],30,[[32,[30]]]],[[80,14,34],2],[[35,14,34],2],[[30,14,34],2],[[68,14,34],2],[[69,14,34],2],[[70,14,34],2],[[71,14,34],2],[[72,14,34],2],[[34,14,34],34],[[80,[39,[4]],[39,[34]]],2],[[80,[39,[4]],[39,[34]]],2],[[-1,-2],37,[[32,[67]]],22],[[35,[21,[[2,[4,[13,[34]]]]]]],35],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[30,33],[[12,[30,36]]]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[[[21,[37]]],37],[[84,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[35,33],[[12,[2,36]]]],[[31,33],[[12,[2,36]]]],[[30,33],[[12,[2,36]]]],[[37,30,30,33],[[12,[2,36]]]],[[68,33],[[12,[2,36]]]],[[69,33],[[12,[2,36]]]],[[70,33],[[12,[2,36]]]],[[71,33],[[12,[2,36]]]],[[72,33],[[12,[2,36]]]],[[34,33],[[12,[2,36]]]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[[30,-1],30,22],[-1,35,22],[-1,30,22],[[[39,[4]],4],[[13,[5]]]],[[30,-1],30,[[32,[30]]]],[[],37],[[35,-1],35,[[32,[31]]]],[[30,-1],30,[[32,[31]]]],[[71,-1],71,[[32,[31]]]],[[72,-1],72,[[32,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[75,75],[[-1,-2],2,[],[]],[[75,75],15],0,[5,-1,[]],[5,-1,[]],[-1,[[12,[75]]],19],[5,2],[[75,75],6],0,[[75,7],8],[-1,-1,[]],[[75,14],4],[[75,-1],2,20],[[],5],[-1,-2,[],[]],0,0,0,[-1,[[12,[[12,[17,28]],4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[-1,[[12,[30,4]]],22],[-1,[[12,[[12,[18,29]],4]]],22],[[75,75],[[13,[15]]]],[[75,-1],12,24],[-1,-2,[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[85,85],[[-1,-2],2,[],[]],[[85,85],15],[5,-1,[]],[5,-1,[]],[-1,[[12,[85]]],19],[5,2],[[85,85],6],[[85,7],8],[[85,7],8],[-1,-1,[]],[[85,-1],2,20],[[],5],0,[-1,-2,[],[]],0,[[4,5,5],85],0,[[85,85],[[13,[15]]]],[[85,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[],86],[87,87],[88,88],[89,89],[90,90],[91,91],[92,92],[86,86],[23,23],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[87,87],15],[[88,88],15],[[89,89],15],[[90,90],15],[[91,91],15],[[92,92],15],[[86,86],15],[[23,23],15],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[87]]],19],[-1,[[12,[88]]],19],[-1,[[12,[89]]],19],[-1,[[12,[90]]],19],[-1,[[12,[91]]],19],[-1,[[12,[92]]],19],[-1,[[12,[86]]],19],[-1,[[12,[23]]],19],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[87,87],6],[[88,88],6],[[89,89],6],[[90,90],6],[[91,91],6],[[92,92],6],[[86,86],6],[[23,23],6],[[87,7],8],[[87,7],8],[[88,7],8],[[88,7],8],[[89,7],8],[[89,7],8],[[90,7],8],[[90,7],8],[[91,7],8],[[91,7],8],[[92,7],8],[[92,7],8],[[86,7],8],[[86,7],8],[[23,7],8],[[23,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[87,-1],2,20],[[88,-1],2,20],[[89,-1],2,20],[[90,-1],2,20],[[91,-1],2,20],[[92,-1],2,20],[[86,-1],2,20],[[23,-1],2,20],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[90,5],86],[[91,5],23],[[87,87],[[13,[15]]]],[[88,88],[[13,[15]]]],[[89,89],[[13,[15]]]],[[90,90],[[13,[15]]]],[[91,91],[[13,[15]]]],[[92,92],[[13,[15]]]],[[86,86],[[13,[15]]]],[[23,23],[[13,[15]]]],[[],86],[[87,-1],12,24],[[88,-1],12,24],[[89,-1],12,24],[[90,-1],12,24],[[91,-1],12,24],[[92,-1],12,24],[[86,-1],12,24],[[23,-1],12,24],[[],23],[[],23],[[],23],[[],86],[[],86],[[],86],[[],23],[[],23],[[],23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],0,0,[[93,18],[[12,[4,4]]]],[[93,94,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],[[93,29],[[12,[4,4]]]],[[93,95,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],0,[[96,5],4],[[96,94,[13,[5]]],4],[[96,86],[[12,[4,4]]]],[96,[[13,[4]]]],[96,14],[[96,94],4],[96,[[12,[4,4]]]],[96,[[12,[4,4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[96,[[13,[4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[[96,23],[[12,[4,4]]]],[[96,95],[[12,[4,4]]]],[96,6],[[96,86],6],[[96,23],6],[96,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[[98,5],4],[[],98],[5,-1,[]],[5,-1,[]],[5,2],[[98,94,[13,[5]]],4],[-1,-1,[]],[[98,86],[[12,[4,4]]]],[[],5],[-1,-2,[],[]],[98,14],[[98,94],4],[98,[[12,[4,4]]]],[98,[[12,[4,4]]]],[[98,[21,[97]]],[[13,[4]]]],[[98,6],[[13,[4]]]],[98,[[13,[4]]]],[[98,6],[[13,[4]]]],[[98,23],[[12,[4,4]]]],[[98,95],[[12,[4,4]]]],[98,6],[[98,86],6],[[98,23],6],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[98,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,[[99,85],2],[42,41],[41,42],[100,2],[100,2],[100,2],[100,2],[100,2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[18,18],[94,94],[29,29],[95,95],[99,99],[9,9],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[18,18],15],[[94,94],15],[100,[[12,[18,29]]]],[18,[[12,[18,29]]]],[29,[[12,[18,29]]]],[[100,14],2],[[],[[101,[99]]]],[[],[[102,[99]]]],[[],18],[[],29],[[],103],[[],99],[5,-1,[]],[5,-1,[]],[100,2],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[100,2],[[18,18],6],[[94,94],6],[[29,29],6],[[95,95],6],[[9,9],6],0,[[104,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[100,85],[[12,[2,9]]]],[[103,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[99,85,[13,[[21,[42]]]]],[[12,[2,4]]]],0,[18,18],[29,29],[[18,7],8],[[94,7],8],[[94,7],8],[[29,7],8],[[95,7],8],[[95,7],8],[[103,7],8],[[99,7],8],[[9,7],8],[[9,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[18,29],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[104,86],[[12,[42,4]]]],[[100,86],2],[[103,86],[[12,[42,4]]]],[[99,86],[[12,[42,4]]]],[18,[[77,[97,[21,[94]]]]]],[29,[[77,[97,[21,[95]]]]]],[18,[[21,[94]]]],[29,[[21,[95]]]],[18,[[2,[[21,[94]],[77,[97,[21,[94]]]]]]]],[29,[[2,[[21,[95]],[77,[97,[21,[95]]]]]]]],[[18,-1],2,20],[[94,-1],2,20],[100,2],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[[100,5],2],[[100,27],2],[-1,[[101,[-1]]],104],[-1,[[102,[-1]]],104],[-1,103,22],[[[21,[42]]],103],[[100,94],2],[[18,94],2],[[29,94],2],0,[103,4],[103,[[21,[42]]]],[[18,18],[[13,[15]]]],[[94,94],[[13,[15]]]],[[29,29],[[13,[15]]]],[[95,95],[[13,[15]]]],[[9,9],[[13,[15]]]],[104,[[12,[42,4]]]],[100,[[12,[2,9]]]],[103,[[12,[42,4]]]],[99,[[12,[42,4]]]],[[104,42],[[12,[2,4]]]],[100,[[12,[2,9]]]],[[103,42],[[12,[2,4]]]],[[99,42],[[12,[2,4]]]],[[104,42,23],[[12,[2,4]]]],[[100,23],2],[[103,42,23],[[12,[2,4]]]],[[99,42,23],[[12,[2,4]]]],[100,2],[100,2],[100,2],[[[101,[-1]],18],[[12,[-1,4]]],104],[[[102,[-1]],29],[[12,[-1,4]]],104],[100,2],[[100,41],[[12,[2,9]]]],[[100,[21,[41]]],[[12,[2,9]]]],[[100,42],2],[[100,[21,[42]]],2],[[100,95],[[12,[2,9]]]],[[18,95],[[12,[2,9]]]],[[29,95],[[12,[2,9]]]],[[100,5],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[100,2]],"c":[],"p":[[6,"Error",10],[1,"tuple"],[10,"AssemblyProgram",10],[5,"String",2653],[1,"usize"],[1,"bool"],[5,"Formatter",2654],[8,"Result",2654],[6,"Error",2349],[6,"CoreOp",65],[6,"StandardOp",416],[6,"Result",2655],[6,"Option",2656],[1,"str"],[6,"Ordering",2657],[5,"TypeId",2658],[5,"CoreProgram",65],[5,"CoreProgram",2349],[10,"Deserializer",2659],[10,"Hasher",2660],[5,"Vec",2661],[10,"ToString",2653],[5,"Output",1987],[10,"Serializer",2662],[6,"Location",376],[5,"Globals",348],[1,"isize"],[5,"StandardProgram",416],[5,"StandardProgram",2349],[6,"Expr",566],[6,"Declaration",566],[10,"Into",2663],[5,"Env",566],[6,"Type",566],[6,"ConstExpr",566],[6,"Error",566],[6,"Pattern",566],[6,"Annotation",566],[1,"slice"],[1,"char"],[1,"f64"],[1,"i64"],[10,"AssignOp",566],[10,"UnaryOp",566],[10,"BinaryOp",566],[10,"TernaryOp",566],[5,"Add",566],[5,"Negate",566],[6,"Arithmetic",566],[5,"Assign",566],[5,"BitwiseAnd",566],[5,"BitwiseNand",566],[5,"BitwiseNor",566],[5,"BitwiseNot",566],[5,"BitwiseOr",566],[5,"BitwiseXor",566],[6,"Comparison",566],[5,"Get",566],[6,"Put",566],[5,"And",566],[5,"Or",566],[5,"Not",566],[5,"New",566],[5,"Delete",566],[5,"Tag",566],[5,"Data",566],[6,"Mutability",566],[5,"CoreBuiltin",566],[5,"StandardBuiltin",566],[5,"FFIProcedure",566],[5,"Procedure",566],[5,"PolyProcedure",566],[5,"Box",2664],[10,"Compile",566],[5,"SourceCodeLocation",1924],[5,"BTreeMap",2665],[5,"HashMap",2666],[5,"HashSet",2667],[10,"GetSize",566],[10,"GetType",566],[10,"Simplify",566],[17,"Output"],[10,"Fn",2668],[10,"TypeCheck",566],[5,"FFIBinding",1959],[5,"Input",1987],[6,"Axis",1987],[6,"Direction",1987],[6,"Color",1987],[6,"InputMode",1987],[6,"OutputMode",1987],[5,"Channel",1987],[10,"CompiledTarget",2293],[6,"CoreOp",2349],[6,"StandardOp",2349],[10,"Architecture",2293],[1,"i32"],[5,"C",2319],[5,"StandardDevice",2349],[10,"VirtualMachineProgram",2349],[5,"CoreInterpreter",2349],[5,"StandardInterpreter",2349],[5,"TestingDevice",2349],[10,"Device",2349],[15,"Compare",207],[15,"IsGreater",207],[15,"IsGreaterEqual",207],[15,"IsLess",207],[15,"IsLessEqual",207],[15,"IsEqual",207],[15,"IsNotEqual",207],[15,"GetAddress",207],[15,"Move",207],[15,"Copy",207],[15,"Index",207],[15,"Add",207],[15,"Sub",207],[15,"Mul",207],[15,"Div",207],[15,"Rem",207],[15,"DivRem",207],[15,"VecAdd",207],[15,"VecSub",207],[15,"VecMul",207],[15,"VecDiv",207],[15,"VecRem",207],[15,"And",207],[15,"Or",207],[15,"VecNot",207],[15,"VecAnd",207],[15,"VecOr",207],[15,"VecInc",207],[15,"VecDec",207],[15,"LeftShift",207],[15,"LogicalRightShift",207],[15,"ArithmeticRightShift",207],[15,"VecLeftShift",207],[15,"VecLogicalRightShift",207],[15,"VecArithmeticRightShift",207],[15,"VecGez",207],[15,"VecNeg",207],[15,"VecOffset",207],[15,"VecIndex",207],[15,"PopFrom",207],[15,"Array",207],[15,"Const",207],[15,"BitwiseNand",207],[15,"BitwiseXor",207],[15,"BitwiseOr",207],[15,"BitwiseNor",207],[15,"BitwiseAnd",207],[15,"VecBitwiseAnd",207],[15,"VecBitwiseOr",207],[15,"VecBitwiseXor",207],[15,"VecBitwiseNor",207],[15,"VecBitwiseNand",207],[15,"VecBitwiseNot",207],[15,"Global",207],[15,"PushTo",207],[15,"IsGreater",510],[15,"IsLess",510],[15,"Const",510],[15,"Pow",510],[15,"Add",510],[15,"Sub",510],[15,"Mul",510],[15,"Div",510],[15,"Rem",510],[15,"VecAdd",510],[15,"VecSub",510],[15,"VecMul",510],[15,"VecDiv",510],[15,"VecRem",510],[15,"VecNeg",510],[15,"VecPow",510],[15,"VecSin",510],[15,"VecCos",510],[15,"VecTan",510],[15,"VecASin",510],[15,"VecACos",510],[15,"VecATan",510],[15,"VecGez",510],[15,"FromImport",1912],[15,"MismatchedTypes",1914],[15,"MismatchedMutability",1914],[15,"UnexpectedConstParam",1914],[15,"NonExhaustivePatterns",1914]],"b":[[45,"impl-Display-for-Error"],[46,"impl-Debug-for-Error"],[173,"impl-Debug-for-CoreProgram"],[174,"impl-Display-for-CoreProgram"],[175,"impl-Debug-for-CoreOp"],[176,"impl-Display-for-CoreOp"],[359,"impl-Display-for-Globals"],[360,"impl-Debug-for-Globals"],[402,"impl-Debug-for-Location"],[403,"impl-Display-for-Location"],[480,"impl-Display-for-StandardProgram"],[481,"impl-Debug-for-StandardProgram"],[482,"impl-Display-for-StandardOp"],[483,"impl-Debug-for-StandardOp"],[1222,"impl-PartialEq-for-Expr"],[1223,"impl-Expr"],[1279,"impl-Display-for-Env"],[1280,"impl-Debug-for-Env"],[1281,"impl-Display-for-Error"],[1282,"impl-Debug-for-Error"],[1283,"impl-Debug-for-ConstExpr"],[1284,"impl-Display-for-ConstExpr"],[1285,"impl-Debug-for-Declaration"],[1286,"impl-Display-for-Declaration"],[1287,"impl-Display-for-Expr"],[1288,"impl-Debug-for-Expr"],[1289,"impl-Debug-for-Add"],[1290,"impl-Display-for-Add"],[1291,"impl-Display-for-Negate"],[1292,"impl-Debug-for-Negate"],[1293,"impl-Display-for-Arithmetic"],[1294,"impl-Debug-for-Arithmetic"],[1295,"impl-Debug-for-Assign"],[1296,"impl-Display-for-Assign"],[1297,"impl-Display-for-BitwiseAnd"],[1298,"impl-Debug-for-BitwiseAnd"],[1299,"impl-Debug-for-BitwiseNand"],[1300,"impl-Display-for-BitwiseNand"],[1301,"impl-Display-for-BitwiseNor"],[1302,"impl-Debug-for-BitwiseNor"],[1303,"impl-Display-for-BitwiseNot"],[1304,"impl-Debug-for-BitwiseNot"],[1305,"impl-Display-for-BitwiseOr"],[1306,"impl-Debug-for-BitwiseOr"],[1307,"impl-Display-for-BitwiseXor"],[1308,"impl-Debug-for-BitwiseXor"],[1309,"impl-Display-for-Comparison"],[1310,"impl-Debug-for-Comparison"],[1311,"impl-Debug-for-Get"],[1312,"impl-Display-for-Get"],[1313,"impl-Display-for-Put"],[1314,"impl-Debug-for-Put"],[1315,"impl-Display-for-And"],[1316,"impl-Debug-for-And"],[1317,"impl-Debug-for-Or"],[1318,"impl-Display-for-Or"],[1319,"impl-Debug-for-Not"],[1320,"impl-Display-for-Not"],[1321,"impl-Debug-for-New"],[1322,"impl-Display-for-New"],[1323,"impl-Debug-for-Delete"],[1324,"impl-Display-for-Delete"],[1325,"impl-Display-for-Tag"],[1326,"impl-Debug-for-Tag"],[1327,"impl-Display-for-Data"],[1328,"impl-Debug-for-Data"],[1329,"impl-Debug-for-Pattern"],[1330,"impl-Display-for-Pattern"],[1331,"impl-Display-for-CoreBuiltin"],[1332,"impl-Debug-for-CoreBuiltin"],[1333,"impl-Display-for-StandardBuiltin"],[1334,"impl-Debug-for-StandardBuiltin"],[1335,"impl-Debug-for-FFIProcedure"],[1336,"impl-Display-for-FFIProcedure"],[1337,"impl-Debug-for-Procedure"],[1338,"impl-Display-for-Procedure"],[1339,"impl-Display-for-PolyProcedure"],[1340,"impl-Debug-for-PolyProcedure"],[1341,"impl-Debug-for-Mutability"],[1342,"impl-Display-for-Mutability"],[1343,"impl-Display-for-Type"],[1344,"impl-Debug-for-Type"],[1351,"impl-From%3CPolyProcedure%3E-for-ConstExpr"],[1352,"impl-From%3CProcedure%3E-for-ConstExpr"],[1353,"impl-From%3CType%3E-for-ConstExpr"],[1354,"impl-From%3C(String,+ConstExpr)%3E-for-Declaration"],[1356,"impl-From%3C(String,+PolyProcedure)%3E-for-Declaration"],[1357,"impl-From%3C(%26str,+Expr)%3E-for-Declaration"],[1358,"impl-From%3C(%26str,+Procedure)%3E-for-Declaration"],[1359,"impl-From%3C(%26str,+PolyProcedure)%3E-for-Declaration"],[1360,"impl-From%3C(String,+FFIProcedure)%3E-for-Declaration"],[1361,"impl-From%3C(String,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1362,"impl-From%3C(String,+Mutability,+Expr)%3E-for-Declaration"],[1363,"impl-From%3CVec%3CT%3E%3E-for-Declaration"],[1364,"impl-From%3C(%26str,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1365,"impl-From%3C(String,+Procedure)%3E-for-Declaration"],[1366,"impl-From%3C(%26str,+Mutability,+Expr)%3E-for-Declaration"],[1367,"impl-From%3CBTreeMap%3CK,+V%3E%3E-for-Declaration"],[1368,"impl-From%3C(%26str,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1369,"impl-From%3CBox%3CDeclaration%3E%3E-for-Declaration"],[1370,"impl-From%3C(String,+Expr)%3E-for-Declaration"],[1371,"impl-From%3C(String,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1372,"impl-From%3C(Pattern,+Expr)%3E-for-Declaration"],[1373,"impl-From%3C(String,+Type)%3E-for-Declaration"],[1374,"impl-From%3C(%26str,+FFIProcedure)%3E-for-Declaration"],[1375,"impl-From%3C(%26str,+ConstExpr)%3E-for-Declaration"],[1376,"impl-From%3C(%26str,+Type)%3E-for-Declaration"],[1970,"impl-Debug-for-FFIBinding"],[1971,"impl-Display-for-FFIBinding"],[2175,"impl-Display-for-Axis"],[2176,"impl-Debug-for-Axis"],[2177,"impl-Display-for-Direction"],[2178,"impl-Debug-for-Direction"],[2179,"impl-Debug-for-Color"],[2180,"impl-Display-for-Color"],[2181,"impl-Display-for-InputMode"],[2182,"impl-Debug-for-InputMode"],[2183,"impl-Debug-for-OutputMode"],[2184,"impl-Display-for-OutputMode"],[2185,"impl-Debug-for-Channel"],[2186,"impl-Display-for-Channel"],[2187,"impl-Debug-for-Input"],[2188,"impl-Display-for-Input"],[2189,"impl-Debug-for-Output"],[2190,"impl-Display-for-Output"],[2519,"impl-Display-for-CoreOp"],[2520,"impl-Debug-for-CoreOp"],[2522,"impl-Display-for-StandardOp"],[2523,"impl-Debug-for-StandardOp"],[2526,"impl-Debug-for-Error"],[2527,"impl-Display-for-Error"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/docs/src/sage/frontend/parse.rs.html b/docs/src/sage/frontend/parse.rs.html index 351d6130..121c460b 100644 --- a/docs/src/sage/frontend/parse.rs.html +++ b/docs/src/sage/frontend/parse.rs.html @@ -4946,6 +4946,43 @@ 4945 4946 4947 +4948 +4949 +4950 +4951 +4952 +4953 +4954 +4955 +4956 +4957 +4958 +4959 +4960 +4961 +4962 +4963 +4964 +4965 +4966 +4967 +4968 +4969 +4970 +4971 +4972 +4973 +4974 +4975 +4976 +4977 +4978 +4979 +4980 +4981 +4982 +4983 +4984
use log::{error, trace};
 use nom::{
     branch::alt,
@@ -6441,33 +6478,63 @@
     let (input, template_args) = cut(opt(parse_type_params))(input)?;
     trace!("Parsed template args: {template_args:#?}");
     // Get the function parameters with mutability
-    let (input, (params, ret)) = parse_method_params(input, ty)?;
-    trace!("Parsed method parameters: {params:#?}, {ret:#?}");
-    let (input, _) = whitespace(input)?;
-    let (input, body) = cut(parse_block)(input)?;
-    // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body))))
-    if let Some(args) = template_args {
-        Ok((
-            input,
-            (
-                name.to_owned(),
-                ConstExpr::PolyProc(PolyProcedure::new(
+    if let Ok((input, (params, ret))) = parse_method_params::<E>(input, ty) {
+        trace!("Parsed method parameters: {params:#?}, {ret:#?}");
+        let (input, _) = whitespace(input)?;
+        let (input, body) = cut(parse_block)(input)?;
+        // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body))))
+        if let Some(args) = template_args {
+            Ok((
+                input,
+                (
                     name.to_owned(),
-                    args.into_iter().map(|x| x.to_owned()).collect(),
-                    params,
-                    ret,
-                    body,
-                )),
-            ),
-        ))
+                    ConstExpr::PolyProc(PolyProcedure::new(
+                        name.to_owned(),
+                        args.into_iter().map(|x| x.to_owned()).collect(),
+                        params,
+                        ret,
+                        body,
+                    )),
+                ),
+            ))
+        } else {
+            Ok((
+                input,
+                (
+                    name.to_owned(),
+                    ConstExpr::Proc(Procedure::new(Some(name.to_owned()), params, ret, body)),
+                ),
+            ))
+        }
     } else {
-        Ok((
-            input,
-            (
-                name.to_owned(),
-                ConstExpr::Proc(Procedure::new(Some(name.to_owned()), params, ret, body)),
-            ),
-        ))
+        let (input, (params, ret)) = parse_fun_params(input)?;
+        trace!("Parsed method parameters: {params:#?}, {ret:#?}");
+        let (input, _) = whitespace(input)?;
+        let (input, body) = cut(parse_block)(input)?;
+        // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body))))
+        if let Some(args) = template_args {
+            Ok((
+                input,
+                (
+                    name.to_owned(),
+                    ConstExpr::PolyProc(PolyProcedure::new(
+                        name.to_owned(),
+                        args.into_iter().map(|x| x.to_owned()).collect(),
+                        params,
+                        ret,
+                        body,
+                    )),
+                ),
+            ))
+        } else {
+            Ok((
+                input,
+                (
+                    name.to_owned(),
+                    ConstExpr::Proc(Procedure::new(Some(name.to_owned()), params, ret, body)),
+                ),
+            ))
+        }
     }
 }
 
@@ -7960,19 +8027,23 @@
 ) -> IResult<&'a str, Type, E> {
     let (input, ty) = parse_type_atom(input)?;
     let (input, _) = whitespace(input)?;
-    let (input, _) = tag("<")(input)?;
-    let (input, _) = whitespace(input)?;
-    let (input, mut args) = many0(terminated(parse_type, tag(",")))(input)?;
-    let (input, _) = whitespace(input)?;
-    let (input, last_arg) = opt(parse_type)(input)?;
-    let (input, _) = whitespace(input)?;
-    let (input, _) = tag(">")(input)?;
 
-    if let Some(last_arg) = last_arg {
-        args.push(last_arg);
+    if let Ok((input, _)) = tag::<&str, &str, E>("<")(input) {
+        let (input, _) = whitespace(input)?;
+        let (input, mut args) = many0(terminated(parse_type, tag(",")))(input)?;
+        let (input, _) = whitespace(input)?;
+        let (input, last_arg) = opt(parse_type)(input)?;
+        let (input, _) = whitespace(input)?;
+        let (input, _) = tag(">")(input)?;
+    
+        if let Some(last_arg) = last_arg {
+            args.push(last_arg);
+        }
+    
+        Ok((input, Type::Apply(Box::new(ty), args)))
+    } else {
+        return Ok((input, ty))
     }
-
-    Ok((input, Type::Apply(Box::new(ty), args)))
 }
 
 fn parse_type_primitive<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
@@ -8482,19 +8553,22 @@
 ) -> IResult<&'a str, ConstExpr, E> {
     let (input, expr) = parse_const_term(input)?;
     let (input, _) = whitespace(input)?;
-    let (input, _) = tag("<")(input)?;
-    let (input, _) = whitespace(input)?;
-    let (input, mut tys) = many0(terminated(parse_type, tag(",")))(input)?;
-    let (input, _) = whitespace(input)?;
-    let (input, last_ty) = opt(parse_type)(input)?;
-    let (input, _) = whitespace(input)?;
-    let (input, _) = tag(">")(input)?;
-
-    if let Some(last_ty) = last_ty {
-        tys.push(last_ty);
+    if let Ok((input, _)) = tag::<&str, &str, E>("<")(input) {
+        let (input, _) = whitespace(input)?;
+        let (input, mut tys) = many0(terminated(parse_type, tag(",")))(input)?;
+        let (input, _) = whitespace(input)?;
+        let (input, last_ty) = opt(parse_type)(input)?;
+        let (input, _) = whitespace(input)?;
+        let (input, _) = tag(">")(input)?;
+    
+        if let Some(last_ty) = last_ty {
+            tys.push(last_ty);
+        }
+    
+        Ok((input, expr.monomorphize(tys)))
+    } else {
+        Ok((input, expr))
     }
-
-    Ok((input, expr.monomorphize(tys)))
 }
 
 fn parse_const_variant<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
@@ -8561,6 +8635,7 @@
         parse_const_sizeof_expr,
         parse_const_sizeof_type,
         parse_const_tuple,
+        parse_const_group,
         parse_const_bool,
         parse_const_null,
         parse_const_none,
@@ -8578,7 +8653,6 @@
         }),
         parse_const_array,
         parse_const_struct,
-        parse_const_group,
         map(parse_symbol, |x| ConstExpr::Symbol(x.to_string())),
     ))(input)
 }
diff --git a/docs/src/sage/lir/compile.rs.html b/docs/src/sage/lir/compile.rs.html
index cfb71322..982da31c 100644
--- a/docs/src/sage/lir/compile.rs.html
+++ b/docs/src/sage/lir/compile.rs.html
@@ -2654,7 +2654,7 @@
                     }
                     (Self::Declare(bindings, expr), field) => {
                         let mut new_env = env.clone();
-                        new_env.add_declaration(&bindings)?;
+                        new_env.add_declaration(&bindings, true)?;
                         expr.field(field).compile_expr(&mut new_env, output)?;
                     }
                     (a, b) => {
@@ -2674,7 +2674,7 @@
             Self::Declare(bindings, body) => {
                 debug!("Compiling declaration {bindings} with body {body} in environment {env}");
                 let mut new_env = env.clone();
-                new_env.add_declaration(&bindings)?;
+                new_env.add_declaration(&bindings, true)?;
                 body.compile_expr(&mut new_env, output)?;
             }
             Self::Monomorphize(expr, ty_args) => match expr.eval(env)? {
@@ -2720,7 +2720,7 @@
                 }
                 Self::Declare(bindings, expr) => {
                     let mut new_env = env.clone();
-                    new_env.add_declaration(&bindings)?;
+                    new_env.add_declaration(&bindings, true)?;
                     expr.monomorphize(ty_args)
                         .compile_expr(&mut new_env, output)?;
                 }
diff --git a/docs/src/sage/lir/env.rs.html b/docs/src/sage/lir/env.rs.html
index 631c7e50..228b0efe 100644
--- a/docs/src/sage/lir/env.rs.html
+++ b/docs/src/sage/lir/env.rs.html
@@ -1333,6 +1333,24 @@
 1332
 1333
 1334
+1335
+1336
+1337
+1338
+1339
+1340
+1341
+1342
+1343
+1344
+1345
+1346
+1347
+1348
+1349
+1350
+1351
+1352
 

//! # Environment
 //!
 //! This module defines the `Env` type, which is used to store the types, constants, and procedures
@@ -2019,9 +2037,9 @@
     }
 
     /// Add all the declarations to this environment.
-    pub(super) fn add_declaration(&mut self, declaration: &Declaration) -> Result<(), Error> {
+    pub(super) fn add_declaration(&mut self, declaration: &Declaration, compiling: bool) -> Result<(), Error> {
         self.add_compile_time_declaration(declaration)?;
-        self.add_local_variable_declaration(declaration)?;
+        self.add_local_variable_declaration(declaration, compiling)?;
         Ok(())
     }
 
@@ -2113,10 +2131,10 @@
                     let name = alias.clone().unwrap_or(name.clone());
 
                     // if !self.types.contains_key(&name) {
-                    self.define_const(&name, access.clone());
-                    if let Ok(Type::Type(ty)) = access.get_type(self) {
+                    if let Ok(Type::Type(ty)) = access.get_type(self) {
                         self.define_type(&name, *ty);
                     }
+                    self.define_const(&name, access.clone());
                 }
             }
             Declaration::FromImportAll(module) => {
@@ -2126,10 +2144,10 @@
                     for name in fields.keys() {
                         let access = module.clone().field(ConstExpr::Symbol(name.clone()));
 
-                        self.define_const(name, access.clone());
                         if let Ok(Type::Type(ty)) = access.get_type(self) {
                             self.define_type(name, *ty);
                         }
+                        self.define_const(name, access.clone());
                     }
                 } else {
                     error!("Invalid module type: {module_ty}");
@@ -2253,6 +2271,7 @@
     pub(super) fn add_local_variable_declaration(
         &mut self,
         declaration: &Declaration,
+        compiling: bool
     ) -> Result<(), Error> {
         trace!("Adding local declaration {declaration}");
         match declaration {
@@ -2292,7 +2311,7 @@
                     None => expr.get_type(self)?,
                 };
                 // ty.add_monomorphized_associated_consts(self)?;
-                self.define_var(name, *mutability, ty)?;
+                self.define_var(name, *mutability, ty, compiling)?;
             }
             Declaration::VarPat(pat, expr) => {
                 let ty = expr.get_type(self)?;
@@ -2301,7 +2320,7 @@
             }
             Declaration::Many(decls) => {
                 for decl in decls.iter() {
-                    self.add_local_variable_declaration(decl)?;
+                    self.add_local_variable_declaration(decl, compiling)?;
                 }
             }
         }
@@ -2342,6 +2361,7 @@
         if ty.is_const_param() {
             if let Ok(ty) = ty.clone().simplify_until_const_param(self, false) {
                 self.define_const(&name, ty);
+                return;
             }
         }
         match &ty {
@@ -2373,36 +2393,37 @@
     /// typechecking errors if the environment does not already have a memoized size
     /// for the type of a subexpression.
     pub fn define_types(&mut self, types: Vec<(String, Type)>) {
-        for (name, ty) in &types {
-            match &ty {
-                Type::Symbol(sym) if sym == name => {
-                    trace!("Defining type {ty} to itself as {name}");
-                }
-                _ => {
-                    if self.types.contains_key(name) {
-                        debug!("Redefining type {name} in {self}");
-                    } else {
-                        trace!("Defining type {name} as {ty}");
-                        Arc::make_mut(&mut self.consts)
-                            .insert(name.clone(), ConstExpr::Type(ty.clone()));
-                        Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone());
-                    }
-                }
-            }
-        }
+        for (name, ty) in types {
+            self.define_type(name, ty)
+            // match &ty {
+            //     Type::Symbol(sym) if sym == name => {
+            //         trace!("Defining type {ty} to itself as {name}");
+            //     }
+            //     _ => {
+            //         if self.types.contains_key(name) {
+            //             debug!("Redefining type {name} in {self}");
+            //         } else {
+            //             trace!("Defining type {name} as {ty}");
+            //             Arc::make_mut(&mut self.consts)
+            //                 .insert(name.clone(), ConstExpr::Type(ty.clone()));
+            //             Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone());
+            //         }
+            //     }
+            // }
+        }
 
-        for (_, ty) in types {
-            if let Ok(simplified) = ty.simplify_until_concrete(self, false) {
-                if let Ok(size) = simplified.get_size(self) {
-                    self.set_precalculated_size(simplified, size);
-                } else {
-                    debug!("Failed to memoize type size for {simplified}");
-                }
-            } else {
-                debug!("Failed to simplify type {ty}");
-            }
-        }
-    }
+        // for (_, ty) in types {
+        //     if let Ok(simplified) = ty.simplify_until_concrete(self, false) {
+        //         if let Ok(size) = simplified.get_size(self) {
+        //             self.set_precalculated_size(simplified, size);
+        //         } else {
+        //             debug!("Failed to memoize type size for {simplified}");
+        //         }
+        //     } else {
+        //         debug!("Failed to simplify type {ty}");
+        //     }
+        // }
+    }
 
     /// Get a type definition from this environment.
     pub(super) fn get_type(&self, name: &str) -> Option<&Type> {
@@ -2522,6 +2543,7 @@
     pub(super) fn define_args(
         &mut self,
         args: Vec<(String, Mutability, Type)>,
+        compiling: bool,
     ) -> Result<usize, Error> {
         debug!("Defining arguments {args:?} in\n{self}");
         self.fp_offset = 1;
@@ -2530,7 +2552,12 @@
         // For each argument in reverse order (starting from the last argument)
         for (name, mutability, ty) in args.into_iter().rev() {
             // Get the size of the argument we're defining.
-            let size = ty.get_size(self)?;
+            let size = if compiling {
+                ty.get_size(self)?
+            } else {
+                0
+            };
+            
             // Add the size of the argument to the total number of cells taken up by the arguments.
             self.args_size += size;
             // Decrement the frame pointer offset by the size of the argument
@@ -2559,10 +2586,16 @@
         var: impl ToString,
         mutability: Mutability,
         ty: Type,
+        compiling: bool
     ) -> Result<isize, Error> {
         let var = var.to_string();
         // Get the size of the variable we're defining.
-        let size = ty.get_size(self)? as isize;
+        let size = if compiling {
+            ty.get_size(self)?
+        } else {
+            // ty.get_size(self).unwrap_or(0)
+            0
+        } as isize;
         // Remember the offset of the variable under the current scope.
         let offset = self.fp_offset;
         // Increment the frame pointer offset by the size of the variable
@@ -2636,35 +2669,38 @@
 impl Display for Env {
     fn fmt(&self, f: &mut Formatter) -> FmtResult {
         writeln!(f, "Env")?;
-        writeln!(f, "   Types:")?;
-        for (name, ty) in self.types.iter() {
-            writeln!(f, "      {}: {}", name, ty)?;
-            let constants = self.get_all_associated_consts(ty);
-            if constants.is_empty() {
-                continue;
+        // return Ok(());
+        /*
+        writeln!(f, "   Types:")?;
+        for (name, ty) in self.types.iter() {
+            writeln!(f, "      {}: {}", name, ty)?;
+            let constants = self.get_all_associated_consts(ty);
+            if constants.is_empty() {
+                continue;
             }
-            writeln!(f, "         Associated constants:")?;
-            for (name, cexpr) in constants {
-                writeln!(f, "            {}: {}", name, cexpr)?;
+            writeln!(f, "         Associated constants:")?;
+            for (name, cexpr) in constants {
+                writeln!(f, "            {}: {}", name, cexpr)?;
             }
         }
-        // writeln!(f, "   Constants:")?;
-        // for (i, (name, e)) in self.consts.iter().enumerate() {
-        //     writeln!(f, "      {i}. {}: {}", name, e)?;
-        // }
-        // writeln!(f, "   Procedures:")?;
-        // for (name, proc) in self.procs.iter() {
-        //     writeln!(f, "      {}: {}", name, proc)?;
-        // }
-        writeln!(f, "   Globals:")?;
-        for (name, (mutability, ty, location)) in self.static_vars.iter() {
-            writeln!(f, "      {mutability} {name}: {ty} (location {location})")?;
+        writeln!(f, "   Constants:")?;
+        for (i, (name, e)) in self.consts.iter().enumerate() {
+            writeln!(f, "      {i}. {}: {}", name, e)?;
         }
-        writeln!(f, "   Variables:")?;
-        for (name, (mutability, ty, offset)) in self.vars.iter() {
-            writeln!(f, "      {mutability} {name}: {ty} (frame-offset {offset})")?;
+        writeln!(f, "   Procedures:")?;
+        for (name, proc) in self.procs.iter() {
+            writeln!(f, "      {}: {}", name, proc)?;
         }
-        Ok(())
+        writeln!(f, "   Globals:")?;
+        for (name, (mutability, ty, location)) in self.static_vars.iter() {
+            writeln!(f, "      {mutability} {name}: {ty} (location {location})")?;
+        }
+        writeln!(f, "   Variables:")?;
+        for (name, (mutability, ty, offset)) in self.vars.iter() {
+            writeln!(f, "      {mutability} {name}: {ty} (frame-offset {offset})")?;
+        }
+         */
+        Ok(())
     }
 }
 

\ No newline at end of file diff --git a/docs/src/sage/lir/expr/const_expr.rs.html b/docs/src/sage/lir/expr/const_expr.rs.html index bdb32d93..93c6058b 100644 --- a/docs/src/sage/lir/expr/const_expr.rs.html +++ b/docs/src/sage/lir/expr/const_expr.rs.html @@ -1283,6 +1283,7 @@ 1282 1283 1284 +1285
//! # Constant Expressions
 //!
 //! Constant expressions are expressions that can be evaluated at compile time.
@@ -2088,18 +2089,20 @@
                         let mut ret = ret.clone();
                         let mut new_env = env.clone();
                         for ((param, ty), ty_arg) in params.iter().zip(ty_args.iter()) {
-                            if let Type::ConstParam(cexpr) = ty_arg {
-                                if let Some(expected_ty) = ty {
+                            if ty_arg.is_const_param() {
+                                let cexpr = ty_arg.simplify_until_const_param(env, false)?;
+                            // if let Type::ConstParam(cexpr) = ty_arg {
+                            //     let cexpr = *cexpr.clone();
+                                if let Some(expected_ty) = ty {
                                     let expected = expected_ty.clone();
                                     let found = cexpr.get_type_checked(env, i)?;
                                     if !found.equals(expected_ty, env)? {
                                         error!("Mismatch in expected type for constant parameter");
-                                        return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() })
+                                        return Err(Error::MismatchedTypes { expected, found, expr: (cexpr.clone()).into() })
                                     }
-                                    ret.substitute(param, ty_arg)
                                 }
                                 ret.substitute(param, ty_arg);
-                                new_env.define_const(param, *cexpr.clone());
+                                new_env.define_const(param, cexpr.clone());
                             } else {
                                 ret.substitute(param, ty_arg);
                                 new_env.define_type(param, ty_arg.clone());
@@ -2293,9 +2296,7 @@
             }
             Self::Symbol(symbol_name) if symbol_name == name => {
                 // A constant symbol cannot be substituted for a type variable.
-                debug!("Subbing {self} for {substitution}");
-                *self = ConstExpr::Type(substitution.clone());
-                debug!("Subbed into {self}");
+                *self = ConstExpr::Type(substitution.clone());
             }
             _ => {}
         }
@@ -2433,10 +2434,11 @@
                 container.hash(state);
                 member.hash(state);
             }
-            Self::Annotated(expr, _) => {
+            Self::Annotated(expr, _metadata) => {
                 state.write_u8(3);
                 expr.hash(state);
-            }
+                // metadata.hash(state);
+            }
             Self::FFIProcedure(ffi_proc) => {
                 state.write_u8(4);
                 ffi_proc.hash(state);
diff --git a/docs/src/sage/lir/expr/declaration.rs.html b/docs/src/sage/lir/expr/declaration.rs.html
index 120e6aa5..4891af5f 100644
--- a/docs/src/sage/lir/expr/declaration.rs.html
+++ b/docs/src/sage/lir/expr/declaration.rs.html
@@ -1249,7 +1249,7 @@
                 expr.clone().compile_expr(env, output)?;
 
                 // Add the variable to the environment, so that it can be used in the body.
-                env.add_local_variable_declaration(self)?;
+                env.add_local_variable_declaration(self, true)?;
                 // Log the instructions for the declaration.
                 output.log_instructions_after(name, &log_message, current_instruction);
             }
@@ -1622,7 +1622,7 @@
             Self::Many(decls) => {
                 let mut new_env = env.clone();
                 // Add all the compile-time declarations to the environment.
-                new_env.add_declaration(&self.clone())?;
+                new_env.add_declaration(&self.clone(), false)?;
 
                 // Get all the compile time declarations so we can type check them in parallel.
                 let (comp_time_decls, run_time_decls): (Vec<_>, Vec<_>) = decls
@@ -1642,7 +1642,7 @@
                     // .map(|decl| decl.type_check(&new_env))
                     .try_for_each(|decl| {
                         decl.type_check(&new_env)?;
-                        new_env.add_declaration(decl)
+                        new_env.add_declaration(decl, false)
                     })?;
 
                 /*
@@ -1689,7 +1689,7 @@
 
                 // Add all the compile-time declarations to the environment.
                 // new_env.add_compile_time_declaration(&Self::Many(decls.clone()))?;
-                new_env.add_declaration(&Self::Many(decls.clone()))?;
+                new_env.add_declaration(&Self::Many(decls.clone()), false)?;
                 trace!("Typechecking module {}", name);
                 // Get all the compile time declarations so we can type check them in parallel.
                 let (comp_time_decls, _run_time_decls): (Vec<_>, Vec<_>) = decls
diff --git a/docs/src/sage/lir/expr/ops/comparison.rs.html b/docs/src/sage/lir/expr/ops/comparison.rs.html
index a254ef31..ef467f8e 100644
--- a/docs/src/sage/lir/expr/ops/comparison.rs.html
+++ b/docs/src/sage/lir/expr/ops/comparison.rs.html
@@ -315,7 +315,7 @@
 impl BinaryOp for Comparison {
     /// Can this binary operation be applied to the given types?
     fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result<bool, Error> {
-        match (&lhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper(), self, &rhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper()) {
+        match (&lhs.clone().discard_type_wrapper(), self, &rhs.clone().discard_type_wrapper()) {
             (Type::Int, Self::LessThan, Type::Int)
             | (Type::Int, Self::LessThanOrEqual, Type::Int)
             | (Type::Int, Self::GreaterThan, Type::Int)
diff --git a/docs/src/sage/lir/expr/pattern.rs.html b/docs/src/sage/lir/expr/pattern.rs.html
index 0bedce15..6d599560 100644
--- a/docs/src/sage/lir/expr/pattern.rs.html
+++ b/docs/src/sage/lir/expr/pattern.rs.html
@@ -1171,7 +1171,7 @@
         let mut new_env = env.clone();
         for (var, (mutabilty, ty)) in bindings {
             // Define the variables in the new environment.
-            new_env.define_var(var, mutabilty, ty)?;
+            new_env.define_var(var, mutabilty, ty, true)?;
         }
 
         // Get the type of the branch.
@@ -1594,7 +1594,7 @@
         // Get the type of the expression being matched
         let match_type = expr.get_type(env)?.simplify_until_concrete(env, false)?;
         // Define the variable in the new environment.
-        new_env.define_var(var_name.clone(), Mutability::Immutable, match_type.clone())?;
+        new_env.define_var(var_name.clone(), Mutability::Immutable, match_type.clone(), true)?;
         // Generate the expression which evaluates the `match` expression.
         let match_expr = Pattern::match_pattern_helper(&Expr::var(&var_name), branches, &new_env)?;
 
@@ -1984,7 +1984,7 @@
         bindings.sort_by_key(|(_, (_, _, offset))| *offset);
         // Define all the bindings in the environment.
         for (name, (mutability, ty, _)) in &bindings {
-            env.define_var(name, *mutability, ty.clone())?;
+            env.define_var(name, *mutability, ty.clone(), true)?;
         }
         Ok(())
     }
diff --git a/docs/src/sage/lir/expr/procedure/mono.rs.html b/docs/src/sage/lir/expr/procedure/mono.rs.html
index f5ac600e..9f122f38 100644
--- a/docs/src/sage/lir/expr/procedure/mono.rs.html
+++ b/docs/src/sage/lir/expr/procedure/mono.rs.html
@@ -457,7 +457,7 @@
 
         // Create a new scope for the procedure's body, and define the arguments for the scope.
         let mut new_env = env.new_scope();
-        new_env.define_args(self.args.clone())?;
+        new_env.define_args(self.args.clone(), false)?;
         new_env.set_expected_return_type(self.ret.clone());
 
         // Get the type of the procedure's body, and confirm that it matches the return type.
@@ -507,7 +507,7 @@
         let mut new_env = env.new_scope();
 
         // Declare the arguments and get their size
-        let args_size = new_env.define_args(self.args)?;
+        let args_size = new_env.define_args(self.args, true)?;
         // Get the size of the return value to leave on the stack
         let ret_size = self.ret.get_size(env)?;
 
diff --git a/docs/src/sage/lir/expr/procedure/poly.rs.html b/docs/src/sage/lir/expr/procedure/poly.rs.html
index 0a701b66..8a790e5c 100644
--- a/docs/src/sage/lir/expr/procedure/poly.rs.html
+++ b/docs/src/sage/lir/expr/procedure/poly.rs.html
@@ -334,6 +334,11 @@
 333
 334
 335
+336
+337
+338
+339
+340
 
//! # Poly-Procedure
 //!
 //! A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments.
@@ -413,6 +418,10 @@
         }
     }
 
+    pub fn get_type_params(&self) -> &Vec<(String, Option<Type>)> {
+        &self.ty_params
+    }
+
     pub fn from_mono(mono: Procedure, ty_params: Vec<(String, Option<Type>)>) -> Self {
         debug!(target: "mono", "Creating polymorphic procedure from monomorph {}", mono);
         let name = mono
@@ -534,7 +543,7 @@
         );
 
         let monomorph = Procedure::new(Some(mangled_name.clone()), args, ret, body);
-        monomorph.type_check(env)?;
+
         // If the monomorphized procedure has already been memoized, return it, otherwise memoize it.
         debug!(target: "mono", "Inserting entry for {}", mangled_name);
         let monomorph = monomorphs
@@ -591,6 +600,7 @@
         for (name, ty) in &self.ty_params {
             match ty {
                 Some(ty) => {
+                    new_env.define_var(name, Mutability::Immutable, ty.clone(), false)?;
                     new_env.define_type(name, ty.clone());
                 }
                 None => {
@@ -599,7 +609,7 @@
             }
         }
         // Define the arguments of the procedure.
-        new_env.define_args(self.args.clone())?;
+        new_env.define_args(self.args.clone(), false)?;
         new_env.set_expected_return_type(self.ret.clone());
 
         // Typecheck the types of the arguments and return value
diff --git a/docs/src/sage/lir/types/check.rs.html b/docs/src/sage/lir/types/check.rs.html
index 49bfea31..40f97abf 100644
--- a/docs/src/sage/lir/types/check.rs.html
+++ b/docs/src/sage/lir/types/check.rs.html
@@ -1350,6 +1350,49 @@
 1349
 1350
 1351
+1352
+1353
+1354
+1355
+1356
+1357
+1358
+1359
+1360
+1361
+1362
+1363
+1364
+1365
+1366
+1367
+1368
+1369
+1370
+1371
+1372
+1373
+1374
+1375
+1376
+1377
+1378
+1379
+1380
+1381
+1382
+1383
+1384
+1385
+1386
+1387
+1388
+1389
+1390
+1391
+1392
+1393
+1394
 
//! # Type Checking
 //!
 //! This module contains the type checking logic for the Lower Intermediate Representation.
@@ -1573,7 +1616,7 @@
                 // Check the declaration.
                 declaration.type_check(&new_env)?;
                 // Add the declarations to the environment.
-                new_env.add_declaration(declaration)?;
+                new_env.add_declaration(declaration, false)?;
                 // Check the body with the declarations defined.
                 body.type_check(&new_env)
             }
@@ -1670,7 +1713,7 @@
                     let bindings = pat.get_bindings(expr, &ty, env)?;
                     // Define the bindings in the environment.
                     for (name, (mutability, ty)) in bindings {
-                        new_env.define_var(name, mutability, ty)?;
+                        new_env.define_var(name, mutability, ty, false)?;
                     }
                     // Check the branch under the new environment.
                     pat.type_check(expr, branch, env)?;
@@ -1865,8 +1908,33 @@
                         Type::Array(_, _) => {
                             inner.refer(*expected_mutability).type_check(env)?;
                         }
+                        // Type::Type(ty) => match *ty {
+                        //     // If we are dereferencing/indexing a pointer,
+                        //     // confirm that the inner pointer has the expected mutability.
+                        //     Type::Pointer(found_mutability, _) => {
+                        //         if !found_mutability.can_decay_to(expected_mutability) {
+                        //             // If if doesn't, then return an error.
+                        //             error!("Expected mutability {expected_mutability} for expression {self}, but found mutability {found_mutability} in environment {env}");
+                        //             return Err(Error::MismatchedMutability {
+                        //                 expected: *expected_mutability,
+                        //                 found: found_mutability,
+                        //                 expr: self.clone(),
+                        //             });
+                        //         }
+                        //     }
+    
+                        //     // If we are indexing an array, confirm that the inner array can be referenced with the expected mutability.
+                        //     Type::Array(_, _) => {
+                        //         inner.refer(*expected_mutability).type_check(env)?;
+                        //     }
+                        //     ty => {
+                        //         warn!("Unexpected deref of type {ty}");
+                        //     }
+                        // }
 
-                        _ => {}
+                        ty => {
+                            warn!("Unexpected deref of type {ty}");
+                        }
                     }
 
                     e.type_check(env)
@@ -1932,7 +2000,7 @@
                 let ptr_type = ptr.get_type(env)?;
                 let val_type = val.get_type(env)?;
                 // Check that the pointer is a pointer.
-                if let Type::Pointer(mutability, ptr_elem_ty) = ptr_type {
+                if let Type::Pointer(mutability, ptr_elem_ty) = ptr_type.clone().discard_type_wrapper() {
                     // Check that the type of the value is compatible
                     // with the type of data stored at the pointer's
                     // address.
@@ -2265,7 +2333,11 @@
                 // Confirm that the type is an array or pointer.
                 match val_type {
                     Type::Array(_, _) | Type::Pointer(_, _) => {}
-                    // If it isn't, return an error.
+                    // Type::Type(ty) => match *ty {
+                    //     Type::Array(_, _) | Type::Pointer(_, _) => {}
+                    //     _ => return Err(Error::InvalidIndex(self.clone())),
+                    // }
+                    // If it isn't, return an error.
                     _ => return Err(Error::InvalidIndex(self.clone())),
                 }
 
@@ -2292,21 +2364,32 @@
 
         match self {
             Self::Any => Ok(()),
-            Self::Template(_ty_params, _template) => {
+            Self::Template(ty_params, template) => {
                 // Create a new environment with the type parameters defined.
-                // let mut new_env = env.clone();
-                // // Define the type parameters in the environment.
+                let mut new_env = env.clone();
+                for (name, ty) in ty_params {
+                    if let Some(ty) = ty {
+                        new_env.define_type(name, ty.clone());
+                        new_env.define_var(name, Mutability::Immutable, ty.clone(), false)?;
+                    } else {
+                        new_env.define_type(name, Type::Unit(name.clone(), Box::new(Type::None)))
+                    }
+                }
+                // // Define the type parameters in the environment.
                 // new_env.define_types(
                 //     ty_params
                 //         .clone()
                 //         .into_iter()
-                //         .map(|p| (p.clone(), Type::Unit(p, Box::new(Type::None))))
+                //         .map(|(p, ty)| (p.clone(), match ty {
+                //             Some(ty) => ty.clone(),
+                //             None => Type::Unit(p, Box::new(Type::None))
+                //         }))
                 //         .collect(),
                 // );
                 // Check the template type.
-                // template.type_check(&new_env)
-                Ok(())
-            }
+                template.type_check(&new_env)
+                // Ok(())
+            }
 
             Self::Annotated(expr, metadata) => expr
                 .type_check(env)
@@ -2381,7 +2464,7 @@
                 debug!(
                     "Monomorphizing {expr} with type arguments {ty_args:?} in environment {env}"
                 );
-                match **expr {
+                match *expr.clone() {
                     Self::Template(ref ty_params, ref template) => {
                         // Create a new environment with the type parameters defined.
                         // Define the type parameters in the environment.
@@ -2392,18 +2475,20 @@
                         let mut ret = template.clone();
                         let mut new_env = env.clone();
                         for ((param, ty), ty_arg) in ty_params.iter().zip(ty_args.iter()) {
-                            if let Type::ConstParam(cexpr) = ty_arg {
-                                if let Some(expected_ty) = ty {
+                            if ty_arg.is_const_param() {
+                                let cexpr = ty_arg.simplify_until_const_param(env, true)?;
+                            // if let Type::ConstParam(cexpr) = ty_arg {
+                            //     let cexpr = *cexpr.clone();
+                                if let Some(expected_ty) = ty {
                                     let expected = expected_ty.clone();
                                     let found = cexpr.get_type(env)?;
                                     if !found.equals(expected_ty, env)? {
                                         error!("Mismatch in expected type for constant parameter");
-                                        return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() })
+                                        return Err(Error::MismatchedTypes { expected, found, expr: (cexpr.clone()).into() })
                                     }
-                                    ret.substitute(param, ty_arg)
                                 }
                                 ret.substitute(param, ty_arg);
-                                new_env.define_const(param, *cexpr.clone());
+                                new_env.define_const(param, cexpr.clone());
                             } else {
                                 ret.substitute(param, ty_arg);
                                 new_env.define_type(param, ty_arg.clone());
@@ -2419,16 +2504,17 @@
                     Self::PolyProc(ref poly) => {
                         // poly.monomorphize(ty_args.clone(), env)?.type_check(env)
                         // Create a new environment with the type parameters defined.
-                        // let mut new_env = env.clone();
-                        // // Define the type parameters in the environment.
-                        // new_env.define_types(
-                        //     poly.ty_params
-                        //         .clone()
-                        //         .into_iter()
-                        //         .zip(ty_args.clone())
-                        //         .collect(),
-                        // );
-                        // Check the template type.
+                        let mut new_env = env.clone();
+                        // // Define the type parameters in the environment.
+                        new_env.define_types(
+                            poly.get_type_params()
+                                .clone()
+                                .into_iter()
+                                .map(|(name, _)| name)
+                                .zip(ty_args.clone())
+                                .collect(),
+                        );
+                        // // Check the template type.
                         poly.type_check(env)
                         // Ok(())
                     }
diff --git a/docs/src/sage/lir/types/inference.rs.html b/docs/src/sage/lir/types/inference.rs.html
index 4b596aa2..929b13aa 100644
--- a/docs/src/sage/lir/types/inference.rs.html
+++ b/docs/src/sage/lir/types/inference.rs.html
@@ -559,6 +559,13 @@
 558
 559
 560
+561
+562
+563
+564
+565
+566
+567
 
//! # Type Inference
 //!
 //! This module contains the type inference algorithm for the language.
@@ -618,7 +625,7 @@
                 // Create a new environment with the declarations.
                 let mut new_env = env.clone();
                 // Add the declarations to the environment.
-                new_env.add_declaration(declaration)?;
+                new_env.add_declaration(declaration, false)?;
                 // Get the type of the body in the new environment.
                 body.get_type_checked(&new_env, i)?
             }
@@ -975,8 +982,15 @@
                 // Only arrays and pointers can be indexed.
                 Type::Array(item, _) => *item,
                 Type::Pointer(_, item) => *item,
+                // Type::Type(ty) => {
+                //     match *ty {
+                //         Type::Array(item, _) => *item,
+                //         Type::Pointer(_, item) => *item,
+                //         _ => return Err(Error::InvalidIndex(self.clone())),
+                //     }
+                // }
 
-                // If we're accessing an index of a type that is not an array or pointer,
+                // If we're accessing an index of a type that is not an array or pointer,
                 // we cannot access an index.
                 _ => return Err(Error::InvalidIndex(self.clone())),
             },
diff --git a/docs/src/sage/lir/types/mod.rs.html b/docs/src/sage/lir/types/mod.rs.html
index 43b2df5d..0c005d9a 100644
--- a/docs/src/sage/lir/types/mod.rs.html
+++ b/docs/src/sage/lir/types/mod.rs.html
@@ -2629,6 +2629,28 @@
 2628
 2629
 2630
+2631
+2632
+2633
+2634
+2635
+2636
+2637
+2638
+2639
+2640
+2641
+2642
+2643
+2644
+2645
+2646
+2647
+2648
+2649
+2650
+2651
+2652
 
//! # Types Module
 //!
 //! This module contains a collection of types and traits
@@ -3620,14 +3642,36 @@
     }
 
 
-    /// Simplify until the type is concrete.
+    // /// Simplify until the type is concrete.
+    // pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result<ConstExpr, Error> {
+    //     let mut simplified = self.clone();
+    //     for _ in 0..4 {
+    //         if let Self::ConstParam(cexpr) = simplified {
+    //             return Ok(*cexpr);
+    //         }
+    //         simplified = simplified.simplify(env)?;
+    //     }
+    //     // if result.is_err() {
+    //     //     debug!("Couldn't simplify {} to a constant param", self);
+    //     // }
+
+    //     match simplified {
+    //         Type::ConstParam(cexpr) => Ok(*cexpr),
+    //         result => panic!("Unexpected {result}")
+    //     }
+    // }
+
+    /// Simplify until the type is concrete.
     pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result<ConstExpr, Error> {
-        let mut simplified = self.clone().simplify(env)?;
+        let mut simplified = self.clone();
         for _ in 0..3 {
             if let Self::ConstParam(cexpr) = simplified {
                 return Ok(*cexpr);
             }
             simplified = simplified.simplify(env)?;
+            if let Self::ConstParam(cexpr) = simplified {
+                return Ok(*cexpr);
+            }
             simplified = match simplified {
                 Self::Tuple(items) => {
                     let simple_items = items
@@ -4091,7 +4135,7 @@
         }
 
         let result = match (self, other) {
-            (Self::ConstParam(a), Self::ConstParam(b)) => Ok(a == b),
+            (Self::ConstParam(a), Self::ConstParam(b)) => Ok(a.equals(b, env)),
 
             (Self::Let(name, t, ret), other) | (other, Self::Let(name, t, ret)) => {
                 let mut new_env = env.clone();
@@ -4667,7 +4711,7 @@
         expr: &Expr,
         env: &Env,
     ) -> Result<(Type, usize), Error> {
-        trace!("Getting offset of member {member} in expression {self} in the environment {env}");
+        debug!("Getting offset of member {member} in expression {self} in the environment {env}");
         match self {
             Type::Pointer(_, t) => t.get_member_offset(member, expr, env),
             Type::Struct(members) => {
@@ -5044,7 +5088,7 @@
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         match self {
             Self::ConstParam(t) => write!(f, "const param {t}"),
-            Self::Type(t) => write!(f, "{t}"),
+            Self::Type(t) => write!(f, "type {t}"),
             Self::Any => write!(f, "Any"),
             Self::Never => write!(f, "Never"),
             Self::Pointer(mutability, ty) => {
diff --git a/docs/src/sage/lir/types/size.rs.html b/docs/src/sage/lir/types/size.rs.html
index 53f191f3..ffc6aa32 100644
--- a/docs/src/sage/lir/types/size.rs.html
+++ b/docs/src/sage/lir/types/size.rs.html
@@ -196,6 +196,11 @@
 195
 196
 197
+198
+199
+200
+201
+202
 
//! # Type Size
 //!
 //! This module contains the `GetSize` trait, which is used to calculate the size
@@ -256,6 +261,11 @@
             });
         }
 
+        if self.is_const_param() {
+            let cexpr = self.clone().simplify_until_const_param(env, false)?;
+            return cexpr.get_size_checked(env, i)
+        }
+
         let result = match self {
             Self::ConstParam(cexpr) => cexpr.get_size_checked(env, i)?,
 
diff --git a/docs/src/sage/vm/std.rs.html b/docs/src/sage/vm/std.rs.html
index 7881b154..01c477d8 100644
--- a/docs/src/sage/vm/std.rs.html
+++ b/docs/src/sage/vm/std.rs.html
@@ -398,7 +398,6 @@
 397
 398
 399
-400
 
//! The standard instructions of the virtual machine are defined here.
 //!
 //! ## Purpose of the Standard Instructions
@@ -484,7 +483,6 @@
                     self.0.pop();
                     self.op(CoreOp::Set(vec![(n[0] >= 0) as i64]))
                 }
-
                 (_, op) => {
                     self.0.push(StandardOp::CoreOp(op));
                 }
diff --git a/docs/trait.impl/core/clone/trait.Clone.js b/docs/trait.impl/core/clone/trait.Clone.js
index 67edb617..fc289469 100644
--- a/docs/trait.impl/core/clone/trait.Clone.js
+++ b/docs/trait.impl/core/clone/trait.Clone.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl Clone for Tag"],["impl Clone for Data"],["impl Clone for FFIProcedure"],["impl Clone for Declaration"],["impl Clone for Pattern"],["impl Clone for Arithmetic"],["impl Clone for CoreBuiltin"],["impl Clone for CoreOp"],["impl Clone for StandardProgram"],["impl Clone for Globals"],["impl Clone for StandardDevice"],["impl Clone for SourceCodeLocation"],["impl Clone for BitwiseNand"],["impl Clone for BitwiseNot"],["impl Clone for Assign"],["impl Clone for Error"],["impl Clone for And"],["impl Clone for New"],["impl Clone for Not"],["impl Clone for StandardProgram"],["impl Clone for Put"],["impl Clone for Box<dyn TernaryOp>"],["impl Clone for Box<dyn BinaryOp>"],["impl Clone for CoreProgram"],["impl Clone for Delete"],["impl Clone for Input"],["impl Clone for Get"],["impl Clone for Env"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for Negate"],["impl Clone for BitwiseAnd"],["impl Clone for Procedure"],["impl Clone for Output"],["impl Clone for Box<dyn AssignOp>"],["impl Clone for Axis"],["impl Clone for StandardOp"],["impl Clone for BitwiseXor"],["impl Clone for FFIBinding"],["impl Clone for BitwiseNor"],["impl Clone for CoreOp"],["impl Clone for OutputMode"],["impl Clone for Direction"],["impl Clone for Channel"],["impl Clone for Mutability"],["impl Clone for Or"],["impl Clone for StandardBuiltin"],["impl Clone for CoreProgram"],["impl Clone for Color"],["impl Clone for Expr"],["impl Clone for ConstExpr"],["impl Clone for Type"],["impl Clone for Box<dyn UnaryOp>"],["impl Clone for PolyProcedure"],["impl Clone for Add"],["impl Clone for InputMode"],["impl Clone for StandardOp"],["impl Clone for Annotation"],["impl Clone for Comparison"],["impl Clone for Location"],["impl Clone for BitwiseOr"]]
+"sage":[["impl Clone for CoreOp"],["impl Clone for CoreProgram"],["impl Clone for FFIProcedure"],["impl Clone for Direction"],["impl Clone for StandardOp"],["impl Clone for Input"],["impl Clone for CoreOp"],["impl Clone for Or"],["impl Clone for BitwiseNand"],["impl Clone for Negate"],["impl Clone for Channel"],["impl Clone for Box<dyn TernaryOp>"],["impl Clone for CoreBuiltin"],["impl Clone for CoreProgram"],["impl Clone for StandardOp"],["impl Clone for Error"],["impl Clone for And"],["impl Clone for Type"],["impl Clone for StandardDevice"],["impl Clone for Procedure"],["impl Clone for Not"],["impl Clone for StandardProgram"],["impl Clone for Error"],["impl Clone for Color"],["impl Clone for Data"],["impl Clone for Axis"],["impl Clone for Output"],["impl Clone for Delete"],["impl Clone for BitwiseAnd"],["impl Clone for BitwiseXor"],["impl Clone for Get"],["impl Clone for Box<dyn UnaryOp>"],["impl Clone for Comparison"],["impl Clone for BitwiseOr"],["impl Clone for Pattern"],["impl Clone for InputMode"],["impl Clone for OutputMode"],["impl Clone for Error"],["impl Clone for Arithmetic"],["impl Clone for Location"],["impl Clone for ConstExpr"],["impl Clone for StandardProgram"],["impl Clone for Tag"],["impl Clone for Declaration"],["impl Clone for BitwiseNor"],["impl Clone for Env"],["impl Clone for New"],["impl Clone for Assign"],["impl Clone for Add"],["impl Clone for BitwiseNot"],["impl Clone for Box<dyn AssignOp>"],["impl Clone for StandardBuiltin"],["impl Clone for SourceCodeLocation"],["impl Clone for Box<dyn BinaryOp>"],["impl Clone for Expr"],["impl Clone for Mutability"],["impl Clone for Globals"],["impl Clone for Put"],["impl Clone for PolyProcedure"],["impl Clone for FFIBinding"],["impl Clone for Annotation"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/trait.impl/core/cmp/trait.Eq.js b/docs/trait.impl/core/cmp/trait.Eq.js
index 9ede0c89..4b35c88d 100644
--- a/docs/trait.impl/core/cmp/trait.Eq.js
+++ b/docs/trait.impl/core/cmp/trait.Eq.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl Eq for Tag"],["impl Eq for Type"],["impl Eq for BitwiseNot"],["impl Eq for SourceCodeLocation"],["impl Eq for CoreOp"],["impl Eq for BitwiseOr"],["impl Eq for Annotation"],["impl Eq for Comparison"],["impl Eq for BitwiseNor"],["impl Eq for Pattern"],["impl Eq for Input"],["impl Eq for Delete"],["impl Eq for And"],["impl Eq for Put"],["impl Eq for Get"],["impl Eq for Mutability"],["impl Eq for Direction"],["impl Eq for CoreOp"],["impl Eq for BitwiseXor"],["impl Eq for ConstExpr"],["impl Eq for Data"],["impl Eq for FFIProcedure"],["impl Eq for FFIBinding"],["impl Eq for Negate"],["impl Eq for Color"],["impl Eq for InputMode"],["impl Eq for New"],["impl Eq for StandardBuiltin"],["impl Eq for dyn BinaryOp"],["impl Eq for dyn UnaryOp"],["impl Eq for Channel"],["impl Eq for Location"],["impl Eq for Output"],["impl Eq for BitwiseNand"],["impl Eq for OutputMode"],["impl Eq for Procedure"],["impl Eq for Axis"],["impl Eq for PolyProcedure"],["impl Eq for Add"],["impl Eq for CoreProgram"],["impl Eq for dyn AssignOp"],["impl Eq for CoreBuiltin"],["impl Eq for BitwiseAnd"],["impl Eq for CoreProgram"],["impl Eq for dyn TernaryOp"]]
+"sage":[["impl Eq for CoreBuiltin"],["impl Eq for CoreOp"],["impl Eq for BitwiseNand"],["impl Eq for Location"],["impl Eq for OutputMode"],["impl Eq for Color"],["impl Eq for Procedure"],["impl Eq for Data"],["impl Eq for SourceCodeLocation"],["impl Eq for Axis"],["impl Eq for Pattern"],["impl Eq for FFIProcedure"],["impl Eq for FFIBinding"],["impl Eq for dyn AssignOp"],["impl Eq for Input"],["impl Eq for StandardBuiltin"],["impl Eq for Output"],["impl Eq for BitwiseAnd"],["impl Eq for PolyProcedure"],["impl Eq for Tag"],["impl Eq for Get"],["impl Eq for Type"],["impl Eq for CoreProgram"],["impl Eq for BitwiseOr"],["impl Eq for Delete"],["impl Eq for dyn UnaryOp"],["impl Eq for Channel"],["impl Eq for dyn BinaryOp"],["impl Eq for BitwiseNor"],["impl Eq for BitwiseNot"],["impl Eq for dyn TernaryOp"],["impl Eq for Annotation"],["impl Eq for CoreOp"],["impl Eq for BitwiseXor"],["impl Eq for Comparison"],["impl Eq for Direction"],["impl Eq for Mutability"],["impl Eq for Add"],["impl Eq for Negate"],["impl Eq for InputMode"],["impl Eq for New"],["impl Eq for Put"],["impl Eq for And"],["impl Eq for ConstExpr"],["impl Eq for CoreProgram"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/trait.impl/core/cmp/trait.Ord.js b/docs/trait.impl/core/cmp/trait.Ord.js
index ccb5759d..dafcb153 100644
--- a/docs/trait.impl/core/cmp/trait.Ord.js
+++ b/docs/trait.impl/core/cmp/trait.Ord.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl Ord for CoreProgram"],["impl Ord for InputMode"],["impl Ord for Mutability"],["impl Ord for Input"],["impl Ord for Annotation"],["impl Ord for dyn AssignOp"],["impl Ord for dyn BinaryOp"],["impl Ord for Put"],["impl Ord for Negate"],["impl Ord for BitwiseOr"],["impl Ord for Tag"],["impl Ord for Direction"],["impl Ord for BitwiseXor"],["impl Ord for CoreProgram"],["impl Ord for BitwiseNot"],["impl Ord for Comparison"],["impl Ord for Get"],["impl Ord for Axis"],["impl Ord for Data"],["impl Ord for Output"],["impl Ord for SourceCodeLocation"],["impl Ord for FFIBinding"],["impl Ord for CoreOp"],["impl Ord for Color"],["impl Ord for BitwiseNand"],["impl Ord for And"],["impl Ord for OutputMode"],["impl Ord for Add"],["impl Ord for dyn TernaryOp"],["impl Ord for CoreOp"],["impl Ord for New"],["impl Ord for Location"],["impl Ord for dyn UnaryOp"],["impl Ord for BitwiseNor"],["impl Ord for BitwiseAnd"],["impl Ord for Delete"],["impl Ord for Channel"]]
+"sage":[["impl Ord for dyn BinaryOp"],["impl Ord for Axis"],["impl Ord for CoreProgram"],["impl Ord for BitwiseNot"],["impl Ord for BitwiseNand"],["impl Ord for dyn TernaryOp"],["impl Ord for Mutability"],["impl Ord for Channel"],["impl Ord for Negate"],["impl Ord for FFIBinding"],["impl Ord for CoreOp"],["impl Ord for InputMode"],["impl Ord for CoreOp"],["impl Ord for CoreProgram"],["impl Ord for Direction"],["impl Ord for BitwiseAnd"],["impl Ord for Put"],["impl Ord for Get"],["impl Ord for Delete"],["impl Ord for OutputMode"],["impl Ord for Input"],["impl Ord for Add"],["impl Ord for Tag"],["impl Ord for dyn UnaryOp"],["impl Ord for BitwiseOr"],["impl Ord for And"],["impl Ord for BitwiseNor"],["impl Ord for SourceCodeLocation"],["impl Ord for BitwiseXor"],["impl Ord for Comparison"],["impl Ord for Color"],["impl Ord for Data"],["impl Ord for New"],["impl Ord for Location"],["impl Ord for Annotation"],["impl Ord for dyn AssignOp"],["impl Ord for Output"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/trait.impl/core/cmp/trait.PartialEq.js b/docs/trait.impl/core/cmp/trait.PartialEq.js
index 39cd4ba0..6b0f178a 100644
--- a/docs/trait.impl/core/cmp/trait.PartialEq.js
+++ b/docs/trait.impl/core/cmp/trait.PartialEq.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl PartialEq for OutputMode"],["impl PartialEq for PolyProcedure"],["impl PartialEq for BitwiseXor"],["impl PartialEq for Delete"],["impl PartialEq for FFIBinding"],["impl PartialEq for StandardOp"],["impl PartialEq for Pattern"],["impl PartialEq for Tag"],["impl PartialEq for And"],["impl PartialEq for CoreOp"],["impl PartialEq for Get"],["impl PartialEq for CoreProgram"],["impl PartialEq for InputMode"],["impl PartialEq for Comparison"],["impl PartialEq for BitwiseNot"],["impl PartialEq for Annotation"],["impl PartialEq for Type"],["impl PartialEq for CoreProgram"],["impl PartialEq for Data"],["impl PartialEq for StandardProgram"],["impl PartialEq for dyn TernaryOp"],["impl PartialEq for Input"],["impl PartialEq for SourceCodeLocation"],["impl PartialEq for Add"],["impl PartialEq for Expr"],["impl PartialEq for Procedure"],["impl PartialEq for StandardProgram"],["impl PartialEq for BitwiseNor"],["impl PartialEq for BitwiseAnd"],["impl PartialEq for Channel"],["impl PartialEq for Mutability"],["impl PartialEq for FFIProcedure"],["impl PartialEq for dyn AssignOp"],["impl PartialEq for dyn UnaryOp"],["impl PartialEq for Negate"],["impl PartialEq for ConstExpr"],["impl PartialEq for StandardBuiltin"],["impl PartialEq for CoreBuiltin"],["impl PartialEq for Error"],["impl PartialEq for BitwiseNand"],["impl PartialEq for Output"],["impl PartialEq for Put"],["impl PartialEq for Declaration"],["impl PartialEq for Direction"],["impl PartialEq for dyn BinaryOp"],["impl PartialEq for New"],["impl PartialEq for StandardOp"],["impl PartialEq for CoreOp"],["impl PartialEq for Color"],["impl PartialEq for Location"],["impl PartialEq for Error"],["impl PartialEq for Axis"],["impl PartialEq for BitwiseOr"]]
+"sage":[["impl PartialEq for StandardProgram"],["impl PartialEq for Channel"],["impl PartialEq for dyn AssignOp"],["impl PartialEq for Axis"],["impl PartialEq for Get"],["impl PartialEq for Expr"],["impl PartialEq for StandardOp"],["impl PartialEq for CoreBuiltin"],["impl PartialEq for FFIBinding"],["impl PartialEq for Direction"],["impl PartialEq for Color"],["impl PartialEq for InputMode"],["impl PartialEq for Input"],["impl PartialEq for dyn BinaryOp"],["impl PartialEq for BitwiseAnd"],["impl PartialEq for Tag"],["impl PartialEq for CoreProgram"],["impl PartialEq for Negate"],["impl PartialEq for ConstExpr"],["impl PartialEq for Output"],["impl PartialEq for Error"],["impl PartialEq for dyn UnaryOp"],["impl PartialEq for FFIProcedure"],["impl PartialEq for Pattern"],["impl PartialEq for And"],["impl PartialEq for Type"],["impl PartialEq for StandardOp"],["impl PartialEq for New"],["impl PartialEq for Error"],["impl PartialEq for CoreOp"],["impl PartialEq for BitwiseNand"],["impl PartialEq for Put"],["impl PartialEq for PolyProcedure"],["impl PartialEq for StandardProgram"],["impl PartialEq for Comparison"],["impl PartialEq for BitwiseOr"],["impl PartialEq for dyn TernaryOp"],["impl PartialEq for CoreOp"],["impl PartialEq for Add"],["impl PartialEq for Delete"],["impl PartialEq for CoreProgram"],["impl PartialEq for BitwiseXor"],["impl PartialEq for Location"],["impl PartialEq for Annotation"],["impl PartialEq for BitwiseNor"],["impl PartialEq for StandardBuiltin"],["impl PartialEq for Data"],["impl PartialEq for Procedure"],["impl PartialEq for Declaration"],["impl PartialEq for OutputMode"],["impl PartialEq for Mutability"],["impl PartialEq for SourceCodeLocation"],["impl PartialEq for BitwiseNot"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/trait.impl/core/cmp/trait.PartialOrd.js b/docs/trait.impl/core/cmp/trait.PartialOrd.js
index 36a874bd..5c3202e3 100644
--- a/docs/trait.impl/core/cmp/trait.PartialOrd.js
+++ b/docs/trait.impl/core/cmp/trait.PartialOrd.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl PartialOrd for dyn AssignOp"],["impl PartialOrd for BitwiseOr"],["impl PartialOrd for New"],["impl PartialOrd for BitwiseNand"],["impl PartialOrd for BitwiseNot"],["impl PartialOrd for CoreOp"],["impl PartialOrd for Put"],["impl PartialOrd for Delete"],["impl PartialOrd for FFIBinding"],["impl PartialOrd for Negate"],["impl PartialOrd for Axis"],["impl PartialOrd for Error"],["impl PartialOrd for CoreProgram"],["impl PartialOrd for StandardProgram"],["impl PartialOrd for InputMode"],["impl PartialOrd for StandardProgram"],["impl PartialOrd for Input"],["impl PartialOrd for Mutability"],["impl PartialOrd for Location"],["impl PartialOrd for Channel"],["impl PartialOrd for Annotation"],["impl PartialOrd for BitwiseXor"],["impl PartialOrd for StandardOp"],["impl PartialOrd for Comparison"],["impl PartialOrd for Data"],["impl PartialOrd for Direction"],["impl PartialOrd for Add"],["impl PartialOrd for Error"],["impl PartialOrd for StandardOp"],["impl PartialOrd for CoreOp"],["impl PartialOrd for Tag"],["impl PartialOrd for Output"],["impl PartialOrd for SourceCodeLocation"],["impl PartialOrd for dyn UnaryOp"],["impl PartialOrd for And"],["impl PartialOrd for CoreProgram"],["impl PartialOrd for dyn TernaryOp"],["impl PartialOrd for BitwiseAnd"],["impl PartialOrd for OutputMode"],["impl PartialOrd for dyn BinaryOp"],["impl PartialOrd for Color"],["impl PartialOrd for Get"],["impl PartialOrd for BitwiseNor"]]
+"sage":[["impl PartialOrd for InputMode"],["impl PartialOrd for Annotation"],["impl PartialOrd for StandardOp"],["impl PartialOrd for CoreOp"],["impl PartialOrd for Output"],["impl PartialOrd for Delete"],["impl PartialOrd for dyn TernaryOp"],["impl PartialOrd for CoreProgram"],["impl PartialOrd for Location"],["impl PartialOrd for Mutability"],["impl PartialOrd for StandardProgram"],["impl PartialOrd for StandardProgram"],["impl PartialOrd for Error"],["impl PartialOrd for Comparison"],["impl PartialOrd for Error"],["impl PartialOrd for BitwiseNand"],["impl PartialOrd for FFIBinding"],["impl PartialOrd for BitwiseAnd"],["impl PartialOrd for dyn AssignOp"],["impl PartialOrd for dyn UnaryOp"],["impl PartialOrd for Data"],["impl PartialOrd for BitwiseNot"],["impl PartialOrd for Get"],["impl PartialOrd for Add"],["impl PartialOrd for CoreOp"],["impl PartialOrd for Input"],["impl PartialOrd for Axis"],["impl PartialOrd for And"],["impl PartialOrd for dyn BinaryOp"],["impl PartialOrd for SourceCodeLocation"],["impl PartialOrd for Negate"],["impl PartialOrd for New"],["impl PartialOrd for CoreProgram"],["impl PartialOrd for Tag"],["impl PartialOrd for OutputMode"],["impl PartialOrd for StandardOp"],["impl PartialOrd for BitwiseNor"],["impl PartialOrd for Channel"],["impl PartialOrd for Direction"],["impl PartialOrd for Put"],["impl PartialOrd for BitwiseOr"],["impl PartialOrd for BitwiseXor"],["impl PartialOrd for Color"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/trait.impl/core/convert/trait.From.js b/docs/trait.impl/core/convert/trait.From.js
index 43b34f5e..32e9390e 100644
--- a/docs/trait.impl/core/convert/trait.From.js
+++ b/docs/trait.impl/core/convert/trait.From.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl From<Mutability> for bool"],["impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration"],["impl From<CoreProgram> for StandardProgram"],["impl From<(&str, Mutability, Expr)> for Declaration"],["impl From<ConstExpr> for Expr"],["impl From<(&str, FFIProcedure)> for Declaration"],["impl From<bool> for Mutability"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<(Pattern, Expr)> for Declaration"],["impl<T> From<Vec<T>> for Declaration
where\n T: Into<Declaration>,
"],["impl From<(String, ConstExpr)> for Declaration"],["impl From<PolyProcedure> for ConstExpr"],["impl From<(String, Procedure)> for Declaration"],["impl From<(String, PolyProcedure)> for Declaration"],["impl From<(String, Mutability, Expr)> for Declaration"],["impl From<CoreProgram> for StandardProgram"],["impl From<(String, Type)> for Declaration"],["impl From<(&str, ConstExpr)> for Declaration"],["impl From<Procedure> for ConstExpr"],["impl From<(String, Expr)> for Declaration"],["impl From<(&str, Type)> for Declaration"],["impl From<(String, FFIProcedure)> for Declaration"],["impl From<(&str, Mutability, Type, Expr)> for Declaration"],["impl From<(&str, Expr)> for Declaration"],["impl From<SourceCodeLocation> for Annotation"],["impl From<(String, Mutability, Option<Type>, Expr)> for Declaration"],["impl From<Type> for ConstExpr"],["impl<K, V> From<BTreeMap<K, V>> for Declaration"],["impl From<Box<Declaration>> for Declaration"],["impl From<(&str, Procedure)> for Declaration"],["impl From<(String, Mutability, Type, Expr)> for Declaration"],["impl From<(&str, PolyProcedure)> for Declaration"]] +"sage":[["impl<K, V> From<BTreeMap<K, V>> for Declaration"],["impl From<Procedure> for ConstExpr"],["impl From<ConstExpr> for Expr"],["impl From<(&str, Procedure)> for Declaration"],["impl From<Type> for ConstExpr"],["impl From<Box<Declaration>> for Declaration"],["impl From<PolyProcedure> for ConstExpr"],["impl From<(String, Type)> for Declaration"],["impl From<(&str, Type)> for Declaration"],["impl From<(String, Expr)> for Declaration"],["impl From<bool> for Mutability"],["impl From<(&str, Expr)> for Declaration"],["impl From<(String, Mutability, Expr)> for Declaration"],["impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration"],["impl From<(&str, ConstExpr)> for Declaration"],["impl From<Error> for Error"],["impl From<CoreProgram> for StandardProgram"],["impl From<(&str, FFIProcedure)> for Declaration"],["impl From<(String, ConstExpr)> for Declaration"],["impl From<(String, Mutability, Type, Expr)> for Declaration"],["impl From<(Pattern, Expr)> for Declaration"],["impl From<(String, Mutability, Option<Type>, Expr)> for Declaration"],["impl From<SourceCodeLocation> for Annotation"],["impl From<Error> for Error"],["impl From<(&str, Mutability, Expr)> for Declaration"],["impl From<(String, Procedure)> for Declaration"],["impl From<(&str, Mutability, Type, Expr)> for Declaration"],["impl From<CoreProgram> for StandardProgram"],["impl<T> From<Vec<T>> for Declaration
where\n T: Into<Declaration>,
"],["impl From<(&str, PolyProcedure)> for Declaration"],["impl From<(String, PolyProcedure)> for Declaration"],["impl From<(String, FFIProcedure)> for Declaration"],["impl From<Mutability> for bool"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/default/trait.Default.js b/docs/trait.impl/core/default/trait.Default.js index 96d884ca..4786fd5b 100644 --- a/docs/trait.impl/core/default/trait.Default.js +++ b/docs/trait.impl/core/default/trait.Default.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl Default for C"],["impl Default for Mutability"],["impl Default for CoreProgram"],["impl Default for StandardInterpreter<StandardDevice>"],["impl Default for StandardProgram"],["impl Default for Env"],["impl Default for StandardDevice"],["impl Default for StandardProgram"],["impl Default for CoreProgram"],["impl Default for Globals"],["impl Default for CoreInterpreter<StandardDevice>"],["impl Default for TestingDevice"]] +"sage":[["impl Default for CoreInterpreter<StandardDevice>"],["impl Default for C"],["impl Default for Globals"],["impl Default for StandardProgram"],["impl Default for StandardInterpreter<StandardDevice>"],["impl Default for StandardDevice"],["impl Default for Env"],["impl Default for CoreProgram"],["impl Default for TestingDevice"],["impl Default for CoreProgram"],["impl Default for Mutability"],["impl Default for StandardProgram"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/fmt/trait.Debug.js b/docs/trait.impl/core/fmt/trait.Debug.js index e353e24b..fd185731 100644 --- a/docs/trait.impl/core/fmt/trait.Debug.js +++ b/docs/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl Debug for Color"],["impl Debug for New"],["impl Debug for And"],["impl Debug for StandardOp"],["impl Debug for Channel"],["impl Debug for Negate"],["impl Debug for Tag"],["impl Debug for ConstExpr"],["impl Debug for Get"],["impl Debug for Error"],["impl Debug for BitwiseNot"],["impl Debug for StandardProgram"],["impl Debug for BitwiseXor"],["impl Debug for Mutability"],["impl Debug for SourceCodeLocation"],["impl Debug for Comparison"],["impl Debug for TestingDevice"],["impl Debug for Error"],["impl Debug for Type"],["impl Debug for StandardBuiltin"],["impl Debug for BitwiseAnd"],["impl Debug for CoreBuiltin"],["impl Debug for Axis"],["impl Debug for Expr"],["impl Debug for CoreOp"],["impl Debug for Procedure"],["impl Debug for Data"],["impl Debug for Not"],["impl Debug for Input"],["impl Debug for Globals"],["impl Debug for Or"],["impl Debug for PolyProcedure"],["impl Debug for Assign"],["impl Debug for Declaration"],["impl Debug for FFIProcedure"],["impl Debug for BitwiseOr"],["impl Debug for BitwiseNand"],["impl Debug for BitwiseNor"],["impl Debug for InputMode"],["impl Debug for CoreOp"],["impl Debug for StandardDevice"],["impl Debug for StandardOp"],["impl Debug for Location"],["impl Debug for FFIBinding"],["impl Debug for Add"],["impl Debug for Env"],["impl Debug for Output"],["impl Debug for Error"],["impl Debug for Delete"],["impl Debug for Put"],["impl Debug for Pattern"],["impl Debug for Arithmetic"],["impl Debug for Direction"],["impl Debug for OutputMode"],["impl Debug for Annotation"],["impl Debug for CoreProgram"]] +"sage":[["impl Debug for Type"],["impl Debug for CoreOp"],["impl Debug for Direction"],["impl Debug for Tag"],["impl Debug for CoreOp"],["impl Debug for StandardDevice"],["impl Debug for Expr"],["impl Debug for Not"],["impl Debug for Data"],["impl Debug for StandardOp"],["impl Debug for Env"],["impl Debug for FFIBinding"],["impl Debug for StandardProgram"],["impl Debug for FFIProcedure"],["impl Debug for Comparison"],["impl Debug for Mutability"],["impl Debug for Pattern"],["impl Debug for Error"],["impl Debug for Location"],["impl Debug for Negate"],["impl Debug for Assign"],["impl Debug for InputMode"],["impl Debug for BitwiseNot"],["impl Debug for Procedure"],["impl Debug for StandardBuiltin"],["impl Debug for Delete"],["impl Debug for Error"],["impl Debug for Arithmetic"],["impl Debug for New"],["impl Debug for BitwiseNand"],["impl Debug for BitwiseOr"],["impl Debug for Axis"],["impl Debug for TestingDevice"],["impl Debug for Color"],["impl Debug for Input"],["impl Debug for PolyProcedure"],["impl Debug for Add"],["impl Debug for StandardOp"],["impl Debug for OutputMode"],["impl Debug for Get"],["impl Debug for Put"],["impl Debug for Output"],["impl Debug for CoreProgram"],["impl Debug for ConstExpr"],["impl Debug for And"],["impl Debug for BitwiseAnd"],["impl Debug for Channel"],["impl Debug for BitwiseXor"],["impl Debug for Error"],["impl Debug for Or"],["impl Debug for BitwiseNor"],["impl Debug for CoreBuiltin"],["impl Debug for SourceCodeLocation"],["impl Debug for Globals"],["impl Debug for Declaration"],["impl Debug for Annotation"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/fmt/trait.Display.js b/docs/trait.impl/core/fmt/trait.Display.js index bdba6fab..51315b09 100644 --- a/docs/trait.impl/core/fmt/trait.Display.js +++ b/docs/trait.impl/core/fmt/trait.Display.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl Display for CoreProgram"],["impl Display for StandardProgram"],["impl Display for Output"],["impl Display for FFIProcedure"],["impl Display for Delete"],["impl Display for Globals"],["impl Display for BitwiseOr"],["impl Display for Add"],["impl Display for Assign"],["impl Display for Procedure"],["impl Display for Not"],["impl Display for Error"],["impl Display for Input"],["impl Display for Put"],["impl Display for StandardProgram"],["impl Display for And"],["impl Display for Channel"],["impl Display for Direction"],["impl Display for Get"],["impl Display for New"],["impl Display for Expr"],["impl Display for BitwiseAnd"],["impl Display for CoreProgram"],["impl Display for Data"],["impl Display for Comparison"],["impl Display for BitwiseNand"],["impl Display for CoreBuiltin"],["impl Display for Color"],["impl Display for Error"],["impl Display for OutputMode"],["impl Display for StandardOp"],["impl Display for StandardOp"],["impl Display for Env"],["impl Display for Declaration"],["impl Display for Pattern"],["impl Display for Mutability"],["impl Display for BitwiseXor"],["impl Display for Tag"],["impl Display for Error"],["impl Display for Or"],["impl Display for StandardBuiltin"],["impl Display for Location"],["impl Display for FFIBinding"],["impl Display for InputMode"],["impl Display for Negate"],["impl Display for BitwiseNor"],["impl Display for PolyProcedure"],["impl Display for Arithmetic"],["impl Display for Type"],["impl Display for BitwiseNot"],["impl Display for Axis"],["impl Display for ConstExpr"],["impl Display for CoreOp"],["impl Display for CoreOp"]] +"sage":[["impl Display for CoreOp"],["impl Display for Declaration"],["impl Display for StandardOp"],["impl Display for Error"],["impl Display for Data"],["impl Display for Channel"],["impl Display for Or"],["impl Display for BitwiseNand"],["impl Display for Tag"],["impl Display for StandardOp"],["impl Display for Put"],["impl Display for ConstExpr"],["impl Display for Delete"],["impl Display for BitwiseNot"],["impl Display for StandardProgram"],["impl Display for BitwiseAnd"],["impl Display for PolyProcedure"],["impl Display for Arithmetic"],["impl Display for Expr"],["impl Display for New"],["impl Display for OutputMode"],["impl Display for BitwiseNor"],["impl Display for Axis"],["impl Display for Direction"],["impl Display for Add"],["impl Display for Pattern"],["impl Display for BitwiseOr"],["impl Display for Type"],["impl Display for Not"],["impl Display for Procedure"],["impl Display for InputMode"],["impl Display for CoreProgram"],["impl Display for And"],["impl Display for CoreBuiltin"],["impl Display for Output"],["impl Display for Negate"],["impl Display for Mutability"],["impl Display for Get"],["impl Display for Color"],["impl Display for FFIProcedure"],["impl Display for Error"],["impl Display for CoreProgram"],["impl Display for Assign"],["impl Display for StandardProgram"],["impl Display for Env"],["impl Display for Error"],["impl Display for Globals"],["impl Display for Location"],["impl Display for FFIBinding"],["impl Display for Input"],["impl Display for Comparison"],["impl Display for StandardBuiltin"],["impl Display for BitwiseXor"],["impl Display for CoreOp"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/hash/trait.Hash.js b/docs/trait.impl/core/hash/trait.Hash.js index 823c22ad..c5da6cf3 100644 --- a/docs/trait.impl/core/hash/trait.Hash.js +++ b/docs/trait.impl/core/hash/trait.Hash.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl Hash for Tag"],["impl Hash for PolyProcedure"],["impl Hash for Delete"],["impl Hash for Location"],["impl Hash for Input"],["impl Hash for BitwiseNot"],["impl Hash for Color"],["impl Hash for ConstExpr"],["impl Hash for Direction"],["impl Hash for Comparison"],["impl Hash for Type"],["impl Hash for Negate"],["impl Hash for BitwiseOr"],["impl Hash for FFIProcedure"],["impl Hash for BitwiseXor"],["impl Hash for SourceCodeLocation"],["impl Hash for CoreProgram"],["impl Hash for Add"],["impl Hash for Procedure"],["impl Hash for StandardBuiltin"],["impl Hash for OutputMode"],["impl Hash for CoreOp"],["impl Hash for And"],["impl Hash for Pattern"],["impl Hash for Axis"],["impl Hash for New"],["impl Hash for BitwiseAnd"],["impl Hash for Declaration"],["impl Hash for BitwiseNand"],["impl Hash for Channel"],["impl Hash for Get"],["impl Hash for Mutability"],["impl Hash for Annotation"],["impl Hash for Expr"],["impl Hash for FFIBinding"],["impl Hash for CoreBuiltin"],["impl Hash for Output"],["impl Hash for CoreOp"],["impl Hash for Put"],["impl Hash for BitwiseNor"],["impl Hash for Data"],["impl Hash for InputMode"],["impl Hash for CoreProgram"]] +"sage":[["impl Hash for Type"],["impl Hash for Declaration"],["impl Hash for Pattern"],["impl Hash for Expr"],["impl Hash for OutputMode"],["impl Hash for BitwiseNot"],["impl Hash for FFIBinding"],["impl Hash for BitwiseOr"],["impl Hash for BitwiseXor"],["impl Hash for BitwiseNor"],["impl Hash for CoreOp"],["impl Hash for StandardBuiltin"],["impl Hash for Get"],["impl Hash for CoreOp"],["impl Hash for Delete"],["impl Hash for New"],["impl Hash for Location"],["impl Hash for Axis"],["impl Hash for Output"],["impl Hash for Annotation"],["impl Hash for Data"],["impl Hash for Mutability"],["impl Hash for PolyProcedure"],["impl Hash for Direction"],["impl Hash for Put"],["impl Hash for Input"],["impl Hash for Color"],["impl Hash for BitwiseNand"],["impl Hash for ConstExpr"],["impl Hash for Add"],["impl Hash for Channel"],["impl Hash for And"],["impl Hash for Comparison"],["impl Hash for FFIProcedure"],["impl Hash for CoreBuiltin"],["impl Hash for CoreProgram"],["impl Hash for CoreProgram"],["impl Hash for Tag"],["impl Hash for SourceCodeLocation"],["impl Hash for BitwiseAnd"],["impl Hash for InputMode"],["impl Hash for Procedure"],["impl Hash for Negate"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Copy.js b/docs/trait.impl/core/marker/trait.Copy.js index 685245a5..e2f94b39 100644 --- a/docs/trait.impl/core/marker/trait.Copy.js +++ b/docs/trait.impl/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl Copy for Direction"],["impl Copy for Get"],["impl Copy for New"],["impl Copy for Put"],["impl Copy for Data"],["impl Copy for Add"],["impl Copy for Channel"],["impl Copy for Delete"],["impl Copy for BitwiseXor"],["impl Copy for BitwiseAnd"],["impl Copy for Tag"],["impl Copy for Not"],["impl Copy for BitwiseOr"],["impl Copy for BitwiseNor"],["impl Copy for And"],["impl Copy for BitwiseNot"],["impl Copy for Color"],["impl Copy for Arithmetic"],["impl Copy for Mutability"],["impl Copy for Axis"],["impl Copy for Or"],["impl Copy for Comparison"],["impl Copy for Negate"],["impl Copy for BitwiseNand"]] +"sage":[["impl Copy for BitwiseXor"],["impl Copy for Not"],["impl Copy for BitwiseOr"],["impl Copy for Axis"],["impl Copy for Delete"],["impl Copy for Direction"],["impl Copy for BitwiseAnd"],["impl Copy for Put"],["impl Copy for Negate"],["impl Copy for Color"],["impl Copy for Add"],["impl Copy for Mutability"],["impl Copy for BitwiseNot"],["impl Copy for Data"],["impl Copy for Or"],["impl Copy for Arithmetic"],["impl Copy for Tag"],["impl Copy for New"],["impl Copy for BitwiseNand"],["impl Copy for Comparison"],["impl Copy for And"],["impl Copy for Get"],["impl Copy for Channel"],["impl Copy for BitwiseNor"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Send.js b/docs/trait.impl/core/marker/trait.Send.js index 43b7655f..1875980b 100644 --- a/docs/trait.impl/core/marker/trait.Send.js +++ b/docs/trait.impl/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 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 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"],["impl Send for ConstExpr"]] +"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 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 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 ConstExpr"],["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/trait.impl/core/marker/trait.StructuralEq.js b/docs/trait.impl/core/marker/trait.StructuralEq.js index 80f137ff..724e269f 100644 --- a/docs/trait.impl/core/marker/trait.StructuralEq.js +++ b/docs/trait.impl/core/marker/trait.StructuralEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl StructuralEq for Tag"],["impl StructuralEq for CoreOp"],["impl StructuralEq for Output"],["impl StructuralEq for InputMode"],["impl StructuralEq for And"],["impl StructuralEq for CoreOp"],["impl StructuralEq for Channel"],["impl StructuralEq for BitwiseAnd"],["impl StructuralEq for Annotation"],["impl StructuralEq for BitwiseNot"],["impl StructuralEq for CoreProgram"],["impl StructuralEq for New"],["impl StructuralEq for Data"],["impl StructuralEq for BitwiseNand"],["impl StructuralEq for Get"],["impl StructuralEq for BitwiseNor"],["impl StructuralEq for FFIProcedure"],["impl StructuralEq for Negate"],["impl StructuralEq for Comparison"],["impl StructuralEq for CoreProgram"],["impl StructuralEq for Direction"],["impl StructuralEq for BitwiseXor"],["impl StructuralEq for Put"],["impl StructuralEq for Pattern"],["impl StructuralEq for OutputMode"],["impl StructuralEq for SourceCodeLocation"],["impl StructuralEq for Location"],["impl StructuralEq for Input"],["impl StructuralEq for Mutability"],["impl StructuralEq for Color"],["impl StructuralEq for Delete"],["impl StructuralEq for Add"],["impl StructuralEq for BitwiseOr"],["impl StructuralEq for Axis"],["impl StructuralEq for FFIBinding"]] +"sage":[["impl StructuralEq for Location"],["impl StructuralEq for Negate"],["impl StructuralEq for Comparison"],["impl StructuralEq for Data"],["impl StructuralEq for Pattern"],["impl StructuralEq for And"],["impl StructuralEq for Add"],["impl StructuralEq for InputMode"],["impl StructuralEq for Get"],["impl StructuralEq for Mutability"],["impl StructuralEq for BitwiseXor"],["impl StructuralEq for Tag"],["impl StructuralEq for OutputMode"],["impl StructuralEq for Direction"],["impl StructuralEq for Put"],["impl StructuralEq for Delete"],["impl StructuralEq for Output"],["impl StructuralEq for FFIProcedure"],["impl StructuralEq for BitwiseNand"],["impl StructuralEq for BitwiseAnd"],["impl StructuralEq for Axis"],["impl StructuralEq for BitwiseNor"],["impl StructuralEq for SourceCodeLocation"],["impl StructuralEq for BitwiseOr"],["impl StructuralEq for Input"],["impl StructuralEq for CoreProgram"],["impl StructuralEq for Color"],["impl StructuralEq for FFIBinding"],["impl StructuralEq for CoreOp"],["impl StructuralEq for CoreProgram"],["impl StructuralEq for Channel"],["impl StructuralEq for CoreOp"],["impl StructuralEq for Annotation"],["impl StructuralEq for BitwiseNot"],["impl StructuralEq for New"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js index 38cf9af3..1ee87859 100644 --- a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for BitwiseNor"],["impl StructuralPartialEq for ConstExpr"],["impl StructuralPartialEq for Data"],["impl StructuralPartialEq for FFIProcedure"],["impl StructuralPartialEq for BitwiseNot"],["impl StructuralPartialEq for BitwiseOr"],["impl StructuralPartialEq for Error"],["impl StructuralPartialEq for Type"],["impl StructuralPartialEq for CoreBuiltin"],["impl StructuralPartialEq for Negate"],["impl StructuralPartialEq for Error"],["impl StructuralPartialEq for Direction"],["impl StructuralPartialEq for And"],["impl StructuralPartialEq for FFIBinding"],["impl StructuralPartialEq for Color"],["impl StructuralPartialEq for Location"],["impl StructuralPartialEq for New"],["impl StructuralPartialEq for BitwiseXor"],["impl StructuralPartialEq for Delete"],["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for Tag"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for BitwiseAnd"],["impl StructuralPartialEq for Output"],["impl StructuralPartialEq for Comparison"],["impl StructuralPartialEq for Pattern"],["impl StructuralPartialEq for Add"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for StandardBuiltin"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for Get"],["impl StructuralPartialEq for Annotation"],["impl StructuralPartialEq for Declaration"],["impl StructuralPartialEq for BitwiseNand"],["impl StructuralPartialEq for OutputMode"],["impl StructuralPartialEq for Input"],["impl StructuralPartialEq for InputMode"],["impl StructuralPartialEq for SourceCodeLocation"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for Channel"],["impl StructuralPartialEq for Axis"],["impl StructuralPartialEq for Put"]] +"sage":[["impl StructuralPartialEq for Delete"],["impl StructuralPartialEq for Declaration"],["impl StructuralPartialEq for And"],["impl StructuralPartialEq for BitwiseNor"],["impl StructuralPartialEq for Add"],["impl StructuralPartialEq for BitwiseOr"],["impl StructuralPartialEq for Color"],["impl StructuralPartialEq for OutputMode"],["impl StructuralPartialEq for ConstExpr"],["impl StructuralPartialEq for Location"],["impl StructuralPartialEq for New"],["impl StructuralPartialEq for Direction"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for InputMode"],["impl StructuralPartialEq for BitwiseNand"],["impl StructuralPartialEq for Get"],["impl StructuralPartialEq for BitwiseXor"],["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for Type"],["impl StructuralPartialEq for Negate"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for Error"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for Output"],["impl StructuralPartialEq for Input"],["impl StructuralPartialEq for Axis"],["impl StructuralPartialEq for Put"],["impl StructuralPartialEq for Annotation"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for Pattern"],["impl StructuralPartialEq for StandardBuiltin"],["impl StructuralPartialEq for Tag"],["impl StructuralPartialEq for BitwiseNot"],["impl StructuralPartialEq for FFIProcedure"],["impl StructuralPartialEq for FFIBinding"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for Data"],["impl StructuralPartialEq for BitwiseAnd"],["impl StructuralPartialEq for CoreBuiltin"],["impl StructuralPartialEq for Channel"],["impl StructuralPartialEq for SourceCodeLocation"],["impl StructuralPartialEq for Comparison"],["impl StructuralPartialEq for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/serde/de/trait.Deserialize.js b/docs/trait.impl/serde/de/trait.Deserialize.js index 3b2b614b..165e57e7 100644 --- a/docs/trait.impl/serde/de/trait.Deserialize.js +++ b/docs/trait.impl/serde/de/trait.Deserialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl<'de> Deserialize<'de> for CoreBuiltin"],["impl<'de> Deserialize<'de> for Globals"],["impl<'de> Deserialize<'de> for StandardBuiltin"],["impl<'de> Deserialize<'de> for Axis"],["impl<'de> Deserialize<'de> for CoreOp"],["impl<'de> Deserialize<'de> for FFIProcedure"],["impl<'de> Deserialize<'de> for Location"],["impl<'de> Deserialize<'de> for StandardOp"],["impl<'de> Deserialize<'de> for Channel"],["impl<'de> Deserialize<'de> for InputMode"],["impl<'de> Deserialize<'de> for Mutability"],["impl<'de> Deserialize<'de> for Pattern"],["impl<'de> Deserialize<'de> for OutputMode"],["impl<'de> Deserialize<'de> for CoreProgram"],["impl<'de> Deserialize<'de> for Declaration"],["impl<'de> Deserialize<'de> for Output"],["impl<'de> Deserialize<'de> for Annotation"],["impl<'de> Deserialize<'de> for FFIBinding"],["impl<'de> Deserialize<'de> for PolyProcedure"],["impl<'de> Deserialize<'de> for Direction"],["impl<'de> Deserialize<'de> for Expr"],["impl<'de> Deserialize<'de> for Type"],["impl<'de> Deserialize<'de> for StandardProgram"],["impl<'de> Deserialize<'de> for SourceCodeLocation"],["impl<'de> Deserialize<'de> for ConstExpr"],["impl<'de> Deserialize<'de> for Input"],["impl<'de> Deserialize<'de> for Procedure"],["impl<'de> Deserialize<'de> for Color"]] +"sage":[["impl<'de> Deserialize<'de> for FFIBinding"],["impl<'de> Deserialize<'de> for Color"],["impl<'de> Deserialize<'de> for ConstExpr"],["impl<'de> Deserialize<'de> for Location"],["impl<'de> Deserialize<'de> for InputMode"],["impl<'de> Deserialize<'de> for Type"],["impl<'de> Deserialize<'de> for SourceCodeLocation"],["impl<'de> Deserialize<'de> for Declaration"],["impl<'de> Deserialize<'de> for Output"],["impl<'de> Deserialize<'de> for Mutability"],["impl<'de> Deserialize<'de> for Input"],["impl<'de> Deserialize<'de> for StandardBuiltin"],["impl<'de> Deserialize<'de> for StandardProgram"],["impl<'de> Deserialize<'de> for CoreOp"],["impl<'de> Deserialize<'de> for Pattern"],["impl<'de> Deserialize<'de> for OutputMode"],["impl<'de> Deserialize<'de> for CoreBuiltin"],["impl<'de> Deserialize<'de> for Channel"],["impl<'de> Deserialize<'de> for StandardOp"],["impl<'de> Deserialize<'de> for Procedure"],["impl<'de> Deserialize<'de> for Axis"],["impl<'de> Deserialize<'de> for Direction"],["impl<'de> Deserialize<'de> for PolyProcedure"],["impl<'de> Deserialize<'de> for CoreProgram"],["impl<'de> Deserialize<'de> for FFIProcedure"],["impl<'de> Deserialize<'de> for Globals"],["impl<'de> Deserialize<'de> for Annotation"],["impl<'de> Deserialize<'de> for Expr"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/serde/ser/trait.Serialize.js b/docs/trait.impl/serde/ser/trait.Serialize.js index 5e2cf9ef..c7383b93 100644 --- a/docs/trait.impl/serde/ser/trait.Serialize.js +++ b/docs/trait.impl/serde/ser/trait.Serialize.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl Serialize for Mutability"],["impl Serialize for Annotation"],["impl Serialize for Location"],["impl Serialize for FFIBinding"],["impl Serialize for Expr"],["impl Serialize for FFIProcedure"],["impl Serialize for CoreBuiltin"],["impl Serialize for StandardProgram"],["impl Serialize for Color"],["impl Serialize for Procedure"],["impl Serialize for StandardOp"],["impl Serialize for Globals"],["impl Serialize for Declaration"],["impl Serialize for Type"],["impl Serialize for Direction"],["impl Serialize for CoreOp"],["impl Serialize for StandardBuiltin"],["impl Serialize for CoreProgram"],["impl Serialize for Axis"],["impl Serialize for Input"],["impl Serialize for ConstExpr"],["impl Serialize for InputMode"],["impl Serialize for Channel"],["impl Serialize for SourceCodeLocation"],["impl Serialize for OutputMode"],["impl Serialize for PolyProcedure"],["impl Serialize for Output"],["impl Serialize for Pattern"]] +"sage":[["impl Serialize for Type"],["impl Serialize for Mutability"],["impl Serialize for CoreBuiltin"],["impl Serialize for Annotation"],["impl Serialize for Expr"],["impl Serialize for SourceCodeLocation"],["impl Serialize for Declaration"],["impl Serialize for Color"],["impl Serialize for Direction"],["impl Serialize for PolyProcedure"],["impl Serialize for Input"],["impl Serialize for Channel"],["impl Serialize for CoreOp"],["impl Serialize for StandardBuiltin"],["impl Serialize for Location"],["impl Serialize for Pattern"],["impl Serialize for Globals"],["impl Serialize for CoreProgram"],["impl Serialize for Output"],["impl Serialize for InputMode"],["impl Serialize for Axis"],["impl Serialize for OutputMode"],["impl Serialize for FFIProcedure"],["impl Serialize for FFIBinding"],["impl Serialize for StandardProgram"],["impl Serialize for Procedure"],["impl Serialize for ConstExpr"],["impl Serialize for StandardOp"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/examples/frontend/array.sg b/examples/frontend/array.sg new file mode 100644 index 00000000..5a5abe45 --- /dev/null +++ b/examples/frontend/array.sg @@ -0,0 +1,52 @@ +fun main() { + let mut a = Array.new([1, 2, 3, 4, 5]); + a.println(); + a.set(1, 1000); + println(*a.get(1)); + a.println(); +} + +// An array with a constant parameter length +struct Array { + data: [T * N] +} + +impl Array { + // Create a new Array container + fun new(arr: [T * N]): Array { + return {data=arr}; + } + + // Get a value from the array + fun get(&self, n: Int): &T { + if n < N { + return &self.data[n]; + } else { + return Null; + } + } + + // Set a value in the array + fun set(&mut self, n: Int, val: T) { + self.data[n] = val; + } + + // Print the array + fun print(&self) { + print("["); + for let mut i=0; i([1, 2, 3, 4, 5]); + // Print it out + a.println(); + // Set a value! + a.set(1, 1000); + // Print the changed value + println(*a.get(1)); + // Print the whole changed array + a.println(); +} + +// An array with a constant parameter length +struct Array { + data: [T * N] +} + +impl Array { + // Create a new Array container + fun new(arr: [T * N]): Array { + return {data=arr}; + } + + // Get a value from the array + fun get(&self, n: Int): &T { + if n < N { + return &self.data[n]; + } else { + return Null; + } + } + + // Set a value in the array + fun set(&mut self, n: Int, val: T) { + self.data[n] = val; + } + + // Print the array + fun print(&self) { + print("["); + for let mut i=0; i(10); // Populate with 10 + let y = Matrix.new(5); // Populate with 5 + + // Print the two matrices + x.print(); + y.print(); + + // Provide the matrix with the operations for the elem type + fun add_ints(a: Int, b: Int): Int = a + b; + fun mul_ints(a: Int, b: Int): Int = a * b; + + // Perform the mat mul! + let z = y.mul<4>(&x, 0, add_ints, mul_ints); + // Print the result + z.print(); +} + +// Define a constant sized matrix with a generic element type +// and parameterized width and height. +struct Matrix { + arr: [[T * Cols] * Rows] +} + +// Add some methods to our matrix +impl Matrix { + // Create a new matrix populated with initial values + fun new(x: T): Matrix { + return {arr=[[x] * Cols] * Rows}; + } + + // Get a value from a matrix + fun get(&self, row: Int, col: Int): &T { + return &self.arr[row][col]; + } + + // Multiply with another matrix + fun mul( + &self, + other: &Matrix, + zero: T, + add: fun(T, T) -> T, + mul: fun(T, T) -> T + ): Matrix { + let mut result = Matrix.new(zero); + for let mut j=0; jStandard Lib Vector + + diff --git a/src/frontend/mod.rs b/src/frontend/mod.rs index 34e3dda6..b74ed754 100644 --- a/src/frontend/mod.rs +++ b/src/frontend/mod.rs @@ -16,10 +16,7 @@ pub fn parse( include_builtins: bool, include_std: bool, ) -> Result { - let start_time = std::time::Instant::now(); let mut expr = parse_source(&without_comments(input), filename.map(|x| x.to_owned()))?; - use log::info; - info!("Parsed {} in {}ms", filename.unwrap_or("input"), start_time.elapsed().as_millis()); use crate::side_effects::Output; if include_std { let std_lib = parse_module("std", &without_comments(include_str!("std_lib.sg")))?; diff --git a/src/lir/env.rs b/src/lir/env.rs index c6b406fc..afeebdcc 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -1190,6 +1190,7 @@ impl Env { pub(super) fn define_args( &mut self, args: Vec<(String, Mutability, Type)>, + compiling: bool, ) -> Result { debug!("Defining arguments {args:?} in\n{self}"); self.fp_offset = 1; @@ -1198,7 +1199,12 @@ impl Env { // For each argument in reverse order (starting from the last argument) for (name, mutability, ty) in args.into_iter().rev() { // Get the size of the argument we're defining. - let size = ty.get_size(self)?; + let size = if compiling { + ty.get_size(self)? + } else { + 0 + }; + // Add the size of the argument to the total number of cells taken up by the arguments. self.args_size += size; // Decrement the frame pointer offset by the size of the argument @@ -1310,6 +1316,8 @@ impl Env { impl Display for Env { fn fmt(&self, f: &mut Formatter) -> FmtResult { writeln!(f, "Env")?; + // return Ok(()); + /* writeln!(f, " Types:")?; for (name, ty) in self.types.iter() { writeln!(f, " {}: {}", name, ty)?; @@ -1317,19 +1325,19 @@ impl Display for Env { if constants.is_empty() { continue; } - // writeln!(f, " Associated constants:")?; - // for (name, cexpr) in constants { - // writeln!(f, " {}: {}", name, cexpr)?; - // } + writeln!(f, " Associated constants:")?; + for (name, cexpr) in constants { + writeln!(f, " {}: {}", name, cexpr)?; + } + } + writeln!(f, " Constants:")?; + for (i, (name, e)) in self.consts.iter().enumerate() { + writeln!(f, " {i}. {}: {}", name, e)?; + } + writeln!(f, " Procedures:")?; + for (name, proc) in self.procs.iter() { + writeln!(f, " {}: {}", name, proc)?; } - // writeln!(f, " Constants:")?; - // for (i, (name, e)) in self.consts.iter().enumerate() { - // writeln!(f, " {i}. {}: {}", name, e)?; - // } - // writeln!(f, " Procedures:")?; - // for (name, proc) in self.procs.iter() { - // writeln!(f, " {}: {}", name, proc)?; - // } writeln!(f, " Globals:")?; for (name, (mutability, ty, location)) in self.static_vars.iter() { writeln!(f, " {mutability} {name}: {ty} (location {location})")?; @@ -1338,6 +1346,7 @@ impl Display for Env { for (name, (mutability, ty, offset)) in self.vars.iter() { writeln!(f, " {mutability} {name}: {ty} (frame-offset {offset})")?; } + */ Ok(()) } } diff --git a/src/lir/expr/procedure/mono.rs b/src/lir/expr/procedure/mono.rs index a2055663..11106f91 100644 --- a/src/lir/expr/procedure/mono.rs +++ b/src/lir/expr/procedure/mono.rs @@ -162,7 +162,7 @@ impl TypeCheck for Procedure { // Create a new scope for the procedure's body, and define the arguments for the scope. let mut new_env = env.new_scope(); - new_env.define_args(self.args.clone())?; + new_env.define_args(self.args.clone(), false)?; new_env.set_expected_return_type(self.ret.clone()); // Get the type of the procedure's body, and confirm that it matches the return type. @@ -212,7 +212,7 @@ impl Compile for Procedure { let mut new_env = env.new_scope(); // Declare the arguments and get their size - let args_size = new_env.define_args(self.args)?; + let args_size = new_env.define_args(self.args, true)?; // Get the size of the return value to leave on the stack let ret_size = self.ret.get_size(env)?; diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index e1f4517a..62f6fbd7 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -268,7 +268,7 @@ impl TypeCheck for PolyProcedure { } } // Define the arguments of the procedure. - new_env.define_args(self.args.clone())?; + new_env.define_args(self.args.clone(), false)?; new_env.set_expected_return_type(self.ret.clone()); // Typecheck the types of the arguments and return value From 8c5bb90e0661b4754eee8fbf8c6faf4771501356 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 18:40:03 -0400 Subject: [PATCH 20/29] Fixed web example falling through to other example --- docs/sage/web/index.html | 1 + examples/web/index.html | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/sage/web/index.html b/docs/sage/web/index.html index 1a12d12e..8996f4cc 100644 --- a/docs/sage/web/index.html +++ b/docs/sage/web/index.html @@ -143,6 +143,7 @@ } main();`); + break; case "matrix": source.setValue(`fun main() { // Create two 4x4 matrices diff --git a/examples/web/index.html b/examples/web/index.html index 1a12d12e..8996f4cc 100644 --- a/examples/web/index.html +++ b/examples/web/index.html @@ -143,6 +143,7 @@ } main();`); + break; case "matrix": source.setValue(`fun main() { // Create two 4x4 matrices From 22755f33bf5dcded4c3e6659b00d004263a4c689 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sun, 8 Sep 2024 04:51:33 -0400 Subject: [PATCH 21/29] Removed extraneous comments and some unused code --- src/frontend/mod.rs | 2 +- src/frontend/parse.rs | 108 ++---------------------------------------- 2 files changed, 4 insertions(+), 106 deletions(-) diff --git a/src/frontend/mod.rs b/src/frontend/mod.rs index b74ed754..d9df4a6c 100644 --- a/src/frontend/mod.rs +++ b/src/frontend/mod.rs @@ -20,7 +20,7 @@ pub fn parse( use crate::side_effects::Output; if include_std { let std_lib = parse_module("std", &without_comments(include_str!("std_lib.sg")))?; - expr = expr.hard_with(std_lib) + expr = expr.with(std_lib) } if include_builtins { let alloc = crate::lir::ConstExpr::StandardBuiltin(crate::lir::StandardBuiltin { diff --git a/src/frontend/parse.rs b/src/frontend/parse.rs index 10583d29..ccf186af 100644 --- a/src/frontend/parse.rs +++ b/src/frontend/parse.rs @@ -277,14 +277,6 @@ fn make_env() -> sage_lisp::Env { Expr::None }); - // env.bind_builtin("do", |env, exprs| { - // let mut result = Expr::default(); - // for e in exprs { - // result = env.eval(e.clone()); - // } - // result - // }); - env.bind_lazy_builtin("do", |_env, exprs| Expr::Many(Vec::from(exprs))); env.bind_builtin("sqrt", |env, expr| { @@ -1365,10 +1357,6 @@ fn parse_attribute<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_impl_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ) -> IResult<&'a str, Statement, E> { - // "impl" ":")?> )>> => { - // let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect(); - // Statement::Declaration(Declaration::Impl(name, args, body)) - // }, let (input, _) = tag("impl")(input)?; let (input, ty) = cut(parse_type)(input)?; @@ -1397,7 +1385,6 @@ fn parse_impl_item<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ty: &Type, ) -> IResult<&'a str, (String, ConstExpr), E> { - // let (input, _) = whitespace(input)?; if let Ok((input, method)) = parse_impl_method::(input, ty) { return Ok((input, method)); } @@ -1422,14 +1409,6 @@ fn parse_impl_fun<'a, E: ParseError<&'a str> + ContextError<&'a str>>( let (input, (params, ret)) = cut(parse_fun_params)(input)?; let (input, _) = whitespace(input)?; let (input, body) = cut(parse_block)(input)?; - // Ok((input, (name.to_owned(), ConstExpr::Proc(Procedure::new(name, params, ret, body)))) - - // lazy_static! { - // static ref IMPL_FUN_COUNTER: RwLock = RwLock::new(0); - // } - // let mut count = *IMPL_FUN_COUNTER.read().unwrap(); - // count += 1; - // *IMPL_FUN_COUNTER.write().unwrap() = count; if let Some(args) = template_args { Ok(( @@ -1477,10 +1456,6 @@ fn parse_impl_method<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ty: &Type, ) -> IResult<&'a str, (String, ConstExpr), E> { - // "fun" ":")?> )>> ":" => { - // let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect(); - // Statement::Declaration(Declaration::Proc(name.clone(), Procedure::new(name, args, ret, body))) - // }, trace!("Parsing impl method"); let (input, _) = tag("fun")(input)?; trace!("Parsing method"); @@ -1497,7 +1472,6 @@ fn parse_impl_method<'a, E: ParseError<&'a str> + ContextError<&'a str>>( trace!("Parsed method parameters: {params:#?}, {ret:#?}"); let (input, _) = whitespace(input)?; let (input, body) = cut(parse_block)(input)?; - // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body)))) if let Some(args) = template_args { Ok(( input, @@ -1526,7 +1500,6 @@ fn parse_impl_method<'a, E: ParseError<&'a str> + ContextError<&'a str>>( trace!("Parsed method parameters: {params:#?}, {ret:#?}"); let (input, _) = whitespace(input)?; let (input, body) = cut(parse_block)(input)?; - // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body)))) if let Some(args) = template_args { Ok(( input, @@ -1588,9 +1561,6 @@ fn parse_match_expr<'a, E: ParseError<&'a str> + ContextError<&'a str>>( branches.push((pat, body)); } - // trace!("Parsed branches: {input}"); - // trace!("Parsed branches: {branches:#?}"); - let (input, _) = whitespace(input)?; let (input, _) = tag("}")(input)?; Ok((input, Expr::Match(expr.into(), branches))) @@ -1656,7 +1626,6 @@ fn parse_pattern_atom<'a, E: ParseError<&'a str> + ContextError<&'a str>>( context("tuple", parse_tuple_pattern), context("group", delimited(tag("("), cut(parse_pattern), tag(")"))), context("const", map(parse_const, Pattern::ConstExpr)), - // context("tuple", map(ma ))(input)?; Ok((input, pattern)) } @@ -1866,7 +1835,7 @@ fn parse_import_decl<'a, E: ParseError<&'a str> + ContextError<&'a str>>( // Optionally parse an alias let (input, alias) = opt(preceded(whitespace, preceded(tag("as"), cut(parse_symbol))))(input)?; - // let alias = alias.map(|x| x.to_owned()); + // If there's a comma, continue parsing let (input, _) = whitespace(input)?; @@ -1881,16 +1850,6 @@ fn parse_import_decl<'a, E: ParseError<&'a str> + ContextError<&'a str>>( .map(|(x, y)| (x.to_owned(), y.map(|z| z.to_owned()))) .collect(); - // let mut decls = vec![]; - // for (name, alias) in &imports { - // // decls.push(Declaration::Const(alias.clone(), ConstExpr::var(module_name).field(ConstExpr::var(name)))); - // decls.push(Declaration::FromImport { - // module: , - // name: name.clone(), - // alias: alias.map(|x| x.to_owned()), - // }); - // } - let (input, _) = whitespace(input)?; let (input, _) = tag(";")(input)?; @@ -2005,7 +1964,6 @@ fn parse_decl<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_if_expr<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ) -> IResult<&'a str, Expr, E> { - // "if" > => Expr::If(condition, Box::new(then), else.map(Box::new)), let (input, _) = tag("if")(input)?; let (input, _) = whitespace(input)?; let (input, condition) = cut(parse_expr)(input)?; @@ -2056,7 +2014,6 @@ fn parse_if_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_if_let_expr<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ) -> IResult<&'a str, Expr, E> { - // "if" > => Expr::If(condition, Box::new(then), else.map(Box::new)), let (input, _) = tag("if")(input)?; let (input, _) = whitespace(input)?; let (input, _) = tag("let")(input)?; @@ -2112,7 +2069,6 @@ fn parse_when_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_while_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ) -> IResult<&'a str, Statement, E> { - // "while" => Statement::While(condition, Box::new(body)), let (input, _) = tag("while")(input)?; let (input, _) = whitespace(input)?; let (input, condition) = cut(parse_expr)(input)?; @@ -2127,7 +2083,6 @@ fn parse_while_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_for_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ) -> IResult<&'a str, Statement, E> { - // "for" > > > => Statement::For(init.map(Box::new), condition.map(Box::new), step.map(Box::new), Box::new(body)), let (input, _) = tag("for")(input)?; let (input, _) = whitespace(input)?; let (input, init) = cut(parse_short_stmt)(input)?; @@ -2139,7 +2094,7 @@ fn parse_for_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( let (input, step) = cut(parse_short_stmt)(input)?; let (input, _) = whitespace(input)?; let (input, body) = cut(parse_block)(input)?; - // Ok((input, Statement::Expr(Expr::For(init.map(Box::new), condition.map(Box::new), step.map(Box::new), Box::new(body))))) + let mut init_expr = Expr::NONE; let mut init_decl = Declaration::many(vec![]); match init { @@ -2167,10 +2122,6 @@ fn parse_for_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_fun_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ) -> IResult<&'a str, Statement, E> { - // "fun" ":")?> )>> ":" => { - // let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect(); - // Statement::Declaration(Declaration::Proc(name.clone(), Procedure::new(name, args, ret, body))) - // }, let (input, _) = tag("fun")(input)?; trace!("Parsing function"); let (input, _) = whitespace(input)?; @@ -2186,7 +2137,6 @@ fn parse_fun_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( let (input, _) = whitespace(input)?; let (input, body) = parse_block(input)?; trace!("Parsed function body: {body}"); - // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body))))) if let Some(args) = template_args { Ok(( input, @@ -2221,10 +2171,6 @@ fn parse_fun_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( fn parse_quick_fun_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( input: &'a str, ) -> IResult<&'a str, Statement, E> { - // "fun" ":")?> )>> ":" => { - // let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect(); - // Statement::Declaration(Declaration::Proc(name.clone(), Procedure::new(name, args, ret, body))) - // }, let (input, _) = tag("fun")(input)?; trace!("Parsing function"); let (input, _) = whitespace(input)?; @@ -2244,7 +2190,7 @@ fn parse_quick_fun_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>( let (input, _) = whitespace(input)?; let (input, _) = cut(tag(";"))(input)?; trace!("Parsed function body: {body}"); - // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body))))) + if let Some(args) = template_args { Ok(( input, @@ -2297,7 +2243,6 @@ fn parse_fun_params<'a, E: ParseError<&'a str> + ContextError<&'a str>>( let (input, _) = whitespace(input)?; let (input, last) = opt(pair( - // parse_symbol, pair( map(opt(tag("mut")), |x| match x { Some(_) => Mutability::Mutable, @@ -4933,52 +4878,5 @@ p(5); ); trace!("Parsing block"); - // trace!("{:#?}", parse_suite::>(0, r#" - // enum Result: - // Ok(T) - // Err(E) - - // struct Point: - // x: Int - // y: Int - - // if True and 1 > 2 + 3: - // println(a + b) - // a - b - // while not a: - // println("Testing") - // std.println(5) - // increment(&mut a) - - // Result of Ok(5) - - // "#)); - - // impl Result: - // def unwrap(self) -> T: - // match self: - // of Ok(x) => x - // of Err(e) => panic(e) } - - // #[test] - // fn test_parse_const_tuple() { - // let input = "(a = 1, b = 2)"; - // let result = parse_const_tuple(input); - // assert_eq!(result, Ok(("", ConstExpr::Tuple(vec![ConstExpr::Tuple(vec![ConstExpr::Symbol("a".to_string()), ConstExpr::Int(1)]), ConstExpr::Tuple(vec![ConstExpr::Symbol("b".to_string()), ConstExpr::Int(2)])])))); - // } - - // #[test] - // fn test_parse_const_array() { - // let input = "[1, 2, 3]"; - // let result = parse_const_array(input); - // assert_eq!(result, Ok(("", ConstExpr::Array(vec![ConstExpr::Int(1), ConstExpr::Int(2), ConstExpr::Int(3)]))); - // } - - // #[test] - // fn test_parse_const_struct() { - // let input = "struct {a = 1, b = 2}"; - // let result = parse_const_struct(input); - // assert_eq!(result, Ok(("", ConstExpr::Struct(vec![("a".to_string(), ConstExpr::Int(1)), ("b".to_string(), ConstExpr::Int(2))].into_iter().collect()))); - // } } From 9e36b7e248d91a73da7d9f51aaa80e5166c73c1b Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sun, 8 Sep 2024 04:51:55 -0400 Subject: [PATCH 22/29] Removed extraneous comments and some unused code --- src/frontend/parse.rs | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/frontend/parse.rs b/src/frontend/parse.rs index ccf186af..8dfd9ae8 100644 --- a/src/frontend/parse.rs +++ b/src/frontend/parse.rs @@ -4083,23 +4083,6 @@ fn parse_const_struct<'a, E: ParseError<&'a str> + ContextError<&'a str>>( #[cfg(test)] mod tests { fn compile_and_run(code: &str, input: &str) -> Result { - // let has_init = {*INIT.read().unwrap()}; - // if !has_init { - // let mut builder = env_logger::Builder::from_default_env(); - // builder.format_timestamp(None); - // builder.filter( - // None, - // // LogLevel::Error if args.debug.is_none() => log::LevelFilter::Error, - // // LogLevel::Warn if args.debug.is_none() => log::LevelFilter::Warn, - // // LogLevel::Off if args.debug.is_none() => log::LevelFilter::Error, - // // LogLevel::Info if args.debug.is_none() => log::LevelFilter::Info, - // log::LevelFilter::Trace, - // // log::LevelFilter::Info, - // ); - // builder.init(); - // *INIT.write().unwrap() = true; - // } - let _ = rayon::ThreadPoolBuilder::new() .num_threads(16) .stack_size(512 * 1024 * 1024) From 2853c59933fb365605c2c9d67d3129fe79765063 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sun, 8 Sep 2024 05:04:43 -0400 Subject: [PATCH 23/29] Removed extraneous comments and some unused code --- src/lir/compile.rs | 10 ++--- src/lir/env.rs | 73 +++++----------------------------- src/lir/expr/const_expr.rs | 28 ++----------- src/lir/expr/declaration.rs | 11 ----- src/lir/expr/expression.rs | 27 +------------ src/lir/expr/procedure/poly.rs | 15 ------- src/lir/types/check.rs | 61 +--------------------------- src/lir/types/inference.rs | 9 ----- 8 files changed, 22 insertions(+), 212 deletions(-) diff --git a/src/lir/compile.rs b/src/lir/compile.rs index 7322b0c4..eded37b6 100644 --- a/src/lir/compile.rs +++ b/src/lir/compile.rs @@ -1078,11 +1078,11 @@ impl Compile for ConstExpr { } Self::Type(t) => { - match t.simplify(env)? { - Type::ConstParam(cexpr) => cexpr.compile_expr(env, output)?, - _ => { - return Err(Error::UnsizedType(ty)); - } + if t.is_const_param() { + let cexpr = t.simplify_until_const_param(env, false)?; + cexpr.compile_expr(env, output)? + } else { + return Err(Error::UnsizedType(ty)); } } Self::Member(container, member) => { diff --git a/src/lir/env.rs b/src/lir/env.rs index afeebdcc..f120fcf4 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -288,11 +288,11 @@ impl Env { } } - // if ty_args.len() != ty_params.len() { - // error!("Mismatched number of template arguments for {monomorph} of {template}"); - // error!("Expected {ty_params:?}, found {ty_args:?}"); - // continue; - // } + if ty_args.len() != ty_params.len() { + error!("Mismatched number of template arguments for {monomorph} of {template}"); + error!("Expected {ty_params:?}, found {ty_args:?}"); + continue; + } debug!( "Associated constants for {monomorph} are {:?}", @@ -301,8 +301,7 @@ impl Env { if let Some((_, const_ty)) = template_associated_consts.get(name) { debug!("Found cached associated const (type) {name} of type {const_ty}"); - // let result = const_ty.apply(ty_args.clone()).simplify_until_simple(self).ok()?; - // let result = const_ty.apply(ty_args.clone()); + let result = const_ty.apply(ty_args.clone().into_iter().map(|x|x.0).collect()); match result.simplify_until_simple(self, false) { Ok(result) => { @@ -312,13 +311,8 @@ impl Env { Err(_err) => { debug!("Found associated const (type) {name} of type {ty} = {result} (failed to simplify)"); return Some(result); - // debug!("Failed to simplify associated const (type) {name} of type {ty} = {result}"); - // debug!("Error: {err}"); - // continue; } } - // debug!("Found associated const (type) {name} of type {ty} = {result}"); - // return Some(result); } debug!("Could not find associated const {name} of type {ty} in {template}"); @@ -548,7 +542,7 @@ impl Env { } pub(super) fn has_any_associated_const(&self, ty: &Type) -> bool { - // trace!("Checking if type {ty} has any associated constants"); + trace!("Checking if type {ty} has any associated constants"); let associated_constants = self.associated_constants.read().unwrap(); if let Some(consts) = associated_constants.get(ty) { if !consts.is_empty() { @@ -561,7 +555,7 @@ impl Env { continue; } if !ty.can_decay_to(other_ty, self).unwrap_or(false) { - // trace!("Type {other_ty} does not equal {ty}"); + trace!("Type {other_ty} does not equal {ty}"); continue; } trace!("Found eligible type {other_ty} for {ty}"); @@ -859,13 +853,10 @@ impl Env { for (name, associated_const) in impls { let templated_const = - // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect()); - // associated_const.template(template_params.clone()); associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect()); self.add_associated_const(*template.clone(), name, templated_const)?; } } else { - // ty.add_monomorphized_associated_consts(self)?; for (name, associated_const) in impls { self.add_associated_const(ty.clone(), name, associated_const.clone())?; } @@ -875,24 +866,8 @@ impl Env { // })?; } } - Declaration::Var(_, _, Some(_ty), _e) => { - // ty.add_monomorphized_associated_consts(self).ok(); - // if let Ok(ty) = e.get_type(self) { - // ty.add_monomorphized_associated_consts(self).ok(); - // } - } - Declaration::Var(_, _, _, _e) => { - // Variables are not defined at compile-time. - // if let Ok(ty) = e.get_type(self) { - // ty.add_monomorphized_associated_consts(self).ok(); - // } - } - Declaration::VarPat(_, _e) => { - // Variables are not defined at compile-time. - // if let Ok(ty) = e.get_type(self) { - // ty.add_monomorphized_associated_consts(self).ok(); - // } - } + Declaration::Var(_, _, _, _) => {} + Declaration::VarPat(_, _) => {} Declaration::Many(decls) => { for decl in decls.iter() { self.add_compile_time_declaration(decl)?; @@ -1042,34 +1017,7 @@ impl Env { pub fn define_types(&mut self, types: Vec<(String, Type)>) { for (name, ty) in types { self.define_type(name, ty) - // match &ty { - // Type::Symbol(sym) if sym == name => { - // trace!("Defining type {ty} to itself as {name}"); - // } - // _ => { - // if self.types.contains_key(name) { - // debug!("Redefining type {name} in {self}"); - // } else { - // trace!("Defining type {name} as {ty}"); - // Arc::make_mut(&mut self.consts) - // .insert(name.clone(), ConstExpr::Type(ty.clone())); - // Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone()); - // } - // } - // } } - - // for (_, ty) in types { - // if let Ok(simplified) = ty.simplify_until_concrete(self, false) { - // if let Ok(size) = simplified.get_size(self) { - // self.set_precalculated_size(simplified, size); - // } else { - // debug!("Failed to memoize type size for {simplified}"); - // } - // } else { - // debug!("Failed to simplify type {ty}"); - // } - // } } /// Get a type definition from this environment. @@ -1240,7 +1188,6 @@ impl Env { let size = if compiling { ty.get_size(self)? } else { - // ty.get_size(self).unwrap_or(0) 0 } as isize; // Remember the offset of the variable under the current scope. diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index a5b7453c..94ce04ca 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -359,7 +359,6 @@ impl ConstExpr { } debug!("Member access not implemented for: {container_ty} . {member}"); return Err(Error::MemberNotFound((*container).into(), member)); - // return container.eval_checked(env, i)?.field(member).eval(env) } _ => { if let Ok(Some((constant, _))) = member @@ -397,10 +396,6 @@ impl ConstExpr { } else { Ok(Self::Type(ty.clone())) } - // match ty.clone().simplify(env)? { - // Type::ConstParam(cexpr) => , - // ty => Ok(Self::Type(ty.clone())) - // } } Self::Declare(bindings, expr) => { @@ -599,24 +594,12 @@ impl GetType for ConstExpr { Self::Type(t) => { debug!("Getting type of type {t}"); - let result = if t.is_const_param() { + if t.is_const_param() { let cexpr = t.simplify_until_const_param(env, false)?; cexpr.get_type(env)? } else { Type::Type(t.into()) - }; - // let result = match t.clone().simplify(env)? { - // Type::ConstParam(cexpr) => cexpr.get_type(env)?, - // t => Type::Type(t.into()) - // }; - // let result = if let Type::ConstParam(cexpr) = t.clone().simplify(env)? { - // // Type::ConstParam(cexpr.eval(env)?.into()) - // cexpr.get_type(env)? - // } else { - // Type::Type(t.clone().into()) - // }; - // debug!("Got type of type {t} = {result}"); - result + } } Self::Member(val, field) => { @@ -628,7 +611,7 @@ impl GetType for ConstExpr { let val_type = val.get_type_checked(env, i)?; debug!("Got type of container access {val} . {field}\nContainer: {val_type:?}, is_const_param: {}", val_type.is_const_param()); - // val_type.add_monomorphized_associated_consts(env)?; + // Get the type of the value to get the member of. let val_type = val_type.simplify_until_concrete(env, false)?; match &val_type { @@ -728,7 +711,6 @@ impl GetType for ConstExpr { t.clone() } else { // If the field is not in the union, return an error. - // return Err(Error::MemberNotFound((*val.clone()).into(), (*field.clone()).into())); return ConstExpr::Member( ConstExpr::Type(val_type).into(), field.clone(), @@ -805,8 +787,6 @@ impl GetType for ConstExpr { for ((param, ty), ty_arg) in params.iter().zip(ty_args.iter()) { if ty_arg.is_const_param() { let cexpr = ty_arg.simplify_until_const_param(env, false)?; - // if let Type::ConstParam(cexpr) = ty_arg { - // let cexpr = *cexpr.clone(); if let Some(expected_ty) = ty { let expected = expected_ty.clone(); let found = cexpr.get_type_checked(env, i)?; @@ -828,7 +808,7 @@ impl GetType for ConstExpr { ret } _ => { - // debug!("Monomorphizing non-template: {expr}"); + debug!("Monomorphizing non-template: {expr}"); Type::Apply(Box::new(template_ty.clone()), ty_args.clone()) } }; diff --git a/src/lir/expr/declaration.rs b/src/lir/expr/declaration.rs index 845e82da..7753c0dc 100644 --- a/src/lir/expr/declaration.rs +++ b/src/lir/expr/declaration.rs @@ -511,9 +511,6 @@ impl TypeCheck for Declaration { let bindings = pat.get_bindings(expr, &ty, env)?; // Get the size of all the bindings let size_of_bindings = bindings - // .iter() - // .map(|(_name, (_mut, ty))| ty.get_size(env).unwrap_or(0)) - // .sum::(); .values() .collect::>() .par_iter() @@ -571,8 +568,6 @@ impl TypeCheck for Declaration { for (name, associated_const) in impls { let templated_const = - // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect()); - // associated_const.template(template_params.clone()); associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect()); new_env.add_associated_const( *template.clone(), @@ -586,10 +581,6 @@ impl TypeCheck for Declaration { // If we are at the limit of parallel recursion, then we should // type check the associated constants sequentially. - // for templated_const in templated_consts { - // templated_const.type_check(&new_env)?; - // } - templated_consts .par_iter() .try_for_each(|templated_const| templated_const.type_check(&new_env))?; @@ -674,7 +665,6 @@ impl TypeCheck for Declaration { let mut new_env = env.clone(); // Add all the compile-time declarations to the environment. - // new_env.add_compile_time_declaration(&Self::Many(decls.clone()))?; new_env.add_declaration(&Self::Many(decls.clone()), false)?; trace!("Typechecking module {}", name); // Get all the compile time declarations so we can type check them in parallel. @@ -682,7 +672,6 @@ impl TypeCheck for Declaration { .iter() .partition(|decl| decl.is_compile_time_declaration()); - // trace!("Compile time declarations: {:?}", comp_time_decls); if !comp_time_decls.is_empty() { // Type check all the compile time declarations in parallel. comp_time_decls diff --git a/src/lir/expr/expression.rs b/src/lir/expr/expression.rs index c0335428..7c5f1010 100644 --- a/src/lir/expr/expression.rs +++ b/src/lir/expr/expression.rs @@ -236,7 +236,6 @@ impl Expr { // Check if the value actually has a member with this name. let val_type = val.get_type(env)?; - // val_type.add_monomorphized_associated_consts(env)?; trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type); // If the value has a member with this name, trace!(target: "member", "WHOOP WHOOP"); @@ -246,21 +245,12 @@ impl Expr { error!(target: "member", "Symbol not defined: {name} while getting member"); Error::SymbolNotDefined(name.clone()) })?; - // .monomorphize(ty_args.clone()); associated_function = associated_function.monomorphize(ty_args.clone()); associated_function_type = associated_function_type.apply(ty_args.clone()); - // let associated_function = ConstExpr::Type(val_type.clone()) - // .field(*member) - // .monomorphize(ty_args.clone()); + trace!(target: "member", "function value: {associated_function} in {env}"); - // Get the type of the function - // let associated_function_type = env - // .get_type_of_associated_const(&val_type, &name) - // .ok_or_else(|| Error::SymbolNotDefined(name))? - // .apply(ty_args); - // trace!(target: "member", "got function type: {}", associated_function_type); let mut new_args = vec![]; if let Some(expected_mutability) = @@ -313,7 +303,6 @@ impl Expr { let name = name?; // Check if the value actually has a member with this name. let val_type = val.get_type(env)?; - // val_type.add_monomorphized_associated_consts(env)?; trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type); // If the value has a member with this name, trace!(target: "member", "WHOOP WHOOP"); @@ -325,18 +314,9 @@ impl Expr { Error::SymbolNotDefined(name.clone()) })?; - // let associated_function = env - // .get_associated_const(&val_type, &name) - // .ok_or_else(|| Error::SymbolNotDefined(name.clone()))?; - // let associated_function = ConstExpr::Type(val_type.clone()) - // .field(*member) - // .monomorphize(ty_args.clone()); trace!(target: "member", "function value: {associated_function} in {env}"); // Get the type of the function - // let associated_function_type = env - // .get_type_of_associated_const(&val_type, &name) - // .ok_or_else(|| Error::SymbolNotDefined(name))?; trace!(target: "member", "got function type: {}", associated_function_type); // Get the first argument's type let mut new_args = vec![]; @@ -385,7 +365,6 @@ impl Expr { let name = name?; // Check if the value actually has a member with this name. let val_type = val.get_type(env)?; - // val_type.add_monomorphized_associated_consts(env)?; trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type); // If the value has a member with this name, trace!(target: "member", "WHOOP WHOOP"); @@ -398,10 +377,6 @@ impl Expr { trace!(target: "member", "function value: {associated_function} in {env}"); // Get the type of the function - // let associated_function_type = env - // .get_type_of_associated_const(&val_type, &name) - // .ok_or_else(|| Error::SymbolNotDefined(name))? - // .clone(); trace!(target: "member", "got function type: {}", associated_function_type); // Get the first argument's type let mut new_args = vec![]; diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index 62f6fbd7..3e87d616 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -119,21 +119,6 @@ impl PolyProcedure { // This is a helper function to distribute the defined type // arguments over the body and arguments of the function. - // for ((_name, ty_param), ty_arg) in self.ty_params.iter().zip(ty_args.iter()) { - // if let Some(ty_param) = ty_param { - // if !ty_param.equals(&ty_arg, env)? { - // return Err(Error::MismatchedTypes { expected: ty_param.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) }) - // } - // } else { - // use crate::lir::Simplify; - // if matches!(ty_arg.clone().simplify(env)?, Type::ConstParam(..)) { - // return Err(Error::UnexpectedConstParam { - // found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) - // }) - // } - // } - // } - // Simplify all the type arguments until they are concrete let simplified_ty_args = ty_args .clone() diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index a19b2e6e..97e45ce1 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -513,29 +513,6 @@ impl TypeCheck for Expr { Type::Array(_, _) => { inner.refer(*expected_mutability).type_check(env)?; } - // Type::Type(ty) => match *ty { - // // If we are dereferencing/indexing a pointer, - // // confirm that the inner pointer has the expected mutability. - // Type::Pointer(found_mutability, _) => { - // if !found_mutability.can_decay_to(expected_mutability) { - // // If if doesn't, then return an error. - // error!("Expected mutability {expected_mutability} for expression {self}, but found mutability {found_mutability} in environment {env}"); - // return Err(Error::MismatchedMutability { - // expected: *expected_mutability, - // found: found_mutability, - // expr: self.clone(), - // }); - // } - // } - - // // If we are indexing an array, confirm that the inner array can be referenced with the expected mutability. - // Type::Array(_, _) => { - // inner.refer(*expected_mutability).type_check(env)?; - // } - // ty => { - // warn!("Unexpected deref of type {ty}"); - // } - // } ty => { warn!("Unexpected deref of type {ty}"); @@ -938,10 +915,6 @@ impl TypeCheck for Expr { // Confirm that the type is an array or pointer. match val_type { Type::Array(_, _) | Type::Pointer(_, _) => {} - // Type::Type(ty) => match *ty { - // Type::Array(_, _) | Type::Pointer(_, _) => {} - // _ => return Err(Error::InvalidIndex(self.clone())), - // } // If it isn't, return an error. _ => return Err(Error::InvalidIndex(self.clone())), } @@ -980,20 +953,8 @@ impl TypeCheck for ConstExpr { new_env.define_type(name, Type::Unit(name.clone(), Box::new(Type::None))) } } - // // Define the type parameters in the environment. - // new_env.define_types( - // ty_params - // .clone() - // .into_iter() - // .map(|(p, ty)| (p.clone(), match ty { - // Some(ty) => ty.clone(), - // None => Type::Unit(p, Box::new(Type::None)) - // })) - // .collect(), - // ); // Check the template type. template.type_check(&new_env) - // Ok(()) } Self::Annotated(expr, metadata) => expr @@ -1009,7 +970,6 @@ impl TypeCheck for ConstExpr { e.type_check(env)?; // Get the type of the expression. let e_type = e.get_type(env)?; - // e_type.add_monomorphized_associated_consts(env)?; // Typecheck the member we want to access. match e_type.type_check_member(field, &Expr::ConstExpr(*e.clone()), env) { Ok(_) => Ok(()), @@ -1073,17 +1033,11 @@ impl TypeCheck for ConstExpr { Self::Template(ref ty_params, ref template) => { // Create a new environment with the type parameters defined. // Define the type parameters in the environment. - // new_env.define_types( - // ty_params.clone().into_iter().map(|x| x.0).zip(ty_args.clone()).collect(), - // ); - let mut ret = template.clone(); let mut new_env = env.clone(); for ((param, ty), ty_arg) in ty_params.iter().zip(ty_args.iter()) { if ty_arg.is_const_param() { let cexpr = ty_arg.simplify_until_const_param(env, true)?; - // if let Type::ConstParam(cexpr) = ty_arg { - // let cexpr = *cexpr.clone(); if let Some(expected_ty) = ty { let expected = expected_ty.clone(); let found = cexpr.get_type(env)?; @@ -1104,13 +1058,11 @@ impl TypeCheck for ConstExpr { .simplify_until_poly(&new_env, true)?; // Check the template type. ret.type_check(&new_env) - // Ok(()) } Self::PolyProc(ref poly) => { - // poly.monomorphize(ty_args.clone(), env)?.type_check(env) // Create a new environment with the type parameters defined. let mut new_env = env.clone(); - // // Define the type parameters in the environment. + // Define the type parameters in the environment. new_env.define_types( poly.get_type_params() .clone() @@ -1119,21 +1071,12 @@ impl TypeCheck for ConstExpr { .zip(ty_args.clone()) .collect(), ); - // // Check the template type. + // Check the template type. poly.type_check(env) - // Ok(()) } _ => { self.get_type(env)?.type_check(env)?; expr.type_check(env)?; - // if let Self::PolyProc(poly) = *expr.clone() { - // poly.type_check(env)? - // } - /* - for ty in ty_args { - ty.type_check(env)?; - } - */ ty_args .into_par_iter() .try_for_each(|ty| ty.type_check(env))?; diff --git a/src/lir/types/inference.rs b/src/lir/types/inference.rs index d7e1ff1b..3fd7b831 100644 --- a/src/lir/types/inference.rs +++ b/src/lir/types/inference.rs @@ -317,8 +317,6 @@ impl GetType for Expr { // val_type.add_monomorphized_associated_consts(env)?; match val_type { Type::Type(ty) => { - // ty.add_monomorphized_associated_consts(env)?; - // Get the associated constant expression's type. env.get_type_of_associated_const(&ty, &as_symbol?) .ok_or(Error::MemberNotFound(*val.clone(), field.clone()))? @@ -414,13 +412,6 @@ impl GetType for Expr { // Only arrays and pointers can be indexed. Type::Array(item, _) => *item, Type::Pointer(_, item) => *item, - // Type::Type(ty) => { - // match *ty { - // Type::Array(item, _) => *item, - // Type::Pointer(_, item) => *item, - // _ => return Err(Error::InvalidIndex(self.clone())), - // } - // } // If we're accessing an index of a type that is not an array or pointer, // we cannot access an index. From ced28fcdc5b9f390ee4f6b956879219ddb402698 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sun, 8 Sep 2024 05:13:27 -0400 Subject: [PATCH 24/29] Added comments, removed old code --- src/lir/types/mod.rs | 111 +++++++++---------------------------------- 1 file changed, 23 insertions(+), 88 deletions(-) diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 49f0c07e..bc017e8b 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -220,8 +220,10 @@ impl Type { self.is_recursive_helper(&mut symbols, env) } + /// Is this type a constant parameter? + /// + /// This will recursively detect if the subtypes are constant parameters as well pub fn is_const_param(&self) -> bool { - // matches!(self, Type::ConstParam(..)) match self { Type::ConstParam(..) => true, Type::Struct(fields) => fields.iter().map(|(_name, ty)| ty).all(Self::is_const_param), @@ -231,6 +233,7 @@ impl Type { } } + /// Discard the wrappers of Type::Type and Type::Unit pub(crate) fn discard_type_wrapper(self) -> Self { match self { Self::Type(ty) | Self::Unit(_, ty) => *ty, @@ -238,6 +241,7 @@ impl Type { } } + /// Is this type recursive? pub fn is_recursive_helper( &self, symbols: &mut HashSet, @@ -364,6 +368,7 @@ impl Type { result } + /// Strip the template arguments to get the inner type pub fn strip_template(&self, env: &Env) -> Self { debug!("strip_template: {}", self); match self { @@ -382,10 +387,13 @@ impl Type { } } + /// Is this a polymorphic function? pub fn is_poly(&self) -> bool { matches!(self, Self::Poly(_, _)) } + /// Get the template arguments for the monomorph (this type) of some polymorphic base type. + /// This will match the symbols in the template against the monomorph. pub fn get_monomorph_template_args( &self, template: &Self, @@ -539,6 +547,7 @@ impl Type { Ok(()) } + /// Is this type a monomorph of a given template type? pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result { debug!("{self} is mono of {template}?"); let result = match (self, template) { @@ -572,7 +581,6 @@ impl Type { (Self::Array(elem1, len1), Self::Array(elem2, len2)) => { return Ok(elem1.is_monomorph_of(elem2, env)? && len1.get_type(env)?.equals(&len2.get_type(env)?, env)?) - // return Ok(elem1.is_monomorph_of(elem2, env)?) } (Self::ConstParam(cexpr), other) => cexpr.get_type(env)?.equals(other, env), @@ -587,8 +595,8 @@ impl Type { result } + /// Add monomorphized methods for a given monomorph of a template type with methods. pub fn add_monomorphized_associated_consts(&self, env: &Env) -> Result<(), Error> { - // warn!("add_monomorphized_associated_consts: Adding monomorphized associated consts for {}", self); match self.clone() { Self::Apply(template, args) => { let simplified_args = args @@ -598,7 +606,6 @@ impl Type { let mut mono_ty = Self::Apply(template.clone(), simplified_args.clone()); mono_ty = mono_ty.simplify_until_concrete(env, false)?; - // warn!("add_monomorphized_associated_consts: Adding monomorphized associated consts for {self} to {}", mono_ty); env.add_monomorphized_associated_consts(*template, mono_ty, simplified_args)?; } @@ -665,26 +672,16 @@ impl Type { Ok(()) } + /// Get the template parameters for this template type. pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option)> { debug!("get_template_params: {}", self); match self.simplify_until_poly(env, false) { Ok(Self::Poly(params, _)) => { - // debug!( - // "get_template_params: {} params: {}", - // self, - // params.join(", ") - // ); params.clone() } Ok(Self::Symbol(name)) => { if let Some(t) = env.get_type(&name) { - let result = t.get_template_params(env); - // debug!( - // "get_template_params: {} params: {}", - // name, - // result.join(", ") - // ); - result + t.get_template_params(env) } else { debug!("get_template_params: Couldn't find type {}", name); vec![] @@ -700,6 +697,7 @@ impl Type { } } + /// Apply this template type with some type arguments. pub fn apply(&self, args: Vec) -> Self { Self::Apply(Box::new(self.clone()), args) } @@ -759,6 +757,10 @@ impl Type { } } + /// Is this type simplified enough to get information about what the + /// outer type is? Is it a tuple, a struct, etc? + /// + /// Symbols and polymorphic types do not satisfy this condition. pub fn is_concrete(&self) -> bool { match self { Self::Poly(_, _) | Self::Symbol(_) | Self::Apply(_, _) | Self::Let(_, _, _) => false, @@ -807,8 +809,7 @@ impl Type { Self::Pointer(_, inner) => inner.is_atomic(), Self::Struct(inner) => inner.iter().all(|(_, t)| t.is_atomic()), Self::EnumUnion(inner) => inner.iter().all(|(_, t)| t.is_atomic()), - // Self::Poly(_, _) | Self::Symbol(_) | Self::Apply(_, _) => false, - // Self::Let(_, _, ret) => ret.is_atomic(), + _ => false, } } @@ -857,6 +858,7 @@ impl Type { .simplify_until_matches(env, Type::Any, |t, env| t.type_check(env).map(|_| true), true) } + /// Does this type possibly have some members/fields? fn possibly_has_members(&self) -> bool { if matches!( self, @@ -885,6 +887,7 @@ impl Type { result } + /// Is this a union type? fn is_union(&self) -> bool { if matches!(self, Self::Union(_) | Self::EnumUnion(_)) { return true; @@ -908,6 +911,7 @@ impl Type { result } + /// Does this type have enum variants? fn has_variants(&self) -> bool { if matches!(self, Self::Enum(_) | Self::EnumUnion(_)) { return true; @@ -931,6 +935,7 @@ impl Type { result } + /// Is this type polymorphic? fn is_polymorphic(&self) -> bool { if matches!(self, Self::Poly(_, _)) { return true; @@ -988,26 +993,6 @@ impl Type { result } - - // /// Simplify until the type is concrete. - // pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result { - // let mut simplified = self.clone(); - // for _ in 0..4 { - // if let Self::ConstParam(cexpr) = simplified { - // return Ok(*cexpr); - // } - // simplified = simplified.simplify(env)?; - // } - // // if result.is_err() { - // // debug!("Couldn't simplify {} to a constant param", self); - // // } - - // match simplified { - // Type::ConstParam(cexpr) => Ok(*cexpr), - // result => panic!("Unexpected {result}") - // } - // } - /// Simplify until the type is concrete. pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result { let mut simplified = self.clone(); @@ -1059,9 +1044,6 @@ impl Type { other => other }; } - // if result.is_err() { - // debug!("Couldn't simplify {} to a constant param", self); - // } match simplified { Type::ConstParam(cexpr) => Ok(*cexpr), @@ -1170,7 +1152,6 @@ impl Type { /// Substitute all occurences of a symbol with another type. /// This will not traverse into let-bindings when the symbol is overshadowed. pub fn substitute(&self, name: &str, substitution: &Self) -> Self { - // warn!("Subbing {name} for {substitution} in {self}"); let result = match self { Self::Type(t) => Self::Type(Box::new(t.substitute(name, substitution))), Self::Let(typename, binding, ret) => Self::Let( @@ -1281,7 +1262,6 @@ impl Type { Self::Pointer(*mutability, Box::new(ptr.substitute(name, substitution))) } }; - // warn!("Got back {result}"); result } @@ -1310,18 +1290,7 @@ impl Type { return Ok(true); } - // if !self.is_simple() || !desired.is_simple() { - // return Ok(false); - // } - match (self, desired) { - // (Type::Type(ty), desired) => { - // ty.can_decay_to(desired, env) - // } - // (ty, Type::Type(desired)) => { - // ty.can_decay_to(desired, env) - // } - // (Self::Unit(_, inner), _) => inner.can_decay_to(desired, env), (Self::Unit(name1, t1), Self::Unit(name2, t2)) => { if name1 == name2 { t1.can_decay_to(t2, env) @@ -1432,23 +1401,6 @@ impl Type { trace!("{} can decay to {}", self, desired); Ok(true) } - - // (Type::Apply(f, args), other) => { - // match *f.clone() { - // Type::Poly(params, template) => { - // let mut template = *template.clone(); - // for (param, arg) in params.iter().zip(args.iter()) { - // template = template.substitute(param, arg); - // } - // template.can_decay_to(other, env) - // } - - // } - // // let mut f = f.clone(); - // // for arg in args { - // // f = f.substitute(, substitution) - // // } - // } (Type::Cell, Type::Int) | (Type::Int, Type::Cell) => Ok(true), (a, b) => a.equals(b, env), @@ -1767,7 +1719,6 @@ impl Type { ); return Ok(false); } - // trace!("Checking if {} equals {}", self, other); let i = i + 1; @@ -2408,25 +2359,9 @@ impl Simplify for Type { ), Self::Apply(poly, ty_args) => { - // let poly_clone = poly.clone(); - // match *poly { - // Self::Poly(params, mut result) => { - // for (param, arg) in params.iter().zip(ty_args.iter()) { - // *result = result.substitute(param, arg); - // } - // // *result = result.simplify_checked(env, i)?; - - // // Add mono type to environment - // env.add_monomorphized_associated_consts(*poly_clone, *result.clone(), ty_args)?; - // *result - // } - // _ => Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args) - // } - Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args) } }; - // warn!("Simplified {_s} into {result}"); Ok(result) } } From daaad1e11e8fd150c819bfa3d765672fc4e9eb9a Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sun, 8 Sep 2024 05:27:59 -0400 Subject: [PATCH 25/29] Added more const generics to examples --- examples/frontend/const-generics-enum.sg | 74 ++++++++++++++++++++ examples/test-output/const-generics-enum.txt | 2 + 2 files changed, 76 insertions(+) create mode 100644 examples/frontend/const-generics-enum.sg create mode 100644 examples/test-output/const-generics-enum.txt diff --git a/examples/frontend/const-generics-enum.sg b/examples/frontend/const-generics-enum.sg new file mode 100644 index 00000000..914106e9 --- /dev/null +++ b/examples/frontend/const-generics-enum.sg @@ -0,0 +1,74 @@ + + +fun exit(code: Int): ! { + while True {} +} + +fun panic(msg: &Char): ! { + for let mut i=0; msg[i] != '\0'; i+=1; { + print(msg); + } + println(); + debug(); + exit(1); +} + +enum List { + Cons(T, &List), + Nil +} + +impl List { + fun make(value: T): List { + return List of Cons(value, new List of Nil); + } + + fun cons(list: List, value: T): List { + return List of Cons(value, new list); + } + + fun head(self: &List): T { + match self { + &of Cons(head, _) => head, + _ => panic(&"head of empty list") + } + } + + fun tail(self: &List): &List { + match self { + &of Cons(_, tail) => tail, + _ => panic(&"tail of empty list") + } + } + + fun print(self: &List) { + match self { + &of Cons(head, tail) => { + print(head); + print(" "); + tail.print(); + }, + _ => {} + } + } + + fun println(self: &List) { + self.print(); + println(" (special number=", N, ")"); + } + + fun map(self, f: fun(T) -> U): List { + match self { + of Cons(head, tail) => { + let map = tail.map(f); + map.cons(f(head)) + }, + _ => List of Nil + } + } +} + +let l = List.make(1); +let l2 = List.make(2).cons(1); +l.println(); +l2.println(); \ No newline at end of file diff --git a/examples/test-output/const-generics-enum.txt b/examples/test-output/const-generics-enum.txt new file mode 100644 index 00000000..ffbc102f --- /dev/null +++ b/examples/test-output/const-generics-enum.txt @@ -0,0 +1,2 @@ +1 (special number=999) +1 2 (special number=555) From 84b5218c424cfdec47177111f0ec2771628cacf9 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sun, 8 Sep 2024 05:44:46 -0400 Subject: [PATCH 26/29] Added to examples, fixed bug where consts couldn't be symbols --- examples/frontend/const-generics-enum.sg | 26 ++++++--- examples/test-output/const-generics-enum.txt | 4 +- src/lir/expr/const_expr.rs | 61 +++++++++++--------- src/lir/types/check.rs | 2 +- src/lir/types/mod.rs | 2 + 5 files changed, 57 insertions(+), 38 deletions(-) diff --git a/examples/frontend/const-generics-enum.sg b/examples/frontend/const-generics-enum.sg index 914106e9..7f25dcb8 100644 --- a/examples/frontend/const-generics-enum.sg +++ b/examples/frontend/const-generics-enum.sg @@ -23,21 +23,21 @@ impl List { return List of Cons(value, new List of Nil); } - fun cons(list: List, value: T): List { - return List of Cons(value, new list); + fun cons(List: List, value: T): List { + return List of Cons(value, new List); } fun head(self: &List): T { match self { &of Cons(head, _) => head, - _ => panic(&"head of empty list") + _ => panic(&"head of empty List") } } fun tail(self: &List): &List { match self { &of Cons(_, tail) => tail, - _ => panic(&"tail of empty list") + _ => panic(&"tail of empty List") } } @@ -68,7 +68,17 @@ impl List { } } -let l = List.make(1); -let l2 = List.make(2).cons(1); -l.println(); -l2.println(); \ No newline at end of file +const N = 555; +let l1 = List.make(1); +let l2 = List.make(2.0).cons(1.0); + +fun dub_int(n: Int): Int = n * 2; +fun dub_float(n: Float): Float = n * 2.0; + +l1.println(); +l2.println(); + +let l3 = l1.map(dub_int); +let l4 = l2.map(dub_float); +l3.println(); +l4.println(); \ No newline at end of file diff --git a/examples/test-output/const-generics-enum.txt b/examples/test-output/const-generics-enum.txt index ffbc102f..c4d9ad8a 100644 --- a/examples/test-output/const-generics-enum.txt +++ b/examples/test-output/const-generics-enum.txt @@ -1,2 +1,4 @@ 1 (special number=999) -1 2 (special number=555) +1.0 2.0 (special number=555) +2 (special number=999) +2.0 4.0 (special number=555) diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index 94ce04ca..6b68fc2c 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -405,37 +405,42 @@ impl ConstExpr { Ok(expr.eval_checked(&new_env, i)?.with(bindings)) } - Self::Monomorphize(expr, ty_args) => Ok(match expr.clone().eval(env)? { - Self::Template(params, ret) => { - if params.len() != ty_args.len() { - return Err(Error::InvalidMonomorphize(*expr)); - } - let mut ret = ret.clone(); + Self::Monomorphize(expr, ty_args) => { + // let ty_args = ty_args.into_iter().map(|t| t.simplify(env)).collect::, _>>()?; + debug!("Monomorphizing {expr} with ty_args {ty_args:?}"); + + Ok(match expr.clone().eval(env)? { + Self::Template(params, ret) => { + if params.len() != ty_args.len() { + return Err(Error::InvalidMonomorphize(*expr)); + } + let mut ret = ret.clone(); - for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) { - ret.substitute(param, ty_arg); + for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) { + ret.substitute(param, ty_arg); + } + *ret } - *ret - } - Self::PolyProc(proc) => { - Self::Proc(proc.monomorphize(ty_args.clone(), env)?) - }, - Self::Declare(bindings, expr) => { - let mut new_env = env.clone(); - new_env.add_compile_time_declaration(&bindings)?; - expr.monomorphize(ty_args.clone()) - .eval_checked(&new_env, i)? - .with(bindings) - } - Self::Annotated(_inner, metadata) => expr - .monomorphize(ty_args.clone()) - .eval_checked(env, i) - .map_err(|x| x.annotate(metadata))?, + Self::PolyProc(proc) => { + Self::Proc(proc.monomorphize(ty_args.clone(), env)?) + }, + Self::Declare(bindings, expr) => { + let mut new_env = env.clone(); + new_env.add_compile_time_declaration(&bindings)?; + expr.monomorphize(ty_args.clone()) + .eval_checked(&new_env, i)? + .with(bindings) + } + Self::Annotated(_inner, metadata) => expr + .monomorphize(ty_args.clone()) + .eval_checked(env, i) + .map_err(|x| x.annotate(metadata))?, - _other => { - Self::Monomorphize(Box::new(expr.eval_checked(env, i)?), ty_args.clone()) - } - }), + _other => { + Self::Monomorphize(Box::new(expr.eval_checked(env, i)?), ty_args.clone()) + } + }) + }, Self::TypeOf(expr) => Ok(Self::Array( expr.get_type_checked(env, i)? diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index 97e45ce1..ba7a7bb2 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -48,7 +48,7 @@ impl TypeCheck for Type { // Symbols are sound if they are defined in the environment Self::Symbol(name) => { - if env.get_type(name).is_some() { + if env.get_type(name).is_some() || env.get_const(name).is_some() { Ok(()) } else { debug!("Type {name} not defined in environment {env}"); diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index bc017e8b..fa6e03c4 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -2292,6 +2292,8 @@ impl Simplify for Type { Self::Symbol(ref name) => { if let Some(t) = env.get_type(name) { t.clone() + } else if let Some(cexpr) = env.get_const(name) { + Type::ConstParam(cexpr.clone().into()) } else { self.clone() } From 9c996c60400032a427146dc305adea43ca18c815 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sun, 8 Sep 2024 05:49:18 -0400 Subject: [PATCH 27/29] Improved web example --- docs/sage/lir/enum.ConstExpr.html | 6 +- docs/sage/lir/enum.Declaration.html | 18 +- docs/sage/lir/enum.Expr.html | 112 +++---- docs/sage/lir/enum.Type.html | 76 +++-- docs/sage/lir/struct.Env.html | 12 +- docs/sage/lir/struct.PolyProcedure.html | 10 +- docs/sage/lir/struct.Procedure.html | 2 +- docs/sage/lir/trait.GetType.html | 4 +- docs/sage/lir/trait.Simplify.html | 2 +- docs/sage/lir/trait.TypeCheck.html | 4 +- docs/sage/web/index.html | 12 +- docs/sage/web/web_bg.wasm | Bin 2355888 -> 2358270 bytes docs/search-index.js | 2 +- docs/src/sage/frontend/mod.rs.html | 2 +- docs/src/sage/frontend/parse.rs.html | 292 ++---------------- docs/src/sage/lir/compile.rs.html | 10 +- docs/src/sage/lir/env.rs.html | 148 ++------- docs/src/sage/lir/expr/const_expr.rs.html | 114 +++---- docs/src/sage/lir/expr/declaration.rs.html | 28 +- docs/src/sage/lir/expr/expression.rs.html | 68 +--- docs/src/sage/lir/expr/procedure/poly.rs.html | 30 -- docs/src/sage/lir/types/check.rs.html | 142 +-------- docs/src/sage/lir/types/inference.rs.html | 22 +- docs/src/sage/lir/types/mod.rs.html | 238 ++++---------- examples/web/index.html | 12 +- 25 files changed, 323 insertions(+), 1043 deletions(-) diff --git a/docs/sage/lir/enum.ConstExpr.html b/docs/sage/lir/enum.ConstExpr.html index cc86f05d..6b7a9753 100644 --- a/docs/sage/lir/enum.ConstExpr.html +++ b/docs/sage/lir/enum.ConstExpr.html @@ -90,15 +90,15 @@ output: &mut dyn AssemblyProgram ) -> Result<(), Error>
source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ConstExpr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetType for ConstExpr

source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check -recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, substitution: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for ConstExpr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ConstExpr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetType for ConstExpr

source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check +recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, substitution: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for ConstExpr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ConstExpr

source§

fn eq(&self, other: &ConstExpr) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for ConstExpr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for ConstExpr

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit the number of recursive calls to prevent stack overflow. i is a -counter to prevent infinite recursion.
source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for ConstExpr

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for ConstExpr

source§

impl Send for ConstExpr

source§

impl StructuralPartialEq for ConstExpr

source§

impl Sync for ConstExpr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +counter to prevent infinite recursion.

source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for ConstExpr

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for ConstExpr

source§

impl Send for ConstExpr

source§

impl StructuralPartialEq for ConstExpr

source§

impl Sync for ConstExpr

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.Declaration.html b/docs/sage/lir/enum.Declaration.html index 454d105e..3613cf45 100644 --- a/docs/sage/lir/enum.Declaration.html +++ b/docs/sage/lir/enum.Declaration.html @@ -35,21 +35,21 @@
§

FromImport

Fields

§module: ConstExpr

Import an element from a module.

§

FromImportAll(ConstExpr)

Implementations§

source§

impl Declaration

source

pub fn many(decls: impl Into<Vec<Self>>) -> Self

Create a collection of declarations

source

pub fn module(name: impl ToString, decls: impl Into<Vec<Self>>) -> Self

Create a module with a given name and a list of declarations

-

Trait Implementations§

source§

impl<T> Add<T> for Declaration
where - T: Into<Declaration>,

§

type Output = Declaration

The resulting type after applying the + operator.
source§

fn add(self, other: T) -> Self::Output

Performs the + operation. Read more
source§

impl<T> AddAssign<T> for Declaration
where - T: Into<Declaration>,

source§

fn add_assign(&mut self, other: T)

Performs the += operation. Read more
source§

impl Clone for Declaration

source§

fn clone(&self) -> Declaration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Declaration

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<(&str, ConstExpr)> for Declaration

source§

fn from((name, proc): (&str, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Expr)> for Declaration

source§

fn from((name, expr): (&str, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, FFIProcedure)> for Declaration

source§

fn from((name, proc): (&str, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (&str, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration

Trait Implementations§

source§

impl<T> Add<T> for Declaration
where + T: Into<Declaration>,

§

type Output = Declaration

The resulting type after applying the + operator.
source§

fn add(self, other: T) -> Self::Output

Performs the + operation. Read more
source§

impl<T> AddAssign<T> for Declaration
where + T: Into<Declaration>,

source§

fn add_assign(&mut self, other: T)

Performs the += operation. Read more
source§

impl Clone for Declaration

source§

fn clone(&self) -> Declaration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Declaration

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Declaration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<(&str, ConstExpr)> for Declaration

source§

fn from((name, proc): (&str, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Expr)> for Declaration

source§

fn from((name, expr): (&str, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, FFIProcedure)> for Declaration

source§

fn from((name, proc): (&str, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (&str, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( (name, mutability, ty, expr): (&str, Mutability, Option<Type>, Expr) -) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (&str, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, PolyProcedure)> for Declaration

source§

fn from((name, proc): (&str, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Procedure)> for Declaration

source§

fn from((name, proc): (&str, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Type)> for Declaration

source§

fn from((name, expr): (&str, Type)) -> Self

Converts to this type from the input type.
source§

impl From<(Pattern, Expr)> for Declaration

source§

fn from((pat, expr): (Pattern, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, ConstExpr)> for Declaration

source§

fn from((name, expr): (String, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Expr)> for Declaration

source§

fn from((name, expr): (String, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, FFIProcedure)> for Declaration

source§

fn from((name, proc): (String, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (String, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( +) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (&str, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, PolyProcedure)> for Declaration

source§

fn from((name, proc): (&str, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Procedure)> for Declaration

source§

fn from((name, proc): (&str, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(&str, Type)> for Declaration

source§

fn from((name, expr): (&str, Type)) -> Self

Converts to this type from the input type.
source§

impl From<(Pattern, Expr)> for Declaration

source§

fn from((pat, expr): (Pattern, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, ConstExpr)> for Declaration

source§

fn from((name, expr): (String, ConstExpr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Expr)> for Declaration

source§

fn from((name, expr): (String, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, FFIProcedure)> for Declaration

source§

fn from((name, proc): (String, FFIProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Expr)> for Declaration

source§

fn from((name, mutability, expr): (String, Mutability, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Option<Type>, Expr)> for Declaration

source§

fn from( (name, mutability, ty, expr): (String, Mutability, Option<Type>, Expr) -) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (String, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, PolyProcedure)> for Declaration

source§

fn from((name, proc): (String, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Procedure)> for Declaration

source§

fn from((name, proc): (String, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Type)> for Declaration

source§

fn from((name, ty): (String, Type)) -> Self

Converts to this type from the input type.
source§

impl<K, V> From<BTreeMap<K, V>> for Declaration

source§

fn from(bt: BTreeMap<K, V>) -> Self

Converts to this type from the input type.
source§

impl From<Box<Declaration>> for Declaration

source§

fn from(x: Box<Self>) -> Self

Converts to this type from the input type.
source§

impl<T> From<Vec<T>> for Declaration
where - T: Into<Declaration>,

source§

fn from(decls: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl Hash for Declaration

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Self

Converts to this type from the input type.
source§

impl From<(String, Mutability, Type, Expr)> for Declaration

source§

fn from((name, mutability, ty, expr): (String, Mutability, Type, Expr)) -> Self

Converts to this type from the input type.
source§

impl From<(String, PolyProcedure)> for Declaration

source§

fn from((name, proc): (String, PolyProcedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Procedure)> for Declaration

source§

fn from((name, proc): (String, Procedure)) -> Self

Converts to this type from the input type.
source§

impl From<(String, Type)> for Declaration

source§

fn from((name, ty): (String, Type)) -> Self

Converts to this type from the input type.
source§

impl<K, V> From<BTreeMap<K, V>> for Declaration

source§

fn from(bt: BTreeMap<K, V>) -> Self

Converts to this type from the input type.
source§

impl From<Box<Declaration>> for Declaration

source§

fn from(x: Box<Self>) -> Self

Converts to this type from the input type.
source§

impl<T> From<Vec<T>> for Declaration
where + T: Into<Declaration>,

source§

fn from(decls: Vec<T>) -> Self

Converts to this type from the input type.
source§

impl Hash for Declaration

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Declaration

source§

fn eq(&self, other: &Declaration) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Declaration

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Declaration

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl StructuralPartialEq for Declaration

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Declaration

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl StructuralPartialEq for Declaration

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.Expr.html b/docs/sage/lir/enum.Expr.html index 3d9ac983..755a228c 100644 --- a/docs/sage/lir/enum.Expr.html +++ b/docs/sage/lir/enum.Expr.html @@ -76,44 +76,44 @@ For unions or structures, use a Symbol constant expression to access the field.

Do NOT instantiate this directly: use the .field method on the container expression.

§

Index(Box<Self>, Box<Self>)

Index an array or pointer with an expression that evaluates to an Int at runtime.

-

Implementations§

source§

impl Expr

source

pub const NONE: Self = _

A constant expression that evaluates to None. +

Implementations§

source§

impl Expr

source

pub const NONE: Self = _

A constant expression that evaluates to None. This constant is defined so that we don’t have to write Expr::ConstExpr every time we want to use None.

-
source

pub fn print(self) -> Self

source

pub fn println(self) -> Self

source

pub fn is_method_call(&self, env: &Env) -> Result<bool, Error>

source

pub fn transform_method_call(&self, env: &Env) -> Result<Self, Error>

source

pub fn get_method_call_mutability( +

source

pub fn print(self) -> Self

source

pub fn println(self) -> Self

source

pub fn is_method_call(&self, env: &Env) -> Result<bool, Error>

source

pub fn transform_method_call(&self, env: &Env) -> Result<Self, Error>

source

pub fn get_method_call_mutability( &self, env: &Env -) -> Result<Option<Mutability>, Error>

source

pub fn annotate(&self, annotation: impl Into<Annotation>) -> Self

An annotated expression with some metadata.

-
source

pub fn with(&self, older_decls: impl Into<Declaration>) -> Self

Return this expression, but with a given declaration in scope.

-
source

pub fn hard_with(&self, older_decls: impl Into<Declaration>) -> Self

source

pub fn size_of(self) -> Self

Get the size of an expression.

-
source

pub fn as_type(self, t: Type) -> Self

Cast an expression as another type.

-
source

pub fn unop(self, op: impl ToString) -> Self

Apply a unary operation to this expression.

-
source

pub fn not(self) -> Self

Logical not this expression.

-
source

pub fn bitxor(self, other: impl Into<Self>) -> Self

Bitwise this expression with another.

-
source

pub fn bitor(self, other: impl Into<Self>) -> Self

BitwiseOr this expression with another.

-
source

pub fn bitnand(self, other: impl Into<Self>) -> Self

BitwiseOr this expression with another.

-
source

pub fn bitand(self, other: impl Into<Self>) -> Self

BitwiseAnd this expression with another.

-
source

pub fn bitnor(self, other: impl Into<Self>) -> Self

BitwiseAnd this expression with another.

-
source

pub fn bitnot(self) -> Self

BitwiseAnd this expression with another.

-
source

pub fn lt(self, other: impl Into<Self>) -> Self

Is this expression less than another?

-
source

pub fn le(self, other: impl Into<Self>) -> Self

Is this expression less than or equal to another?

-
source

pub fn gt(self, other: impl Into<Self>) -> Self

Is this expression greater than another?

-
source

pub fn ge(self, other: impl Into<Self>) -> Self

Is this expression greater than or equal to another?

-
source

pub fn eq(self, other: impl Into<Self>) -> Self

Is this expression greater than another?

-
source

pub fn neq(self, other: impl Into<Self>) -> Self

Is this expression greater than or equal to another?

-
source

pub fn and(self, other: impl Into<Self>) -> Self

Logical and this expression with another.

-
source

pub fn or(self, other: impl Into<Self>) -> Self

Logical or this expression with another.

-
source

pub fn pow(self, exp: impl Into<Self>) -> Self

Get the power of this expression to another.

-
source

pub fn add(self, other: impl Into<Self>) -> Self

Add this expression to another.

-
source

pub fn sub(self, other: impl Into<Self>) -> Self

Subtract an expression from this expression.

-
source

pub fn mul(self, other: impl Into<Self>) -> Self

Multiply this expression by another.

-
source

pub fn div(self, other: impl Into<Self>) -> Self

Divide this expression by another.

-
source

pub fn rem(self, other: impl Into<Self>) -> Self

Get the remainder of this expression divided by another.

-
source

pub fn neg(self) -> Self

Get the remainder of this expression divided by another.

-
source

pub fn field(self, field: ConstExpr) -> Self

Get a field from a structure, union, or tuple.

+) -> Result<Option<Mutability>, Error>
source

pub fn annotate(&self, annotation: impl Into<Annotation>) -> Self

An annotated expression with some metadata.

+
source

pub fn with(&self, older_decls: impl Into<Declaration>) -> Self

Return this expression, but with a given declaration in scope.

+
source

pub fn hard_with(&self, older_decls: impl Into<Declaration>) -> Self

source

pub fn size_of(self) -> Self

Get the size of an expression.

+
source

pub fn as_type(self, t: Type) -> Self

Cast an expression as another type.

+
source

pub fn unop(self, op: impl ToString) -> Self

Apply a unary operation to this expression.

+
source

pub fn not(self) -> Self

Logical not this expression.

+
source

pub fn bitxor(self, other: impl Into<Self>) -> Self

Bitwise this expression with another.

+
source

pub fn bitor(self, other: impl Into<Self>) -> Self

BitwiseOr this expression with another.

+
source

pub fn bitnand(self, other: impl Into<Self>) -> Self

BitwiseOr this expression with another.

+
source

pub fn bitand(self, other: impl Into<Self>) -> Self

BitwiseAnd this expression with another.

+
source

pub fn bitnor(self, other: impl Into<Self>) -> Self

BitwiseAnd this expression with another.

+
source

pub fn bitnot(self) -> Self

BitwiseAnd this expression with another.

+
source

pub fn lt(self, other: impl Into<Self>) -> Self

Is this expression less than another?

+
source

pub fn le(self, other: impl Into<Self>) -> Self

Is this expression less than or equal to another?

+
source

pub fn gt(self, other: impl Into<Self>) -> Self

Is this expression greater than another?

+
source

pub fn ge(self, other: impl Into<Self>) -> Self

Is this expression greater than or equal to another?

+
source

pub fn eq(self, other: impl Into<Self>) -> Self

Is this expression greater than another?

+
source

pub fn neq(self, other: impl Into<Self>) -> Self

Is this expression greater than or equal to another?

+
source

pub fn and(self, other: impl Into<Self>) -> Self

Logical and this expression with another.

+
source

pub fn or(self, other: impl Into<Self>) -> Self

Logical or this expression with another.

+
source

pub fn pow(self, exp: impl Into<Self>) -> Self

Get the power of this expression to another.

+
source

pub fn add(self, other: impl Into<Self>) -> Self

Add this expression to another.

+
source

pub fn sub(self, other: impl Into<Self>) -> Self

Subtract an expression from this expression.

+
source

pub fn mul(self, other: impl Into<Self>) -> Self

Multiply this expression by another.

+
source

pub fn div(self, other: impl Into<Self>) -> Self

Divide this expression by another.

+
source

pub fn rem(self, other: impl Into<Self>) -> Self

Get the remainder of this expression divided by another.

+
source

pub fn neg(self) -> Self

Get the remainder of this expression divided by another.

+
source

pub fn field(self, field: ConstExpr) -> Self

Get a field from a structure, union, or tuple.

For tuples, use an Int constant expression to access the nth field (zero indexed). For unions or structures, use a Symbol constant expression to access the field.

-
source

pub fn idx(self, idx: impl Into<Self>) -> Self

Index an array or pointer with an expression that evaluates to an Int at runtime.

-
source

pub fn let_var( +

source

pub fn idx(self, idx: impl Into<Self>) -> Self

Index an array or pointer with an expression that evaluates to an Int at runtime.

+
source

pub fn let_var( var: impl ToString, mutability: impl Into<Mutability>, t: Option<Type>, @@ -124,17 +124,17 @@ var will be declared with the type t, and the expression e will be assigned to it.

The result of this expression is the ret value, which is evaluated under this new scope.

When this expression is finished evaluating, var will be removed from the scope.

-

source

pub fn let_vars( +

source

pub fn let_vars( vars: Vec<(&str, Mutability, Option<Type>, Self)>, ret: impl Into<Self> ) -> Self

Create a let binding for an expression, and define multiple variables.

-
source

pub fn let_type(typename: impl ToString, t: Type, ret: impl Into<Self>) -> Self

Create a let binding for an type.

+
source

pub fn let_type(typename: impl ToString, t: Type, ret: impl Into<Self>) -> Self

Create a let binding for an type.

This will create a new scope with the type typename defined. typename will be declared with the type t, and the expression ret will be evaluated under this new scope.

When this expression is finished evaluating, typename will be removed from the scope.

-
source

pub fn let_types(vars: Vec<(&str, Type)>, ret: impl Into<Self>) -> Self

Create several type bindings at onces.

-
source

pub fn let_const( +

source

pub fn let_types(vars: Vec<(&str, Type)>, ret: impl Into<Self>) -> Self

Create several type bindings at onces.

+
source

pub fn let_const( constname: impl ToString, e: ConstExpr, ret: impl Into<Self> @@ -142,11 +142,11 @@

This will create a new scope with the constant constname defined. ret will be evaluated under this new scope.

When this expression is finished evaluating, constname will be removed from the scope.

-

source

pub fn let_consts( +

source

pub fn let_consts( constants: Vec<(&str, ConstExpr)>, ret: impl Into<Self> ) -> Self

Create several const bindings at onces.

-
source

pub fn let_proc( +

source

pub fn let_proc( procname: impl ToString, proc: Procedure, ret: impl Into<Self> @@ -154,18 +154,18 @@

This will create a new scope with the procedure proc defined. ret will be evaluated under this new scope.

When this expression is finished evaluating, proc will be removed from the scope.

-

source

pub fn let_procs(procs: BTreeMap<&str, Procedure>, ret: impl Into<Self>) -> Self

Create several proc bindings at onces.

-
source

pub fn structure(vars: BTreeMap<&str, Self>) -> Self

Create a structure of fields to expressions.

-
source

pub fn var(var: impl ToString) -> Self

Evaluate a variable in the current scope.

-
source

pub fn app(self, args: Vec<Self>) -> Self

Apply this expression as a procedure to some arguments.

-
source

pub fn if_then(self, t: impl Into<Self>, e: impl Into<Self>) -> Self

Create an if-then-else statement with this expression as the condition.

-
source

pub fn while_loop(self, body: impl Into<Self>) -> Self

Create a while statement with this expression as the condition.

-
source

pub fn refer(self, mutability: impl Into<Mutability>) -> Self

Reference this expression (i.e. get a pointer to it).

-
source

pub fn deref(self) -> Self

Dereference this expression (i.e. get the value it points to).

-
source

pub fn deref_mut(self, e: impl Into<Self>) -> Self

Dereference this expression (i.e. get the value it points to), +

source

pub fn let_procs(procs: BTreeMap<&str, Procedure>, ret: impl Into<Self>) -> Self

Create several proc bindings at onces.

+
source

pub fn structure(vars: BTreeMap<&str, Self>) -> Self

Create a structure of fields to expressions.

+
source

pub fn var(var: impl ToString) -> Self

Evaluate a variable in the current scope.

+
source

pub fn app(self, args: Vec<Self>) -> Self

Apply this expression as a procedure to some arguments.

+
source

pub fn if_then(self, t: impl Into<Self>, e: impl Into<Self>) -> Self

Create an if-then-else statement with this expression as the condition.

+
source

pub fn while_loop(self, body: impl Into<Self>) -> Self

Create a while statement with this expression as the condition.

+
source

pub fn refer(self, mutability: impl Into<Mutability>) -> Self

Reference this expression (i.e. get a pointer to it).

+
source

pub fn deref(self) -> Self

Dereference this expression (i.e. get the value it points to).

+
source

pub fn deref_mut(self, e: impl Into<Self>) -> Self

Dereference this expression (i.e. get the value it points to), and write another expression to its position in memory.

-
source

pub fn assign_op(self, op: impl ToString, e: impl Into<Self>) -> Self

Perform an AssignOp on this expression.

-
source

pub fn assign(self, op: impl ToString, e: impl Into<Self>) -> Self

Perform an AssignOp on this expression.

+
source

pub fn assign_op(self, op: impl ToString, e: impl Into<Self>) -> Self

Perform an AssignOp on this expression.

+
source

pub fn assign(self, op: impl ToString, e: impl Into<Self>) -> Self

Perform an AssignOp on this expression.

Trait Implementations§

source§

impl Clone for Expr

source§

fn clone(&self) -> Expr

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Compile for Expr

Compile an LIR expression into several core assembly instructions.

source§

fn compile_expr( self, @@ -173,16 +173,16 @@ output: &mut dyn AssemblyProgram ) -> Result<(), Error>

source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Expr

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

-
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type in a given expression.

-
source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check -recursion depth to prevent a possible stack overflow.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for Expr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Expr

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<ConstExpr> for Expr

source§

fn from(c: ConstExpr) -> Self

Converts to this type from the input type.
source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

+
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type in a given expression.

+
source§

fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check +recursion depth to prevent a possible stack overflow.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for Expr

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Expr

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,
Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Expr

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Expr

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

-
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

+
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

Auto Trait Implementations§

§

impl RefUnwindSafe for Expr

§

impl Send for Expr

§

impl Sync for Expr

§

impl Unpin for Expr

§

impl UnwindSafe for Expr

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/enum.Type.html b/docs/sage/lir/enum.Type.html index ff715bec..d102c4e5 100644 --- a/docs/sage/lir/enum.Type.html +++ b/docs/sage/lir/enum.Type.html @@ -69,21 +69,32 @@ This type is used to implement generics.

§

ConstParam(Box<ConstExpr>)

A constant literal used in a type expression, like a template application with a constant parameter.

-

Implementations§

source§

impl Type

source

pub const SIMPLIFY_RECURSION_LIMIT: usize = 30usize

This is the maximum number of times a type will be simplified recursively.

-
source

pub fn is_recursive(&self, env: &Env) -> Result<bool, Error>

source

pub fn is_const_param(&self) -> bool

source

pub fn is_recursive_helper( +

Implementations§

source§

impl Type

source

pub const SIMPLIFY_RECURSION_LIMIT: usize = 30usize

This is the maximum number of times a type will be simplified recursively.

+
source

pub fn is_recursive(&self, env: &Env) -> Result<bool, Error>

source

pub fn is_const_param(&self) -> bool

Is this type a constant parameter?

+

This will recursively detect if the subtypes are constant parameters as well

+
source

pub fn is_recursive_helper( &self, symbols: &mut HashSet<String>, env: &Env -) -> Result<bool, Error>

source

pub fn strip_template(&self, env: &Env) -> Self

source

pub fn is_poly(&self) -> bool

source

pub fn get_monomorph_template_args( +) -> Result<bool, Error>

Is this type recursive?

+
source

pub fn strip_template(&self, env: &Env) -> Self

Strip the template arguments to get the inner type

+
source

pub fn is_poly(&self) -> bool

Is this a polymorphic function?

+
source

pub fn get_monomorph_template_args( &self, template: &Self, matched_symbols: &mut HashMap<String, (Self, Option<Type>)>, param_symbols: &HashSet<String>, env: &Env -) -> Result<(), Error>

source

pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result<bool, Error>

source

pub fn add_monomorphized_associated_consts( +) -> Result<(), Error>

Get the template arguments for the monomorph (this type) of some polymorphic base type. +This will match the symbols in the template against the monomorph.

+
source

pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result<bool, Error>

Is this type a monomorph of a given template type?

+
source

pub fn add_monomorphized_associated_consts( &self, env: &Env -) -> Result<(), Error>

source

pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option<Type>)>

source

pub fn apply(&self, args: Vec<Self>) -> Self

source

pub fn is_simple(&self) -> bool

Is this type in a simple form? +) -> Result<(), Error>

Add monomorphized methods for a given monomorph of a template type with methods.

+
source

pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option<Type>)>

Get the template parameters for this template type.

+
source

pub fn apply(&self, args: Vec<Self>) -> Self

Apply this template type with some type arguments.

+
source

pub fn is_simple(&self) -> bool

Is this type in a simple form? A simple form is a form that does not require any immediate simplification. For example, a Poly type is not simple, because it requires a Apply type to deduce anything about the type. A let binding is also not simple, because @@ -91,49 +102,52 @@ because it requires a lookup in the environment to determine the type. Other types, like a tagged union, which may be pattern matched over the inner types, does not require an immediate lookup to use some of its type information.

-
source

pub fn is_concrete(&self) -> bool

source

pub fn is_atomic(&self) -> bool

Is this type an irreducible, atomic type?

-
source

pub fn is_self_param_reference(&self, env: &Env) -> Result<bool, Error>

Is first argument of function a reference?

-
source

pub fn get_self_param_mutability(&self, env: &Env) -> Option<Mutability>

Get the first argument’s mutability (if it is a pointer)

-
source

pub fn simplify_until_type_checks(&self, env: &Env) -> Result<Self, Error>

Simplify until the type passes the type checker.

-
source

pub fn simplify_until_has_members( +

source

pub fn is_concrete(&self) -> bool

Is this type simplified enough to get information about what the +outer type is? Is it a tuple, a struct, etc?

+

Symbols and polymorphic types do not satisfy this condition.

+
source

pub fn is_atomic(&self) -> bool

Is this type an irreducible, atomic type?

+
source

pub fn is_self_param_reference(&self, env: &Env) -> Result<bool, Error>

Is first argument of function a reference?

+
source

pub fn get_self_param_mutability(&self, env: &Env) -> Option<Mutability>

Get the first argument’s mutability (if it is a pointer)

+
source

pub fn simplify_until_type_checks(&self, env: &Env) -> Result<Self, Error>

Simplify until the type passes the type checker.

+
source

pub fn simplify_until_has_members( &self, env: &Env, checked: bool ) -> Result<Self, Error>

Simplify a type until you can get its members.

-
source

pub fn simplify_until_union( +

source

pub fn simplify_until_union( &self, env: &Env, checked: bool ) -> Result<Self, Error>

Simplify a type until it’s a union.

-
source

pub fn simplify_until_has_variants( +

source

pub fn simplify_until_has_variants( &self, env: &Env, checked: bool ) -> Result<Self, Error>

Simplify a type until you can get its variants.

-
source

pub fn simplify_until_atomic( +
source

pub fn simplify_until_atomic( &self, env: &Env, checked: bool -) -> Result<Self, Error>

source

pub fn simplify_until_simple( +) -> Result<Self, Error>

source

pub fn simplify_until_simple( &self, env: &Env, checked: bool -) -> Result<Self, Error>

source

pub fn simplify_until_poly( +) -> Result<Self, Error>

source

pub fn simplify_until_poly( &self, env: &Env, checked: bool ) -> Result<Self, Error>

Simplify until the type is a polymorphic type.

-
source

pub fn simplify_until_concrete( +

source

pub fn simplify_until_concrete( &self, env: &Env, checked: bool ) -> Result<Self, Error>

Simplify until the type is concrete.

-
source

pub fn simplify_until_const_param( +

source

pub fn simplify_until_const_param( &self, env: &Env, _checked: bool ) -> Result<ConstExpr, Error>

Simplify until the type is concrete.

-
source

pub fn simplify_until_matches( +

source

pub fn simplify_until_matches( self, env: &Env, expected: Self, @@ -143,42 +157,42 @@ This will perform template applications to simplify the type if possible as well.

This is usually too verbose to be used on its own, better to make a wrapper function that calls this with a more specific use case/purpose.

-

source

pub fn let_bind(name: &str, t: Self, ret: Self) -> Self

Create a let-bound type.

-
source

pub fn variant_index(variants: &[String], variant: &String) -> Option<usize>

Calculate the integral value of a variant in an enum.

-
source

pub fn contains_symbol(&self, name: &str) -> bool

Does this type contain a symbol with the given name? +

source

pub fn let_bind(name: &str, t: Self, ret: Self) -> Self

Create a let-bound type.

+
source

pub fn variant_index(variants: &[String], variant: &String) -> Option<usize>

Calculate the integral value of a variant in an enum.

+
source

pub fn contains_symbol(&self, name: &str) -> bool

Does this type contain a symbol with the given name? This will not count overshadowded versions of the symbol (overwritten by let-bindings).

-
source

pub fn substitute(&self, name: &str, substitution: &Self) -> Self

Substitute all occurences of a symbol with another type. +

source

pub fn substitute(&self, name: &str, substitution: &Self) -> Self

Substitute all occurences of a symbol with another type. This will not traverse into let-bindings when the symbol is overshadowed.

-
source

pub fn has_element_type(&self, element: &Self, env: &Env) -> Result<bool, Error>

Does this type have an element type matching the supplied type? +

source

pub fn has_element_type(&self, element: &Self, env: &Env) -> Result<bool, Error>

Does this type have an element type matching the supplied type? If this type is an array of Integers, for example, then this function will return true if the supplied type is an Integer.

-
source

pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result<bool, Error>

Can this type decay into another type?

+
source

pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result<bool, Error>

Can this type decay into another type?

A type can decay into another type if the compiler can automatically convert the type into the other type. This is distinct from the compiler seeing the types as equal. The two types are not equal; the compiler will just automatically perform the conversion.

For all cases right now, a decay does nothing; the representations of the types in the compiler are the same for all types of decay.

-
source

pub fn can_cast_to(&self, other: &Self, env: &Env) -> Result<bool, Error>

Can this type be cast to another type?

-
source

pub fn equals(&self, other: &Self, env: &Env) -> Result<bool, Error>

Are two types structurally equal?

-
source

pub fn perform_template_applications( +

source

pub fn can_cast_to(&self, other: &Self, env: &Env) -> Result<bool, Error>

Can this type be cast to another type?

+
source

pub fn equals(&self, other: &Self, env: &Env) -> Result<bool, Error>

Are two types structurally equal?

+
source

pub fn perform_template_applications( &self, env: &Env, previous_applications: &mut HashMap<(Type, Vec<Type>), Type>, checked: bool ) -> Result<Self, Error>

Perform type applications if possible.

Trait Implementations§

source§

impl Clone for Type

source§

fn clone(&self) -> Type

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Type

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetSize for Type

Calculate the size of a type in units of cells.

+ __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Type

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Type> for ConstExpr

source§

fn from(value: Type) -> Self

Converts to this type from the input type.
source§

impl GetSize for Type

Calculate the size of a type in units of cells.

source§

fn get_size_checked(&self, env: &Env, i: usize) -> Result<usize, Error>

Get the size of something in memory, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite -recursion.
source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl Hash for Type

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +recursion.

source§

fn get_size(&self, env: &Env) -> Result<usize, Error>

Get the size of something in memory (number of cells).
source§

impl Hash for Type

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Type

source§

fn eq(&self, other: &Type) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Type

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for Type

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit + __S: Serializer,
Serialize this value into the given Serde serializer. Read more
source§

impl Simplify for Type

source§

fn simplify_checked(self, env: &Env, i: usize) -> Result<Self, Error>

Simplify an expression while maintaining structural equality, but limit the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.
source§

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.
source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

-
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for Type

source§

impl Send for Type

source§

impl StructuralPartialEq for Type

source§

impl Sync for Type

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +
source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

source§

impl Eq for Type

source§

impl Send for Type

source§

impl StructuralPartialEq for Type

source§

impl Sync for Type

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.Env.html b/docs/sage/lir/struct.Env.html index b09e9580..67ba683b 100644 --- a/docs/sage/lir/struct.Env.html +++ b/docs/sage/lir/struct.Env.html @@ -1,27 +1,27 @@ Env in sage::lir - Rust

Struct sage::lir::Env

source ·
pub struct Env { /* private fields */ }
Expand description

An environment under which expressions and types are compiled and typechecked. This is essentially the scope of an expression.

-

Implementations§

source§

impl Env

Implementations§

source§

impl Env

source

pub fn get_type_of_associated_const( &self, ty: &Type, name: &str ) -> Option<Type>

Get the type of an associated constant of a type.

-
source

pub fn get_associated_const( +

source

pub fn get_associated_const( &self, ty: &Type, name: &str -) -> Option<(ConstExpr, Type)>

source

pub fn has_associated_const(&self, ty: &Type, name: &str) -> bool

source

pub fn get_all_associated_consts(&self, ty: &Type) -> Vec<(String, ConstExpr)>

source

pub fn add_associated_const( +) -> Option<(ConstExpr, Type)>

source

pub fn has_associated_const(&self, ty: &Type, name: &str) -> bool

source

pub fn get_all_associated_consts(&self, ty: &Type) -> Vec<(String, ConstExpr)>

source

pub fn add_associated_const( &self, ty: Type, associated_const_name: impl ToString, expr: ConstExpr -) -> Result<(), Error>

source

pub fn define_types(&mut self, types: Vec<(String, Type)>)

Define multiple types with the given names under this environment.

+) -> Result<(), Error>
source

pub fn define_types(&mut self, types: Vec<(String, Type)>)

Define multiple types with the given names under this environment.

This must be used in situations where the different types depend on each other. This is because the sizes of types are memoized, and this will interfere with the memoization process if the types are defined separately. It will lead to typechecking errors if the environment does not already have a memoized size for the type of a subexpression.

-
source

pub fn define_var( +

source

pub fn define_var( &mut self, var: impl ToString, mutability: Mutability, @@ -30,7 +30,7 @@ ) -> Result<isize, Error>

Define a variable in the current scope. This will increment the scope’s frame pointer offset by the size of the variable. This method returns the offset of the variable from the frame pointer under this scope.

-

Trait Implementations§

source§

impl Clone for Env

source§

fn clone(&self) -> Env

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Env

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Env

§

impl Send for Env

§

impl Sync for Env

§

impl Unpin for Env

§

impl !UnwindSafe for Env

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Clone for Env

source§

fn clone(&self) -> Env

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Env

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for Env

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Env

§

impl Send for Env

§

impl Sync for Env

§

impl Unpin for Env

§

impl !UnwindSafe for Env

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.PolyProcedure.html b/docs/sage/lir/struct.PolyProcedure.html index 812a854f..7ed8f7ce 100644 --- a/docs/sage/lir/struct.PolyProcedure.html +++ b/docs/sage/lir/struct.PolyProcedure.html @@ -2,7 +2,7 @@

Struct sage::lir::PolyProcedure

source ·
pub struct PolyProcedure { /* private fields */ }
Expand description

A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments. This is mono-morphed into a Procedure when it is called with a list of type arguments. A procedure is compiled down to a label in the assembly code.

-

Implementations§

source§

impl PolyProcedure

source

pub fn new( +

Implementations§

source§

impl PolyProcedure

source

pub fn new( name: String, ty_params: Vec<(String, Option<Type>)>, args: Vec<(String, Mutability, Type)>, @@ -16,7 +16,7 @@ ) -> Self

source

pub fn get_name(&self) -> &str

Get the name of this polymorphic procedure. This is not the mangled name, but the name known to the LIR front-end. The mangled name is unique for each monomorph of the procedure.

-
source

pub fn monomorphize( +

source

pub fn monomorphize( &self, ty_args: Vec<Type>, env: &Env @@ -24,13 +24,13 @@ This monomorphized version can then be compiled directly. Additionally, the mono version of the procedure is memoized, so that it is only compiled once.

Trait Implementations§

source§

impl Clone for PolyProcedure

source§

fn clone(&self) -> PolyProcedure

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for PolyProcedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl GetType for PolyProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check -recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for PolyProcedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for PolyProcedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<PolyProcedure> for ConstExpr

source§

fn from(value: PolyProcedure) -> Self

Converts to this type from the input type.
source§

impl GetType for PolyProcedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check +recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for PolyProcedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for PolyProcedure

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for PolyProcedure

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for PolyProcedure

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for PolyProcedure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TypeCheck for PolyProcedure

source§

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.
source§

impl Eq for PolyProcedure

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/sage/lir/struct.Procedure.html b/docs/sage/lir/struct.Procedure.html index e32a6d96..cc07402e 100644 --- a/docs/sage/lir/struct.Procedure.html +++ b/docs/sage/lir/struct.Procedure.html @@ -25,7 +25,7 @@ output: &mut dyn AssemblyProgram ) -> Result<(), Error>
source§

fn compile(self) -> Result<Result<CoreProgram, StandardProgram>, Error>
where Self: Sized + Clone,

Compile the expression into an assembly program. Read more
source§

impl Debug for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Procedure

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl GetType for Procedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check + __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Procedure

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<Procedure> for ConstExpr

source§

fn from(value: Procedure) -> Self

Converts to this type from the input type.
source§

impl GetType for Procedure

source§

fn get_type_checked(&self, _env: &Env, _i: usize) -> Result<Type, Error>

Get the type of a value under a given environment and check recursion depth to prevent a possible stack overflow.
source§

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.
source§

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.
source§

fn substitute_types(&mut self, names: &[String], types: &[Type])

source§

impl Hash for Procedure

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Procedure

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used diff --git a/docs/sage/lir/trait.GetType.html b/docs/sage/lir/trait.GetType.html index b6591d6d..8ad76089 100644 --- a/docs/sage/lir/trait.GetType.html +++ b/docs/sage/lir/trait.GetType.html @@ -12,5 +12,5 @@ recursion depth to prevent a possible stack overflow.

source

fn substitute(&mut self, name: &str, ty: &Type)

Substitute a type for a given name in the environment.

Provided Methods§

source

fn get_type(&self, env: &Env) -> Result<Type, Error>

Get the type associated with a value under a given environment.

-
source

fn substitute_types(&mut self, names: &[String], types: &[Type])

Implementors§

source§

impl GetType for ConstExpr

source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

-
source§

impl GetType for CoreBuiltin

source§

impl GetType for FFIProcedure

source§

impl GetType for PolyProcedure

source§

impl GetType for Procedure

source§

impl GetType for StandardBuiltin

\ No newline at end of file +
source

fn substitute_types(&mut self, names: &[String], types: &[Type])

Implementors§

source§

impl GetType for ConstExpr

source§

impl GetType for Expr

Infer the type associated with an expression under a given environment.

+
source§

impl GetType for CoreBuiltin

source§

impl GetType for FFIProcedure

source§

impl GetType for PolyProcedure

source§

impl GetType for Procedure

source§

impl GetType for StandardBuiltin

\ No newline at end of file diff --git a/docs/sage/lir/trait.Simplify.html b/docs/sage/lir/trait.Simplify.html index 9d1af68f..7b6bf0e7 100644 --- a/docs/sage/lir/trait.Simplify.html +++ b/docs/sage/lir/trait.Simplify.html @@ -10,4 +10,4 @@ the number of recursive calls to prevent stack overflow. i is a counter to prevent infinite recursion.

Provided Methods§

source

fn simplify(self, env: &Env) -> Result<Self, Error>

Simplify an expression while maintaining structural equality.

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/sage/lir/trait.TypeCheck.html b/docs/sage/lir/trait.TypeCheck.html index f07b88dc..0d1ce66b 100644 --- a/docs/sage/lir/trait.TypeCheck.html +++ b/docs/sage/lir/trait.TypeCheck.html @@ -6,6 +6,6 @@

Whenever this is applied, it will return Ok(()) if the typing is sound, and Err(...) if it is not.

Required Methods§

source

fn type_check(&self, env: &Env) -> Result<(), Error>

Type check the expression.

-

Implementors§

source§

impl TypeCheck for ConstExpr

source§

impl TypeCheck for Declaration

source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

+

Implementors§

source§

impl TypeCheck for ConstExpr

source§

impl TypeCheck for Declaration

source§

impl TypeCheck for Expr

Check the type-soundness of a given expression.

source§

impl TypeCheck for Type

Check the soundness of a given type in the environment.

-
source§

impl TypeCheck for CoreBuiltin

source§

impl TypeCheck for FFIProcedure

source§

impl TypeCheck for PolyProcedure

source§

impl TypeCheck for Procedure

source§

impl TypeCheck for StandardBuiltin

\ No newline at end of file +
source§

impl TypeCheck for CoreBuiltin

source§

impl TypeCheck for FFIProcedure

source§

impl TypeCheck for PolyProcedure

source§

impl TypeCheck for Procedure

source§

impl TypeCheck for StandardBuiltin

\ No newline at end of file diff --git a/docs/sage/web/index.html b/docs/sage/web/index.html index 8996f4cc..de6ab312 100644 --- a/docs/sage/web/index.html +++ b/docs/sage/web/index.html @@ -1942,7 +1942,12 @@ }`); break; case "sum-types": - source.setValue(`enum Option { + source.setValue(`fun main() { + let x = Option of Some(5); + println(x.unwrap()); +} + +enum Option { Some(T), Nothing, } @@ -1962,11 +1967,6 @@ } } -fun main() { - let x = Option of Some(5); - println(Option.unwrap(x)); -} - main();`) break; default: diff --git a/docs/sage/web/web_bg.wasm b/docs/sage/web/web_bg.wasm index 7aa42aa528d0fb47e53e336c66114e0704f61769..208c8a2051cab9b8923232c4f8ad015ea69c9e30 100644 GIT binary patch delta 658731 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

Nj49xy?-*n>(@byqlr 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

D)~{-DBGw4q%O)fbUsZ7(h>wRF^rqC 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⪼d>^2O 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
3}?si`X8u{FjljE1?M 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¨2g`P5Q@Gyqdn{16;1=UM<>yJXSF6*FPFdw zM!>i34MJ_IW`sw;GrMZwPCkys#HXWv_}T7*$BvKTkI$oT+t8G*;$f|p(=dkGE@@%^}H6} zP?izLRC;PCqT2e)GY2!yjVs z%Kt+Q=~y1skG;0|?27oT~~;y%k&hG?68axeDFS7N&y6XVDh zb&+flGFuxs>HlDe28hKJ8Y^O5ytPlNC)iPcNIh{^w%XcbPDtlS>%0&u&1Kc4uc2@R zN86~To=DNqByhe;MiQ+|j1wJHE!|Pe&2gf&E`7&v)|S8d9vYc0mIC`$8G>~r4`c|| zk(|yH8Pq-#G?t2zztGX?PC%0wj=7%PQ!E|=S2Vt^}+hNiN64JdYWjGqJsHiSE~%E)kYMOLgO6mOcQ+o)~Er7 z(L2<&fp`ROiyMgS6fRnBg`JsjPn|KIerzD_PAFmLdAj?z+b3wc#F-PusIcC9O& z&`{utyMt8GNOX-`!EUrx-5f*!?z+@AU9`(o0~ApScz{|4+z3ZwoPx3gn@;!OEV{dg zcmN^=HtWDH=VVjC0qmp50|8#qu})*JFPXftFi*VjdybSs5_5B3z9bvQ4x}*P$ih(X)cQYrzmeKp?+?2<9c;P_4AaP-jNeE3dJ} zAVm}q&>GelsX~6@?LEuBHq!7LL|;?@i;G+Ihfy{92TAyANYjfMNRzajO+UBt(UJx< z6K(1F9C7cTBIj(2ob1~AKcS?vKnD@gsLd@f%jVP3wxHYB6x~iVXmk;};Z|OejD|@f z&1T2LphTja%Y<-QW+^vcCSI@zL_f6>8XXuQ8sh_xH|m=M8r?PUPts_PZ^-4`_`e%+ zbxN&GtqpA@wYCm|yh3j&bUHIg=znUU&0&H$2U@nP*4QHbW2A@7fW847E`|Da z^AQqjSw%PBSi~Eaj5hRW_diL;1wK0d{eMcwAmuvfSbObQV6Pqft_BbMj?P~FC)W

? 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 z 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 R>Yh7^S=dQ2`44;R{|nZO4B7wy diff --git a/docs/search-index.js b/docs/search-index.js index 5878901a..e5781a4e 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["sage",{"doc":"The Sage Programming Language","t":"SSSCCCCCCCEKEEEEEEGEEEEEEEEEPPPPPPNNNNNCMNNNNNNNNMCNNMCNMNCMNNNNNPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNSPSSSSSSSPPGPSSNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHFPPFPPPGPPPPPPPGPPPPPPFKPKPFFFFFFPPTTPPPPGKPPPGPPPPFPPTFPPGPPFPPPPPPPPPPFPGGPFPPPPPFKKPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPGPTFPPFPPPPPPFPPPFGPPPPPFPPPPFGPPPPPTKPPPFPPPPPPPPPPPTFPPKPPPPPGPPPKPPPTKPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOFNNNNNONNNNNONNNNNNOOOHHHHHNNNNNNCCFNNNNNNNNNNNNNNNONONONNNNNNNPPPPGPPPPPPPPPPFPPGPPPPPPPPPPGPPPPPPPPFGPPPPPPPPPPPPPPFGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKNNNNCMMMNMMMMNNNNNMMMMMMFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPFGPFPPPKPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFFGFPPPPPFPPPKPPNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNONNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNMNNONNNNNNNMNNNMNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","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","deref","deref_mut","drop","eq","fmt","fmt","from","from","get_op","globals","init","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","ArithmeticRightShift","Array","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Call","CallLabel","Comment","Compare","Const","Copy","CoreOp","CoreProgram","Dec","Div","DivRem","Else","End","Fn","Get","GetAddress","Global","If","Inc","Index","IsEqual","IsGreater","IsGreaterEqual","IsLess","IsLessEqual","IsNotEqual","LeftShift","LogicalRightShift","Many","Move","Mul","Neg","Next","Not","Or","Pop","PopFrom","Prev","Push","PushAddress","PushConst","PushTo","Put","Rem","Return","Set","SetLabel","Sub","Swap","VecAdd","VecAnd","VecArithmeticRightShift","VecBitwiseAnd","VecBitwiseNand","VecBitwiseNor","VecBitwiseNot","VecBitwiseOr","VecBitwiseXor","VecDec","VecDiv","VecGez","VecInc","VecIndex","VecLeftShift","VecLogicalRightShift","VecMul","VecNeg","VecNot","VecOffset","VecOr","VecRem","VecSet","VecSub","While","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","get_op","hash","hash","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","push_string","put_string","serialize","serialize","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","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","dst","name","offset","offset","offset","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","sp","sp","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","vals","Globals","add_global","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","deserialize","drop","fmt","fmt","from","get_global","get_global_location","get_global_size","get_size","init","into","new","resolve","serialize","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","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","into","offset","partial_cmp","serialize","to_owned","to_string","try_from","try_into","type_id","ACos","ASin","ATan","Add","Alloc","Call","Const","CoreOp","Cos","Div","Free","IsGreater","IsLess","Mul","Neg","Pow","PushConst","Rem","Set","Sin","Sqrt","StandardOp","StandardProgram","Sub","Tan","ToFloat","ToInt","VecACos","VecASin","VecATan","VecAdd","VecCos","VecDiv","VecGez","VecMul","VecNeg","VecPow","VecRem","VecSet","VecSin","VecSub","VecTan","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_op","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","serialize","serialize","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","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","size","size","size","size","size","size","size","size","size","size","size","size","size","size","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","parse","Add","Add","Alt","And","Annotated","Annotated","Annotated","Annotation","Any","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","ConstParam","Constant","CoreBuiltin","CoreBuiltin","CouldntSimplify","DEAD_CODE","Data","DeadCode","Debug","Declaration","Declare","Declare","Delete","Deref","DerefMut","DerefNonPointer","Display","Divide","DuplicateMember","Enum","EnumUnion","EnumUnion","EnumUnion","Env","Equal","Error","Expr","ExternProc","FFIProcedure","FFIProcedure","Float","Float","FromImport","FromImportAll","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","Module","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","UnexpectedConstParam","UnimplementedOperator","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_char","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","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","display","display","display","display","display","display","display","display","display","div","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","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","equals","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","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","get_type_params","gt","hard_with","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","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","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_const_param","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","many","match_pattern","module","monomorphize","monomorphize","mul","name","name","name","name","name","name","name","name","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","print","println","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_common_name","simplify","simplify_checked","simplify_checked","simplify_checked","simplify_until_atomic","simplify_until_concrete","simplify_until_const_param","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","var","variant_index","while_loop","wildcard","with","with","with","with","module","names","expected","expected","expr","expr","expr","expr","found","found","found","patterns","SourceCodeLocation","borrow","borrow_mut","clone","clone_into","cmp","column","deref","deref_mut","deserialize","drop","eq","filename","fmt","from","get_code","hash","init","into","length","line","offset","parse_asm","parse_frontend","parse_frontend_minimal","parse_lir","parse_vm","partial_cmp","serialize","to_owned","try_from","try_into","type_id","ffi","io","FFIBinding","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","input_cells","into","name","new","output_cells","partial_cmp","serialize","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","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","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","std_op","supports_floats","supports_input","supports_output","version","C","borrow","borrow_mut","declare_proc","default","deref","deref_mut","drop","end","from","get","init","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","And","ArithmeticRightShift","BitwiseAnd","BitwiseNand","BitwiseNot","BitwiseOr","BitwiseXor","Call","Call","Comment","CoreInterpreter","CoreOp","CoreOp","CoreProgram","Cos","Dec","Deref","Device","Div","Div","Else","End","Error","ExpectedCore","Free","Function","Get","If","Inc","Index","IsNonNegative","IsNonNegative","LeftShift","Load","LogicalRightShift","Move","Mul","Mul","Neg","Neg","Not","Offset","Or","Peek","Poke","Pow","Put","Refer","Rem","Rem","Return","Set","Set","Sin","StandardDevice","StandardInterpreter","StandardOp","StandardProgram","Store","Sub","Sub","Swap","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","init","input","into","into","into","into","into","into","into","into","into","is_non_negative","load_vector","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_float_register","set_float_vector","set_register","set_vector","std_op","std_op","std_op","store_vector","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"],[65,"sage::asm::core"],[207,"sage::asm::core::CoreOp"],[348,"sage::asm::globals"],[376,"sage::asm::location"],[416,"sage::asm::std"],[510,"sage::asm::std::StandardOp"],[565,"sage::frontend"],[566,"sage::lir"],[1912,"sage::lir::Declaration"],[1914,"sage::lir::Error"],[1924,"sage::parse"],[1957,"sage::side_effects"],[1959,"sage::side_effects::ffi"],[1987,"sage::side_effects::io"],[2293,"sage::targets"],[2319,"sage::targets::c"],[2349,"sage::vm"],[2653,"alloc::string"],[2654,"core::fmt"],[2655,"core::fmt"],[2656,"core::option"],[2657,"core::cmp"],[2658,"core::any"],[2659,"serde::de"],[2660,"core::hash"],[2661,"alloc::vec"],[2662,"alloc::string"],[2663,"core::convert"],[2664,"alloc::boxed"],[2665,"alloc::collections::btree::map"],[2666,"std::collections::hash::map"],[2667,"std::collections::hash::set"],[2668,"core::ops::function"]],"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","Side Effects 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.","Assembly Global Variables","","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.","Arithmetic right shift a destination by 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 …","Write a set of values to a memory location.","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.","Left shift a destination by a source value.","Logical right shift a destination by a source value. This …","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 …","Get the address of a location and push it to the stack.","Push a const to the stack.","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.","Perform a SIMD addition over a vector of integers. This …","Perform a vector “And” operation. This will perform a …","Perform a SIMD arithmetic right shift operation over a …","","","","","","","Decrement a vector of integers.","Perform a SIMD division over a vector of integers. This …","Perform a SIMD “is >= zero” operation over a vector of …","Increment a vector of integers.","Perform a SIMD pointer index operation over a vector of …","Perform a SIMD left shift operation over a vector of …","Perform a SIMD logical right shift operation over a vector …","Perform a SIMD multiplication over a vector of integers. …","Negate a vector of integers using SIMD.","Perform a vector “Not” operation. This will replace …","Perform a SIMD pointer arithmetic operation over a vector …","Perform a vector “Or” operation. This will perform a …","Perform a SIMD remainder over a vector of integers. This …","Set the vector values of a destination.","Perform a SIMD subtraction over a vector of integers. This …","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.","Write some constant values to a location on the tape","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).","Push some constant values to the stack.","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 …","Perform a SIMD floating point inverse cosine operation.","Perform a SIMD floating point inverse sine operation.","Perform a SIMD floating point inverse tangent operation.","Perform a SIMD floating point addition operation.","Perform a SIMD floating point cosine operation.","Perform a SIMD floating point division operation.","Perform a SIMD floating point greater than or equal to …","Perform a SIMD floating point multiplication operation.","Perform a SIMD floating point negation operation.","Perform a SIMD floating point power operation.","Perform a SIMD floating point remainder operation.","Set the vector values of a destination.","Perform a SIMD floating point sine operation.","Perform a SIMD floating point subtraction operation.","Perform a SIMD floating point tangent operation.","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 beginning of the constant data.","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.","","","","","","","","The constant data.","","","","","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 …","The expression equal to any other expression.","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.","","A constant literal used in a type expression, like a …","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.","","","Duplicate implementations of a member for a type","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.","Import an element from a module.","","","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","Declare a module","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.","An error caused by unexpectedly passing a constant …","","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 character.","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.","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?","Create a collection of declarations","Generate an expression which evaluates a match expression, …","Create a module with a given name and a list of …","","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 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.","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 …","","","","","","","Foreign Function Interface","I/O Module","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).","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.","The type for the C 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. The …","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Boolean-and the register and the value pointed to on the …","Interpret the register’s value as a signed integer. …","Perform bitwise and on the cell and the value pointed to …","Perform bitwise nand on the cell and the value pointed to …","Bitwise not the register. Store the result in the register.","Perform bitwise or on the cell and the value pointed to on …","Perform a bitwise xor 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 …","Decrement the register.","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.","Increment the register. The argument is the size of the …","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 …","Left shift the cell by the value pointed to on the tape. …","Store the value pointed to on the tape to the register.","Logical right shift the cell by the value pointed to on …","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 …","Negate the register. The argument is the size of the …","Negate the value of the register (as a float).","Boolean-not the register (0 if the register is non-zero, 1 …","Interpret the register’s value as a pointer to a cell. …","Boolean-or the register and the value pointed to on the …","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 …","Return from the current function.","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 …","Store the register to the value pointed to on the tape.","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Swap the value of the register with the value pointed to …","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,3,0,3,1,1,1,1,1,1,1,1,3,0,1,1,3,0,3,3,1,0,3,1,1,1,1,1,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,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,17,17,10,17,10,17,10,17,10,17,10,17,17,17,17,10,17,10,17,10,17,10,17,10,17,17,10,10,17,10,17,17,10,17,10,17,10,17,17,17,17,10,10,10,17,10,10,17,17,10,17,10,17,10,17,10,17,10,105,106,107,108,109,110,111,112,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,105,106,107,108,109,110,111,145,146,147,148,149,150,151,152,153,154,155,156,157,158,115,142,143,158,114,122,123,124,125,126,129,130,131,132,133,137,138,139,140,141,142,143,159,144,152,153,154,155,156,157,159,144,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,134,135,136,137,138,139,140,143,159,145,147,148,149,150,151,152,153,154,155,156,145,146,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,25,0,0,0,0,0,0,0,25,25,0,25,0,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,28,28,11,28,11,28,11,28,11,28,28,28,28,11,28,11,28,11,28,11,28,11,28,28,11,11,28,28,11,28,28,11,28,11,28,28,28,28,11,28,11,28,28,11,28,11,28,11,28,11,28,11,160,161,160,161,162,163,164,165,166,167,168,160,161,169,170,171,172,173,174,175,176,177,178,179,180,181,182,169,170,171,172,173,174,175,176,177,178,179,180,181,182,163,164,165,166,167,168,169,170,171,172,173,175,182,162,0,0,49,37,0,36,35,30,0,35,67,34,30,34,36,36,0,35,30,34,35,30,36,0,0,30,0,30,0,0,0,0,0,0,35,34,38,38,35,34,35,34,0,0,36,38,31,0,30,37,34,38,0,35,36,38,0,38,59,0,35,30,0,30,30,36,59,49,36,34,35,30,34,0,57,0,0,31,0,35,35,34,31,31,0,0,0,57,57,30,30,67,31,30,35,34,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,38,57,57,34,38,38,31,30,30,35,30,36,36,36,31,35,49,0,67,30,0,36,34,0,36,36,36,38,35,34,0,57,35,35,0,0,37,34,34,35,31,0,49,35,31,34,0,0,36,36,30,49,30,34,0,35,36,35,0,35,31,35,30,37,34,49,35,37,34,36,38,0,35,38,0,30,35,30,37,34,0,35,31,34,0,36,35,36,38,0,30,36,36,35,30,34,34,36,36,36,31,31,37,36,30,30,37,31,30,31,33,34,37,30,36,35,30,35,30,34,37,68,69,35,35,35,35,35,35,30,30,30,30,30,30,30,38,30,38,30,68,69,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,43,43,44,44,45,45,46,46,34,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,74,74,43,43,44,44,45,45,46,46,47,49,50,74,35,30,68,69,70,71,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,34,59,37,33,67,33,33,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,35,31,30,37,68,69,70,71,72,67,34,43,43,44,44,45,45,46,46,59,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,35,31,30,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,35,34,43,44,45,46,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,35,30,37,38,33,33,36,36,35,35,31,31,30,30,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,60,60,61,61,62,62,63,63,64,64,65,65,66,66,37,37,68,68,69,69,70,70,71,71,72,72,67,67,34,34,38,38,33,36,36,35,35,35,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,67,34,72,30,33,71,33,37,71,37,71,71,30,34,72,71,34,79,79,79,35,30,68,69,70,71,72,34,34,80,80,80,35,30,68,69,70,71,72,33,72,30,30,33,34,38,38,35,31,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,30,37,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,34,38,34,34,67,38,37,38,30,34,67,38,34,34,34,34,34,38,30,34,30,30,30,30,30,30,30,30,38,30,31,37,31,35,72,30,43,43,44,44,45,45,46,46,68,69,30,30,50,70,71,72,30,30,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,34,37,30,30,30,35,71,30,30,68,69,43,43,44,44,45,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,35,31,30,37,68,69,70,71,72,67,34,71,81,81,35,34,34,34,34,34,34,34,34,34,34,34,30,34,37,30,30,80,35,30,68,69,70,71,72,34,80,80,37,35,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,84,43,43,44,44,45,45,46,46,35,31,30,37,68,69,70,71,72,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,35,30,34,30,37,35,30,71,72,183,183,184,185,186,184,185,187,186,184,185,187,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,0,0,0,0,75,75,75,75,75,75,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,90,90,90,91,0,90,91,89,91,89,90,90,91,90,91,0,91,90,0,90,90,91,90,91,89,90,90,90,91,0,88,91,90,89,90,90,91,90,0,0,90,90,88,89,90,90,91,91,91,91,91,91,90,89,0,0,90,90,91,90,91,91,91,90,91,89,90,90,89,90,88,91,91,91,91,91,91,91,91,90,91,91,91,90,90,90,91,91,91,91,91,90,90,88,91,91,90,90,89,90,90,87,87,89,87,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,87,88,88,89,89,90,90,91,91,92,92,86,86,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,23,87,88,89,90,91,92,86,23,86,87,88,89,90,91,92,86,23,23,23,23,86,86,86,23,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,0,0,93,93,93,93,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,95,95,95,94,95,95,94,94,94,94,94,94,94,94,95,94,0,0,95,0,95,94,94,0,94,95,94,94,0,9,95,94,94,94,94,94,94,95,94,94,94,94,94,95,94,95,94,94,94,95,95,95,94,94,94,95,94,94,95,95,0,0,0,0,94,94,95,94,95,0,95,95,9,0,94,94,99,0,0,100,100,100,100,100,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,99,9,18,94,29,95,99,9,18,94,100,18,29,100,101,102,18,29,103,99,101,102,100,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,9,103,104,100,103,99,103,18,29,18,94,94,29,95,95,103,99,9,9,101,102,18,94,29,29,95,103,99,9,104,100,103,99,18,29,18,29,18,29,18,94,100,101,102,18,94,29,95,103,99,9,103,101,102,18,94,29,95,103,99,9,100,100,100,101,102,103,103,100,18,29,103,103,103,18,94,29,95,9,104,100,103,99,104,100,103,99,104,100,103,99,100,100,100,101,102,100,100,100,100,100,100,18,29,100,18,94,29,95,99,9,18,94,29,95,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100],"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,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[[3,4],2],0,[3,5],[5,-1,[]],[5,-1,[]],[5,2],[[1,1],6],[[1,7],8],[[1,7],8],[9,1],[-1,-1,[]],[[3,5],[[13,[[12,[10,11]]]]]],0,[[],5],[-1,-2,[],[]],[[3,14],6],0,[[3,14,14,5],2],[[3,10],2],[[1,1],[[13,[15]]]],0,[[3,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,5],[[12,[18,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[17,17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[17,17],15],[[10,10],15],0,[17,5],[[],17],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[17]]],19],[-1,[[12,[10]]],19],[5,2],[5,2],[[17,17],6],[[10,10],6],[[17,7],8],[[17,7],8],[[10,7],8],[[10,7],8],[-1,-1,[]],[-1,-1,[]],[[17,5],[[13,[[12,[10,11]]]]]],[[17,-1],2,20],[[10,-1],2,20],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[17,14],6],[[[21,[10]]],17],[[17,10],2],[[17,17],[[13,[15]]]],[[10,10],[[13,[15]]]],[-1,10,22],[[-1,23],10,22],[[17,-1],12,24],[[10,-1],12,24],[[25,-1],10,22],[[17,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[26,4,5],25],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],26],[5,-1,[]],[5,-1,[]],[-1,[[12,[26]]],19],[5,2],[[26,7],8],[[26,7],8],[-1,-1,[]],[[26,14],[[13,[[2,[25,5,5]]]]]],[[26,14],[[13,[25]]]],[[26,14],[[13,[5]]]],[26,5],[[],5],[-1,-2,[],[]],[[],26],[[26,25],[[12,[25,1]]]],[[26,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[[-1,-2],2,[],[]],[[25,25],15],[5,-1,[]],[25,25],[5,-1,[]],[-1,[[12,[25]]],19],[5,2],[[25,25],6],[[25,7],8],[[25,7],8],[-1,-1,[]],[[25,-1],2,20],[[],5],[-1,-2,[],[]],[[25,27],25],[[25,25],[[13,[15]]]],[[25,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[28,5],[[12,[29,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[11,11],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],0,[28,5],[[],28],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[28]]],19],[-1,[[12,[11]]],19],[5,2],[5,2],[[28,28],6],[[11,11],6],[[28,7],8],[[28,7],8],[[11,7],8],[[11,7],8],[-1,-1,[]],[17,28],[-1,-1,[]],[[28,5],[[13,[[12,[10,11]]]]]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[28,14],6],[[[21,[11]]],28],[[28,10],2],[[28,28],[[13,[15]]]],[[11,11],[[13,[15]]]],[[28,-1],12,24],[[11,-1],12,24],[[28,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[13,[14]],6,6],[[12,[30,4]]],22],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[31,-1],-2,[[32,[31]]],[]],[[30,-1],30,[[32,[30]]]],[[31,-1],2,[[32,[31]]]],[[33,34,-1,35],[[12,[2,36]]],22],[[34,33],[[12,[2,36]]]],[[[21,[37]]],37],[[30,-1],30,[[32,[30]]]],[[36,38],36],[[35,38],35],[[30,-1],30,[[32,[38]]]],[[35,[21,[30]]],30],[[30,[21,[30]]],30],[[34,[21,[34]]],34],[[30,[39,[37]],34,33],[[12,[6,36]]]],0,0,[[35,33],[[12,[6,36]]]],[[35,33],[[12,[40,36]]]],[[35,33],[[12,[41,36]]]],[[35,33],[[12,[42,36]]]],[[35,33],[[12,[4,36]]]],[[35,34],35],[[30,34],30],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[30,30],[[38,38],-1,[]],[[30,-1],30,[[32,[30]]]],[[38,38],2],[[30,-1],30,[[32,[30]]]],0,0,[6,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[43,34,34,33],[[12,[6,36]]]],[[44,34,33],[[12,[6,36]]]],[[45,34,34,33],[[12,[6,36]]]],[[46,34,34,34,33],[[12,[6,36]]]],[[47,34,34,33],[[12,[6,36]]]],[[48,34,33],[[12,[6,36]]]],[[49,34,34,33],[[12,[6,36]]]],[[50,34,34,33],[[12,[6,36]]]],[[51,34,34,33],[[12,[6,36]]]],[[52,34,34,33],[[12,[6,36]]]],[[53,34,34,33],[[12,[6,36]]]],[[54,34,33],[[12,[6,36]]]],[[55,34,34,33],[[12,[6,36]]]],[[56,34,34,33],[[12,[6,36]]]],[[57,34,34,33],[[12,[6,36]]]],[[58,34,33],[[12,[6,36]]]],[[59,34,33],[[12,[6,36]]]],[[60,34,34,33],[[12,[6,36]]]],[[61,34,34,33],[[12,[6,36]]]],[[62,34,33],[[12,[6,36]]]],[[63,34,33],[[12,[6,36]]]],[[64,34,33],[[12,[6,36]]]],[[65,34,33],[[12,[6,36]]]],[[66,34,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[[67,67],6],[[34,34,33],[[12,[6,36]]]],[38,38],[33,33],[36,36],[35,35],[31,31],[30,30],[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],[60,60],[61,61],[62,62],[63,63],[64,64],[65,65],[66,66],[37,37],[68,68],[69,69],[70,70],[71,71],[72,72],[67,67],[34,34],[43,[[73,[43]]]],[44,[[73,[44]]]],[45,[[73,[45]]]],[46,[[73,[46]]]],[47,[[73,[45]]]],[48,[[73,[44]]]],[49,[[73,[45]]]],[50,[[73,[43]]]],[51,[[73,[45]]]],[52,[[73,[45]]]],[53,[[73,[45]]]],[54,[[73,[44]]]],[55,[[73,[45]]]],[56,[[73,[45]]]],[57,[[73,[45]]]],[58,[[73,[44]]]],[59,[[73,[44]]]],[60,[[73,[45]]]],[61,[[73,[45]]]],[62,[[73,[44]]]],[63,[[73,[44]]]],[64,[[73,[44]]]],[65,[[73,[44]]]],[66,[[73,[44]]]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[43,43],15],[[44,44],15],[[45,45],15],[[46,46],15],[[38,38],15],[[47,47],15],[[48,48],15],[[51,51],15],[[52,52],15],[[53,53],15],[[54,54],15],[[55,55],15],[[56,56],15],[[57,57],15],[[58,58],15],[[59,59],15],[[60,60],15],[[63,63],15],[[64,64],15],[[65,65],15],[[66,66],15],[[67,67],15],[74,[[12,[[12,[17,28]],36]]]],[74,[[12,[[12,[17,28]],36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[47,30,30,33,3],[[12,[2,36]]]],[[49,30,30,33,3],[[12,[2,36]]]],[[50,30,30,33,3],[[12,[2,36]]]],[[74,33,3],[[12,[2,36]]]],[[35,33,3],[[12,[2,36]]]],[[30,33,3],[[12,[2,36]]]],[[68,33,3],[[12,[2,36]]]],[[69,33,3],[[12,[2,36]]]],[[70,33,3],[[12,[2,36]]]],[[71,33,3],[[12,[2,36]]]],[[43,34,34,33,3],[[12,[2,36]]]],[[44,34,33,3],[[12,[2,36]]]],[[45,34,34,33,3],[[12,[2,36]]]],[[46,34,34,34,33,3],[[12,[2,36]]]],[[47,34,34,33,3],[[12,[2,36]]]],[[48,34,33,3],[[12,[2,36]]]],[[49,34,34,33,3],[[12,[2,36]]]],[[50,34,34,33,3],[[12,[2,36]]]],[[51,34,34,33,3],[[12,[2,36]]]],[[52,34,34,33,3],[[12,[2,36]]]],[[53,34,34,33,3],[[12,[2,36]]]],[[54,34,33,3],[[12,[2,36]]]],[[55,34,34,33,3],[[12,[2,36]]]],[[56,34,34,33,3],[[12,[2,36]]]],[[57,34,34,33,3],[[12,[2,36]]]],[[58,34,33,3],[[12,[2,36]]]],[[59,34,33,3],[[12,[2,36]]]],[[60,34,34,33,3],[[12,[2,36]]]],[[61,34,34,33,3],[[12,[2,36]]]],[[62,34,33,3],[[12,[2,36]]]],[[63,34,33,3],[[12,[2,36]]]],[[64,34,33,3],[[12,[2,36]]]],[[65,34,33,3],[[12,[2,36]]]],[[66,34,33,3],[[12,[2,36]]]],[[34,14],6],[[25,34,33,3],[[12,[2,36]]]],[[37,30,34,33],[[12,[2,36]]]],[[],33],[[],67],[[33,[21,[[2,[4,34]]]]],2],[[33,-1,67,34,6],[[12,[27,36]]],22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[30,30],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[[30,-1],30,[[32,[30]]]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[38]]],19],[-1,[[12,[35]]],19],[-1,[[12,[31]]],19],[-1,[[12,[30]]],19],[-1,[[12,[37]]],19],[-1,[[12,[68]]],19],[-1,[[12,[69]]],19],[-1,[[12,[70]]],19],[-1,[[12,[71]]],19],[-1,[[12,[72]]],19],[-1,[[12,[67]]],19],[-1,[[12,[34]]],19],[[43,30,30],4],[[43,30,30],4],[[44,30],4],[[44,30],4],[[45,30,30],4],[[45,30,30],4],[[46,30,30,30],4],[[46,30,30,30],4],[[25,34,33,3],[[12,[2,36]]]],[[30,-1],30,[[32,[30]]]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[43,43],6],[[44,44],6],[[45,45],6],[[46,46],6],[[38,38],6],[[35,35],6],[[31,31],6],[[30,30],6],[[30,-1],30,[[32,[30]]]],[[47,47],6],[[48,48],6],[[51,51],6],[[52,52],6],[[53,53],6],[[54,54],6],[[55,55],6],[[56,56],6],[[57,57],6],[[58,58],6],[[59,59],6],[[60,60],6],[[63,63],6],[[64,64],6],[[65,65],6],[[66,66],6],[[37,37],6],[[68,68],6],[[69,69],6],[[70,70],6],[[71,71],6],[[72,72],6],[[67,67],6],[[34,34],6],[[35,35,33],6],[[34,34,33],[[12,[6,36]]]],[[43,35,35,33],[[12,[35,36]]]],[[44,35,33],[[12,[35,36]]]],[[45,35,35,33],[[12,[35,36]]]],[[46,35,35,35,33],[[12,[35,36]]]],[[35,33],[[12,[35,36]]]],[[47,35,35,33],[[12,[35,36]]]],[[48,35,33],[[12,[35,36]]]],[[49,35,35,33],[[12,[35,36]]]],[[50,35,35,33],[[12,[35,36]]]],[[51,35,35,33],[[12,[35,36]]]],[[52,35,35,33],[[12,[35,36]]]],[[53,35,35,33],[[12,[35,36]]]],[[54,35,33],[[12,[35,36]]]],[[55,35,35,33],[[12,[35,36]]]],[[56,35,35,33],[[12,[35,36]]]],[[57,35,35,33],[[12,[35,36]]]],[[58,35,33],[[12,[35,36]]]],[[59,35,33],[[12,[35,36]]]],[[60,35,35,33],[[12,[35,36]]]],[[61,35,35,33],[[12,[35,36]]]],[[62,35,33],[[12,[35,36]]]],[[63,35,33],[[12,[35,36]]]],[[64,35,33],[[12,[35,36]]]],[[65,35,33],[[12,[35,36]]]],[[66,35,33],[[12,[35,36]]]],[[35,35],35],[[30,35],30],[41,37],[[38,7],8],[[33,7],8],[[33,7],8],[[36,7],8],[[36,7],8],[[35,7],8],[[35,7],8],[[31,7],8],[[31,7],8],[[30,7],8],[[30,7],8],[[47,7],8],[[47,7],8],[[48,7],8],[[48,7],8],[[49,7],8],[[49,7],8],[[50,7],8],[[50,7],8],[[51,7],8],[[51,7],8],[[52,7],8],[[52,7],8],[[53,7],8],[[53,7],8],[[54,7],8],[[54,7],8],[[55,7],8],[[55,7],8],[[56,7],8],[[56,7],8],[[57,7],8],[[57,7],8],[[58,7],8],[[58,7],8],[[59,7],8],[[59,7],8],[[60,7],8],[[60,7],8],[[61,7],8],[[61,7],8],[[62,7],8],[[62,7],8],[[63,7],8],[[63,7],8],[[64,7],8],[[64,7],8],[[65,7],8],[[65,7],8],[[66,7],8],[[66,7],8],[[37,7],8],[[37,7],8],[[68,7],8],[[68,7],8],[[69,7],8],[[69,7],8],[[70,7],8],[[70,7],8],[[71,7],8],[[71,7],8],[[72,7],8],[[72,7],8],[[67,7],8],[[67,7],8],[[34,7],8],[[34,7],8],[75,38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[1,36],[-1,-1,[]],[72,35],[71,35],[34,35],[[[2,[4,35]]],31],[-1,-1,[]],[[[2,[4,72]]],31],[[[2,[14,30]]],31],[[[2,[14,71]]],31],[[[2,[14,72]]],31],[[[2,[4,70]]],31],[[[2,[4,67,34,30]]],31],[[[2,[4,67,30]]],31],[[[21,[-1]]],31,[[32,[31]]]],[[[2,[14,67,34,30]]],31],[[[2,[4,71]]],31],[[[2,[14,67,30]]],31],[[[76,[-1,-2]]],31,[],[]],[[[2,[14,67,[13,[34]],30]]],31],[[[73,[31]]],31],[[[2,[4,30]]],31],[[[2,[4,67,[13,[34]],30]]],31],[[[2,[37,30]]],31],[[[2,[4,34]]],31],[[[2,[14,70]]],31],[[[2,[14,35]]],31],[[[2,[14,34]]],31],[35,30],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[6,67],[-1,-1,[]],[-1,-1,[]],[[71,[21,[[2,[4,[13,[34]]]]]]],72],[[30,-1],30,[[32,[30]]]],[[33,34],[[21,[[2,[4,35]]]]]],[71,[[39,[[2,[4,67,34]]]]]],[[33,34,14],[[13,[[2,[35,34]]]]]],[[37,30,34,33],[[12,[[77,[4,[2,[67,34]]]],36]]]],[71,30],[[37,30,30,33],[[12,[34,36]]]],[71,[[13,[14]]]],[71,14],[[30,33],[[12,[[13,[67]],36]]]],[[34,34,[77,[4,[2,[34,[13,[34]]]]]],[78,[4]],33],[[12,[2,36]]]],[72,14],[71,34],[[34,33],[[13,[67]]]],[[79,33],[[12,[5,36]]]],[[79,33],[[12,[5,36]]]],[[79,33,5],[[12,[5,36]]]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[34,33,5],[[12,[5,36]]]],[[34,33],[[21,[[2,[4,[13,[34]]]]]]]],[[80,33],[[12,[34,36]]]],[[80,33],[[12,[34,36]]]],[[80,33,5],[[12,[34,36]]]],[[35,33,5],[[12,[34,36]]]],[[30,33,5],[[12,[34,36]]]],[[68,33,5],[[12,[34,36]]]],[[69,33,5],[[12,[34,36]]]],[[70,33,5],[[12,[34,36]]]],[[71,33,5],[[12,[34,36]]]],[[72,33,5],[[12,[34,36]]]],[[33,34,14],[[13,[34]]]],[72,[[21,[[2,[4,[13,[34]]]]]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[31]]]],[[33,34,14],6],[[34,34,33],[[12,[6,36]]]],[38,6],[[38,-1],2,20],[[35,-1],2,20],[[31,-1],2,20],[[30,-1],2,20],[[47,-1],2,20],[[48,-1],2,20],[[51,-1],2,20],[[52,-1],2,20],[[53,-1],2,20],[[54,-1],2,20],[[55,-1],2,20],[[56,-1],2,20],[[57,-1],2,20],[[58,-1],2,20],[[59,-1],2,20],[[60,-1],2,20],[[63,-1],2,20],[[64,-1],2,20],[[65,-1],2,20],[[66,-1],2,20],[[37,-1],2,20],[[68,-1],2,20],[[69,-1],2,20],[[70,-1],2,20],[[71,-1],2,20],[[72,-1],2,20],[[67,-1],2,20],[[34,-1],2,20],[[30,-1],30,[[32,[30]]]],[[37,30,30,30,33],[[12,[30,36]]]],[[30,-1,-2],30,[[32,[30]]],[[32,[30]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[42,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[34,6],[38,6],[34,6],[34,6],[67,6],[38,6],[[37,30,34,33],[[12,[6,36]]]],[38,6],[[30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[67,6],[38,6],[34,6],[[34,33],[[12,[6,36]]]],[[34,[78,[4]],33],[[12,[6,36]]]],[[34,33],[[12,[6,36]]]],[34,6],[38,6],[[30,-1],30,[[32,[30]]]],[[14,34,34],34],[[-1,35,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,35]]]],-1],30,[[32,[30]]]],[[-1,71,-2],30,22,[[32,[30]]]],[[[76,[14,71]],-1],30,[[32,[30]]]],[[-1,34,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,34]]]],-1],30,[[32,[30]]]],[[-1,-2,[13,[34]],-3,-4],30,22,[[32,[67]]],[[32,[30]]],[[32,[30]]]],[[[21,[[2,[14,67,[13,[34]],30]]]],-1],30,[[32,[30]]]],[38,[[13,[75]]]],[[30,-1],30,[[32,[30]]]],[-1,31,[[32,[[21,[31]]]]]],[[30,[39,[[2,[37,30]]]],33],[[12,[30,36]]]],[[-1,-2],31,22,[[32,[[21,[31]]]]]],[[35,[21,[34]]],35],[[72,[21,[34]],33],[[12,[71,36]]]],[[30,-1],30,[[32,[30]]]],[43,4],[43,4],[44,4],[44,4],[45,4],[45,4],[46,4],[46,4],0,0,[30,30],[[30,-1],30,[[32,[30]]]],[-1,50,45],[[4,[21,[34]],34],70],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],71,[[32,[30]]]],[[4,[21,[[2,[4,[13,[34]]]]]],[21,[[2,[4,67,34]]]],34,-1],72,[[32,[30]]]],[30,30],[[30,-1],30,[[32,[30]]]],[[43,43],[[13,[15]]]],[[44,44],[[13,[15]]]],[[45,45],[[13,[15]]]],[[46,46],[[13,[15]]]],[[38,38],[[13,[15]]]],[[47,47],[[13,[15]]]],[[48,48],[[13,[15]]]],[[51,51],[[13,[15]]]],[[52,52],[[13,[15]]]],[[53,53],[[13,[15]]]],[[54,54],[[13,[15]]]],[[55,55],[[13,[15]]]],[[56,56],[[13,[15]]]],[[57,57],[[13,[15]]]],[[58,58],[[13,[15]]]],[[59,59],[[13,[15]]]],[[60,60],[[13,[15]]]],[[63,63],[[13,[15]]]],[[64,64],[[13,[15]]]],[[65,65],[[13,[15]]]],[[66,66],[[13,[15]]]],[[67,67],[[13,[15]]]],[[34,33,[77,[[2,[34,[21,[34]]]],34]],6],[[12,[34,36]]]],[37,37],[[30,-1],30,[[32,[30]]]],[30,30],[30,30],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],35,[[32,[30]]]],[[71,3],2],[[30,-1],30,[[32,[67]]]],[[30,-1],30,[[32,[30]]]],0,0,[[43,30,30,33],[[12,[34,36]]]],[[43,30,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[47,30,30,33],[[12,[34,36]]]],[[48,30,33],[[12,[34,36]]]],[[49,30,30,33],[[12,[34,36]]]],[[50,30,30,33],[[12,[34,36]]]],[[51,30,30,33],[[12,[34,36]]]],[[52,30,30,33],[[12,[34,36]]]],[[53,30,30,33],[[12,[34,36]]]],[[54,30,33],[[12,[34,36]]]],[[55,30,30,33],[[12,[34,36]]]],[[56,30,30,33],[[12,[34,36]]]],[[57,30,30,33],[[12,[34,36]]]],[[58,30,33],[[12,[34,36]]]],[[59,30,33],[[12,[34,36]]]],[[60,30,30,33],[[12,[34,36]]]],[[61,30,30,33],[[12,[34,36]]]],[[62,30,33],[[12,[34,36]]]],[[63,30,33],[[12,[34,36]]]],[[64,30,33],[[12,[34,36]]]],[[65,30,33],[[12,[34,36]]]],[[66,30,33],[[12,[34,36]]]],[[38,-1],12,24],[[35,-1],12,24],[[31,-1],12,24],[[30,-1],12,24],[[37,-1],12,24],[[68,-1],12,24],[[69,-1],12,24],[[70,-1],12,24],[[71,-1],12,24],[[72,-1],12,24],[[67,-1],12,24],[[34,-1],12,24],[[71,-1],2,22],[[81,33],[[12,[81,36]]]],[[81,33,5],[[12,[81,36]]]],[[35,33,5],[[12,[35,36]]]],[[34,33,5],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[35,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,34,-1,6],[[12,[34,36]]],[[83,[34,33],[[82,[[12,[6,36]]]]]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[30,30],[[34,33],34],[[[76,[4,37]]],37],[[[76,[14,30]]],30],[[30,-1],30,[[32,[30]]]],[[80,14,34],2],[[35,14,34],2],[[30,14,34],2],[[68,14,34],2],[[69,14,34],2],[[70,14,34],2],[[71,14,34],2],[[72,14,34],2],[[34,14,34],34],[[80,[39,[4]],[39,[34]]],2],[[80,[39,[4]],[39,[34]]],2],[[-1,-2],37,[[32,[67]]],22],[[35,[21,[[2,[4,[13,[34]]]]]]],35],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[30,33],[[12,[30,36]]]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[[[21,[37]]],37],[[84,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[35,33],[[12,[2,36]]]],[[31,33],[[12,[2,36]]]],[[30,33],[[12,[2,36]]]],[[37,30,30,33],[[12,[2,36]]]],[[68,33],[[12,[2,36]]]],[[69,33],[[12,[2,36]]]],[[70,33],[[12,[2,36]]]],[[71,33],[[12,[2,36]]]],[[72,33],[[12,[2,36]]]],[[34,33],[[12,[2,36]]]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[[30,-1],30,22],[-1,35,22],[-1,30,22],[[[39,[4]],4],[[13,[5]]]],[[30,-1],30,[[32,[30]]]],[[],37],[[35,-1],35,[[32,[31]]]],[[30,-1],30,[[32,[31]]]],[[71,-1],71,[[32,[31]]]],[[72,-1],72,[[32,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[75,75],[[-1,-2],2,[],[]],[[75,75],15],0,[5,-1,[]],[5,-1,[]],[-1,[[12,[75]]],19],[5,2],[[75,75],6],0,[[75,7],8],[-1,-1,[]],[[75,14],4],[[75,-1],2,20],[[],5],[-1,-2,[],[]],0,0,0,[-1,[[12,[[12,[17,28]],4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[-1,[[12,[30,4]]],22],[-1,[[12,[[12,[18,29]],4]]],22],[[75,75],[[13,[15]]]],[[75,-1],12,24],[-1,-2,[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[85,85],[[-1,-2],2,[],[]],[[85,85],15],[5,-1,[]],[5,-1,[]],[-1,[[12,[85]]],19],[5,2],[[85,85],6],[[85,7],8],[[85,7],8],[-1,-1,[]],[[85,-1],2,20],[[],5],0,[-1,-2,[],[]],0,[[4,5,5],85],0,[[85,85],[[13,[15]]]],[[85,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[],86],[87,87],[88,88],[89,89],[90,90],[91,91],[92,92],[86,86],[23,23],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[87,87],15],[[88,88],15],[[89,89],15],[[90,90],15],[[91,91],15],[[92,92],15],[[86,86],15],[[23,23],15],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[87]]],19],[-1,[[12,[88]]],19],[-1,[[12,[89]]],19],[-1,[[12,[90]]],19],[-1,[[12,[91]]],19],[-1,[[12,[92]]],19],[-1,[[12,[86]]],19],[-1,[[12,[23]]],19],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[87,87],6],[[88,88],6],[[89,89],6],[[90,90],6],[[91,91],6],[[92,92],6],[[86,86],6],[[23,23],6],[[87,7],8],[[87,7],8],[[88,7],8],[[88,7],8],[[89,7],8],[[89,7],8],[[90,7],8],[[90,7],8],[[91,7],8],[[91,7],8],[[92,7],8],[[92,7],8],[[86,7],8],[[86,7],8],[[23,7],8],[[23,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[87,-1],2,20],[[88,-1],2,20],[[89,-1],2,20],[[90,-1],2,20],[[91,-1],2,20],[[92,-1],2,20],[[86,-1],2,20],[[23,-1],2,20],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[90,5],86],[[91,5],23],[[87,87],[[13,[15]]]],[[88,88],[[13,[15]]]],[[89,89],[[13,[15]]]],[[90,90],[[13,[15]]]],[[91,91],[[13,[15]]]],[[92,92],[[13,[15]]]],[[86,86],[[13,[15]]]],[[23,23],[[13,[15]]]],[[],86],[[87,-1],12,24],[[88,-1],12,24],[[89,-1],12,24],[[90,-1],12,24],[[91,-1],12,24],[[92,-1],12,24],[[86,-1],12,24],[[23,-1],12,24],[[],23],[[],23],[[],23],[[],86],[[],86],[[],86],[[],23],[[],23],[[],23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],0,0,[[93,18],[[12,[4,4]]]],[[93,94,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],[[93,29],[[12,[4,4]]]],[[93,95,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],0,[[96,5],4],[[96,94,[13,[5]]],4],[[96,86],[[12,[4,4]]]],[96,[[13,[4]]]],[96,14],[[96,94],4],[96,[[12,[4,4]]]],[96,[[12,[4,4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[96,[[13,[4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[[96,23],[[12,[4,4]]]],[[96,95],[[12,[4,4]]]],[96,6],[[96,86],6],[[96,23],6],[96,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[[98,5],4],[[],98],[5,-1,[]],[5,-1,[]],[5,2],[[98,94,[13,[5]]],4],[-1,-1,[]],[[98,86],[[12,[4,4]]]],[[],5],[-1,-2,[],[]],[98,14],[[98,94],4],[98,[[12,[4,4]]]],[98,[[12,[4,4]]]],[[98,[21,[97]]],[[13,[4]]]],[[98,6],[[13,[4]]]],[98,[[13,[4]]]],[[98,6],[[13,[4]]]],[[98,23],[[12,[4,4]]]],[[98,95],[[12,[4,4]]]],[98,6],[[98,86],6],[[98,23],6],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[98,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,[[99,85],2],[42,41],[41,42],[100,2],[100,2],[100,2],[100,2],[100,2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[18,18],[94,94],[29,29],[95,95],[99,99],[9,9],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[18,18],15],[[94,94],15],[100,[[12,[18,29]]]],[18,[[12,[18,29]]]],[29,[[12,[18,29]]]],[[100,14],2],[[],[[101,[99]]]],[[],[[102,[99]]]],[[],18],[[],29],[[],103],[[],99],[5,-1,[]],[5,-1,[]],[100,2],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[100,2],[[18,18],6],[[94,94],6],[[29,29],6],[[95,95],6],[[9,9],6],0,[[104,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[100,85],[[12,[2,9]]]],[[103,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[99,85,[13,[[21,[42]]]]],[[12,[2,4]]]],0,[18,18],[29,29],[[18,7],8],[[94,7],8],[[94,7],8],[[29,7],8],[[95,7],8],[[95,7],8],[[103,7],8],[[99,7],8],[[9,7],8],[[9,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[18,29],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[104,86],[[12,[42,4]]]],[[100,86],2],[[103,86],[[12,[42,4]]]],[[99,86],[[12,[42,4]]]],[18,[[77,[97,[21,[94]]]]]],[29,[[77,[97,[21,[95]]]]]],[18,[[21,[94]]]],[29,[[21,[95]]]],[18,[[2,[[21,[94]],[77,[97,[21,[94]]]]]]]],[29,[[2,[[21,[95]],[77,[97,[21,[95]]]]]]]],[[18,-1],2,20],[[94,-1],2,20],[100,2],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[[100,5],2],[[100,27],2],[-1,[[101,[-1]]],104],[-1,[[102,[-1]]],104],[-1,103,22],[[[21,[42]]],103],[[100,94],2],[[18,94],2],[[29,94],2],0,[103,4],[103,[[21,[42]]]],[[18,18],[[13,[15]]]],[[94,94],[[13,[15]]]],[[29,29],[[13,[15]]]],[[95,95],[[13,[15]]]],[[9,9],[[13,[15]]]],[104,[[12,[42,4]]]],[100,[[12,[2,9]]]],[103,[[12,[42,4]]]],[99,[[12,[42,4]]]],[[104,42],[[12,[2,4]]]],[100,[[12,[2,9]]]],[[103,42],[[12,[2,4]]]],[[99,42],[[12,[2,4]]]],[[104,42,23],[[12,[2,4]]]],[[100,23],2],[[103,42,23],[[12,[2,4]]]],[[99,42,23],[[12,[2,4]]]],[100,2],[100,2],[100,2],[[[101,[-1]],18],[[12,[-1,4]]],104],[[[102,[-1]],29],[[12,[-1,4]]],104],[100,2],[[100,41],[[12,[2,9]]]],[[100,[21,[41]]],[[12,[2,9]]]],[[100,42],2],[[100,[21,[42]]],2],[[100,95],[[12,[2,9]]]],[[18,95],[[12,[2,9]]]],[[29,95],[[12,[2,9]]]],[[100,5],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[100,2]],"c":[],"p":[[6,"Error",10],[1,"tuple"],[10,"AssemblyProgram",10],[5,"String",2653],[1,"usize"],[1,"bool"],[5,"Formatter",2654],[8,"Result",2654],[6,"Error",2349],[6,"CoreOp",65],[6,"StandardOp",416],[6,"Result",2655],[6,"Option",2656],[1,"str"],[6,"Ordering",2657],[5,"TypeId",2658],[5,"CoreProgram",65],[5,"CoreProgram",2349],[10,"Deserializer",2659],[10,"Hasher",2660],[5,"Vec",2661],[10,"ToString",2653],[5,"Output",1987],[10,"Serializer",2662],[6,"Location",376],[5,"Globals",348],[1,"isize"],[5,"StandardProgram",416],[5,"StandardProgram",2349],[6,"Expr",566],[6,"Declaration",566],[10,"Into",2663],[5,"Env",566],[6,"Type",566],[6,"ConstExpr",566],[6,"Error",566],[6,"Pattern",566],[6,"Annotation",566],[1,"slice"],[1,"char"],[1,"f64"],[1,"i64"],[10,"AssignOp",566],[10,"UnaryOp",566],[10,"BinaryOp",566],[10,"TernaryOp",566],[5,"Add",566],[5,"Negate",566],[6,"Arithmetic",566],[5,"Assign",566],[5,"BitwiseAnd",566],[5,"BitwiseNand",566],[5,"BitwiseNor",566],[5,"BitwiseNot",566],[5,"BitwiseOr",566],[5,"BitwiseXor",566],[6,"Comparison",566],[5,"Get",566],[6,"Put",566],[5,"And",566],[5,"Or",566],[5,"Not",566],[5,"New",566],[5,"Delete",566],[5,"Tag",566],[5,"Data",566],[6,"Mutability",566],[5,"CoreBuiltin",566],[5,"StandardBuiltin",566],[5,"FFIProcedure",566],[5,"Procedure",566],[5,"PolyProcedure",566],[5,"Box",2664],[10,"Compile",566],[5,"SourceCodeLocation",1924],[5,"BTreeMap",2665],[5,"HashMap",2666],[5,"HashSet",2667],[10,"GetSize",566],[10,"GetType",566],[10,"Simplify",566],[17,"Output"],[10,"Fn",2668],[10,"TypeCheck",566],[5,"FFIBinding",1959],[5,"Input",1987],[6,"Axis",1987],[6,"Direction",1987],[6,"Color",1987],[6,"InputMode",1987],[6,"OutputMode",1987],[5,"Channel",1987],[10,"CompiledTarget",2293],[6,"CoreOp",2349],[6,"StandardOp",2349],[10,"Architecture",2293],[1,"i32"],[5,"C",2319],[5,"StandardDevice",2349],[10,"VirtualMachineProgram",2349],[5,"CoreInterpreter",2349],[5,"StandardInterpreter",2349],[5,"TestingDevice",2349],[10,"Device",2349],[15,"Compare",207],[15,"IsGreater",207],[15,"IsGreaterEqual",207],[15,"IsLess",207],[15,"IsLessEqual",207],[15,"IsEqual",207],[15,"IsNotEqual",207],[15,"GetAddress",207],[15,"Move",207],[15,"Copy",207],[15,"Index",207],[15,"Add",207],[15,"Sub",207],[15,"Mul",207],[15,"Div",207],[15,"Rem",207],[15,"DivRem",207],[15,"VecAdd",207],[15,"VecSub",207],[15,"VecMul",207],[15,"VecDiv",207],[15,"VecRem",207],[15,"And",207],[15,"Or",207],[15,"VecNot",207],[15,"VecAnd",207],[15,"VecOr",207],[15,"VecInc",207],[15,"VecDec",207],[15,"LeftShift",207],[15,"LogicalRightShift",207],[15,"ArithmeticRightShift",207],[15,"VecLeftShift",207],[15,"VecLogicalRightShift",207],[15,"VecArithmeticRightShift",207],[15,"VecGez",207],[15,"VecNeg",207],[15,"VecOffset",207],[15,"VecIndex",207],[15,"PopFrom",207],[15,"Array",207],[15,"Const",207],[15,"BitwiseNand",207],[15,"BitwiseXor",207],[15,"BitwiseOr",207],[15,"BitwiseNor",207],[15,"BitwiseAnd",207],[15,"VecBitwiseAnd",207],[15,"VecBitwiseOr",207],[15,"VecBitwiseXor",207],[15,"VecBitwiseNor",207],[15,"VecBitwiseNand",207],[15,"VecBitwiseNot",207],[15,"Global",207],[15,"PushTo",207],[15,"IsGreater",510],[15,"IsLess",510],[15,"Const",510],[15,"Pow",510],[15,"Add",510],[15,"Sub",510],[15,"Mul",510],[15,"Div",510],[15,"Rem",510],[15,"VecAdd",510],[15,"VecSub",510],[15,"VecMul",510],[15,"VecDiv",510],[15,"VecRem",510],[15,"VecNeg",510],[15,"VecPow",510],[15,"VecSin",510],[15,"VecCos",510],[15,"VecTan",510],[15,"VecASin",510],[15,"VecACos",510],[15,"VecATan",510],[15,"VecGez",510],[15,"FromImport",1912],[15,"MismatchedTypes",1914],[15,"MismatchedMutability",1914],[15,"UnexpectedConstParam",1914],[15,"NonExhaustivePatterns",1914]],"b":[[45,"impl-Display-for-Error"],[46,"impl-Debug-for-Error"],[173,"impl-Debug-for-CoreProgram"],[174,"impl-Display-for-CoreProgram"],[175,"impl-Debug-for-CoreOp"],[176,"impl-Display-for-CoreOp"],[359,"impl-Display-for-Globals"],[360,"impl-Debug-for-Globals"],[402,"impl-Debug-for-Location"],[403,"impl-Display-for-Location"],[480,"impl-Display-for-StandardProgram"],[481,"impl-Debug-for-StandardProgram"],[482,"impl-Display-for-StandardOp"],[483,"impl-Debug-for-StandardOp"],[1222,"impl-PartialEq-for-Expr"],[1223,"impl-Expr"],[1279,"impl-Display-for-Env"],[1280,"impl-Debug-for-Env"],[1281,"impl-Display-for-Error"],[1282,"impl-Debug-for-Error"],[1283,"impl-Debug-for-ConstExpr"],[1284,"impl-Display-for-ConstExpr"],[1285,"impl-Debug-for-Declaration"],[1286,"impl-Display-for-Declaration"],[1287,"impl-Display-for-Expr"],[1288,"impl-Debug-for-Expr"],[1289,"impl-Debug-for-Add"],[1290,"impl-Display-for-Add"],[1291,"impl-Display-for-Negate"],[1292,"impl-Debug-for-Negate"],[1293,"impl-Display-for-Arithmetic"],[1294,"impl-Debug-for-Arithmetic"],[1295,"impl-Debug-for-Assign"],[1296,"impl-Display-for-Assign"],[1297,"impl-Display-for-BitwiseAnd"],[1298,"impl-Debug-for-BitwiseAnd"],[1299,"impl-Debug-for-BitwiseNand"],[1300,"impl-Display-for-BitwiseNand"],[1301,"impl-Display-for-BitwiseNor"],[1302,"impl-Debug-for-BitwiseNor"],[1303,"impl-Display-for-BitwiseNot"],[1304,"impl-Debug-for-BitwiseNot"],[1305,"impl-Display-for-BitwiseOr"],[1306,"impl-Debug-for-BitwiseOr"],[1307,"impl-Display-for-BitwiseXor"],[1308,"impl-Debug-for-BitwiseXor"],[1309,"impl-Display-for-Comparison"],[1310,"impl-Debug-for-Comparison"],[1311,"impl-Debug-for-Get"],[1312,"impl-Display-for-Get"],[1313,"impl-Display-for-Put"],[1314,"impl-Debug-for-Put"],[1315,"impl-Display-for-And"],[1316,"impl-Debug-for-And"],[1317,"impl-Debug-for-Or"],[1318,"impl-Display-for-Or"],[1319,"impl-Debug-for-Not"],[1320,"impl-Display-for-Not"],[1321,"impl-Debug-for-New"],[1322,"impl-Display-for-New"],[1323,"impl-Debug-for-Delete"],[1324,"impl-Display-for-Delete"],[1325,"impl-Display-for-Tag"],[1326,"impl-Debug-for-Tag"],[1327,"impl-Display-for-Data"],[1328,"impl-Debug-for-Data"],[1329,"impl-Debug-for-Pattern"],[1330,"impl-Display-for-Pattern"],[1331,"impl-Display-for-CoreBuiltin"],[1332,"impl-Debug-for-CoreBuiltin"],[1333,"impl-Display-for-StandardBuiltin"],[1334,"impl-Debug-for-StandardBuiltin"],[1335,"impl-Debug-for-FFIProcedure"],[1336,"impl-Display-for-FFIProcedure"],[1337,"impl-Debug-for-Procedure"],[1338,"impl-Display-for-Procedure"],[1339,"impl-Display-for-PolyProcedure"],[1340,"impl-Debug-for-PolyProcedure"],[1341,"impl-Debug-for-Mutability"],[1342,"impl-Display-for-Mutability"],[1343,"impl-Display-for-Type"],[1344,"impl-Debug-for-Type"],[1351,"impl-From%3CPolyProcedure%3E-for-ConstExpr"],[1352,"impl-From%3CProcedure%3E-for-ConstExpr"],[1353,"impl-From%3CType%3E-for-ConstExpr"],[1354,"impl-From%3C(String,+ConstExpr)%3E-for-Declaration"],[1356,"impl-From%3C(String,+PolyProcedure)%3E-for-Declaration"],[1357,"impl-From%3C(%26str,+Expr)%3E-for-Declaration"],[1358,"impl-From%3C(%26str,+Procedure)%3E-for-Declaration"],[1359,"impl-From%3C(%26str,+PolyProcedure)%3E-for-Declaration"],[1360,"impl-From%3C(String,+FFIProcedure)%3E-for-Declaration"],[1361,"impl-From%3C(String,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1362,"impl-From%3C(String,+Mutability,+Expr)%3E-for-Declaration"],[1363,"impl-From%3CVec%3CT%3E%3E-for-Declaration"],[1364,"impl-From%3C(%26str,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1365,"impl-From%3C(String,+Procedure)%3E-for-Declaration"],[1366,"impl-From%3C(%26str,+Mutability,+Expr)%3E-for-Declaration"],[1367,"impl-From%3CBTreeMap%3CK,+V%3E%3E-for-Declaration"],[1368,"impl-From%3C(%26str,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1369,"impl-From%3CBox%3CDeclaration%3E%3E-for-Declaration"],[1370,"impl-From%3C(String,+Expr)%3E-for-Declaration"],[1371,"impl-From%3C(String,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1372,"impl-From%3C(Pattern,+Expr)%3E-for-Declaration"],[1373,"impl-From%3C(String,+Type)%3E-for-Declaration"],[1374,"impl-From%3C(%26str,+FFIProcedure)%3E-for-Declaration"],[1375,"impl-From%3C(%26str,+ConstExpr)%3E-for-Declaration"],[1376,"impl-From%3C(%26str,+Type)%3E-for-Declaration"],[1970,"impl-Debug-for-FFIBinding"],[1971,"impl-Display-for-FFIBinding"],[2175,"impl-Display-for-Axis"],[2176,"impl-Debug-for-Axis"],[2177,"impl-Display-for-Direction"],[2178,"impl-Debug-for-Direction"],[2179,"impl-Debug-for-Color"],[2180,"impl-Display-for-Color"],[2181,"impl-Display-for-InputMode"],[2182,"impl-Debug-for-InputMode"],[2183,"impl-Debug-for-OutputMode"],[2184,"impl-Display-for-OutputMode"],[2185,"impl-Debug-for-Channel"],[2186,"impl-Display-for-Channel"],[2187,"impl-Debug-for-Input"],[2188,"impl-Display-for-Input"],[2189,"impl-Debug-for-Output"],[2190,"impl-Display-for-Output"],[2519,"impl-Display-for-CoreOp"],[2520,"impl-Debug-for-CoreOp"],[2522,"impl-Display-for-StandardOp"],[2523,"impl-Debug-for-StandardOp"],[2526,"impl-Debug-for-Error"],[2527,"impl-Display-for-Error"]]}]\ +["sage",{"doc":"The Sage Programming Language","t":"SSSCCCCCCCEKEEEEEEGEEEEEEEEEPPPPPPNNNNNCMNNNNNNNNMCNNMCNMNCMNNNNNPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNSPSSSSSSSPPGPSSNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHFPPFPPPGPPPPPPPGPPPPPPFKPKPFFFFFFPPTTPPPPGKPPPGPPPPFPPTFPPGPPFPPPPPPPPPPFPGGPFPPPPPFKKPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPGPTFPPFPPPPPPFPPPFGPPPPPFPPPPFGPPPPPTKPPPFPPPPPPPPPPPTFPPKPPPPPGPPPKPPPTKPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOFNNNNNONNNNNONNNNNNOOOHHHHHNNNNNNCCFNNNNNNNNNNNNNNNONONONNNNNNNPPPPGPPPPPPPPPPFPPGPPPPPPPPPPGPPPPPPPPFGPPPPPPPPPPPPPPFGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKNNNNCMMMNMMMMNNNNNMMMMMMFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPFGPFPPPKPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFFGFPPPPPFPPPKPPNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNONNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNMNNONNNNNNNMNNNMNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","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","deref","deref_mut","drop","eq","fmt","fmt","from","from","get_op","globals","init","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","ArithmeticRightShift","Array","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Call","CallLabel","Comment","Compare","Const","Copy","CoreOp","CoreProgram","Dec","Div","DivRem","Else","End","Fn","Get","GetAddress","Global","If","Inc","Index","IsEqual","IsGreater","IsGreaterEqual","IsLess","IsLessEqual","IsNotEqual","LeftShift","LogicalRightShift","Many","Move","Mul","Neg","Next","Not","Or","Pop","PopFrom","Prev","Push","PushAddress","PushConst","PushTo","Put","Rem","Return","Set","SetLabel","Sub","Swap","VecAdd","VecAnd","VecArithmeticRightShift","VecBitwiseAnd","VecBitwiseNand","VecBitwiseNor","VecBitwiseNot","VecBitwiseOr","VecBitwiseXor","VecDec","VecDiv","VecGez","VecInc","VecIndex","VecLeftShift","VecLogicalRightShift","VecMul","VecNeg","VecNot","VecOffset","VecOr","VecRem","VecSet","VecSub","While","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","get_op","hash","hash","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","push_string","put_string","serialize","serialize","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","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","dst","name","offset","offset","offset","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","sp","sp","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","vals","Globals","add_global","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","deserialize","drop","fmt","fmt","from","get_global","get_global_location","get_global_size","get_size","init","into","new","resolve","serialize","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","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","into","offset","partial_cmp","serialize","to_owned","to_string","try_from","try_into","type_id","ACos","ASin","ATan","Add","Alloc","Call","Const","CoreOp","Cos","Div","Free","IsGreater","IsLess","Mul","Neg","Pow","PushConst","Rem","Set","Sin","Sqrt","StandardOp","StandardProgram","Sub","Tan","ToFloat","ToInt","VecACos","VecASin","VecATan","VecAdd","VecCos","VecDiv","VecGez","VecMul","VecNeg","VecPow","VecRem","VecSet","VecSin","VecSub","VecTan","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_op","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","serialize","serialize","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","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","size","size","size","size","size","size","size","size","size","size","size","size","size","size","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","parse","Add","Add","Alt","And","Annotated","Annotated","Annotated","Annotation","Any","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","ConstParam","Constant","CoreBuiltin","CoreBuiltin","CouldntSimplify","DEAD_CODE","Data","DeadCode","Debug","Declaration","Declare","Declare","Delete","Deref","DerefMut","DerefNonPointer","Display","Divide","DuplicateMember","Enum","EnumUnion","EnumUnion","EnumUnion","Env","Equal","Error","Expr","ExternProc","FFIProcedure","FFIProcedure","Float","Float","FromImport","FromImportAll","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","Module","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","UnexpectedConstParam","UnimplementedOperator","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_char","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","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","display","display","display","display","display","display","display","display","display","div","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","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","equals","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","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","get_type_params","gt","hard_with","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","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","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_const_param","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","many","match_pattern","module","monomorphize","monomorphize","mul","name","name","name","name","name","name","name","name","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","print","println","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_common_name","simplify","simplify_checked","simplify_checked","simplify_checked","simplify_until_atomic","simplify_until_concrete","simplify_until_const_param","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","var","variant_index","while_loop","wildcard","with","with","with","with","module","names","expected","expected","expr","expr","expr","expr","found","found","found","patterns","SourceCodeLocation","borrow","borrow_mut","clone","clone_into","cmp","column","deref","deref_mut","deserialize","drop","eq","filename","fmt","from","get_code","hash","init","into","length","line","offset","parse_asm","parse_frontend","parse_frontend_minimal","parse_lir","parse_vm","partial_cmp","serialize","to_owned","try_from","try_into","type_id","ffi","io","FFIBinding","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","input_cells","into","name","new","output_cells","partial_cmp","serialize","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","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","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","std_op","supports_floats","supports_input","supports_output","version","C","borrow","borrow_mut","declare_proc","default","deref","deref_mut","drop","end","from","get","init","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","And","ArithmeticRightShift","BitwiseAnd","BitwiseNand","BitwiseNot","BitwiseOr","BitwiseXor","Call","Call","Comment","CoreInterpreter","CoreOp","CoreOp","CoreProgram","Cos","Dec","Deref","Device","Div","Div","Else","End","Error","ExpectedCore","Free","Function","Get","If","Inc","Index","IsNonNegative","IsNonNegative","LeftShift","Load","LogicalRightShift","Move","Mul","Mul","Neg","Neg","Not","Offset","Or","Peek","Poke","Pow","Put","Refer","Rem","Rem","Return","Set","Set","Sin","StandardDevice","StandardInterpreter","StandardOp","StandardProgram","Store","Sub","Sub","Swap","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","init","input","into","into","into","into","into","into","into","into","into","is_non_negative","load_vector","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_float_register","set_float_vector","set_register","set_vector","std_op","std_op","std_op","store_vector","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"],[65,"sage::asm::core"],[207,"sage::asm::core::CoreOp"],[348,"sage::asm::globals"],[376,"sage::asm::location"],[416,"sage::asm::std"],[510,"sage::asm::std::StandardOp"],[565,"sage::frontend"],[566,"sage::lir"],[1912,"sage::lir::Declaration"],[1914,"sage::lir::Error"],[1924,"sage::parse"],[1957,"sage::side_effects"],[1959,"sage::side_effects::ffi"],[1987,"sage::side_effects::io"],[2293,"sage::targets"],[2319,"sage::targets::c"],[2349,"sage::vm"],[2653,"alloc::string"],[2654,"core::fmt"],[2655,"core::fmt"],[2656,"core::option"],[2657,"core::cmp"],[2658,"core::any"],[2659,"serde::de"],[2660,"core::hash"],[2661,"alloc::vec"],[2662,"alloc::string"],[2663,"core::convert"],[2664,"alloc::boxed"],[2665,"alloc::collections::btree::map"],[2666,"std::collections::hash::map"],[2667,"std::collections::hash::set"],[2668,"core::ops::function"]],"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","Side Effects 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.","Assembly Global Variables","","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.","Arithmetic right shift a destination by 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 …","Write a set of values to a memory location.","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.","Left shift a destination by a source value.","Logical right shift a destination by a source value. This …","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 …","Get the address of a location and push it to the stack.","Push a const to the stack.","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.","Perform a SIMD addition over a vector of integers. This …","Perform a vector “And” operation. This will perform a …","Perform a SIMD arithmetic right shift operation over a …","","","","","","","Decrement a vector of integers.","Perform a SIMD division over a vector of integers. This …","Perform a SIMD “is >= zero” operation over a vector of …","Increment a vector of integers.","Perform a SIMD pointer index operation over a vector of …","Perform a SIMD left shift operation over a vector of …","Perform a SIMD logical right shift operation over a vector …","Perform a SIMD multiplication over a vector of integers. …","Negate a vector of integers using SIMD.","Perform a vector “Not” operation. This will replace …","Perform a SIMD pointer arithmetic operation over a vector …","Perform a vector “Or” operation. This will perform a …","Perform a SIMD remainder over a vector of integers. This …","Set the vector values of a destination.","Perform a SIMD subtraction over a vector of integers. This …","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.","Write some constant values to a location on the tape","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).","Push some constant values to the stack.","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 …","Perform a SIMD floating point inverse cosine operation.","Perform a SIMD floating point inverse sine operation.","Perform a SIMD floating point inverse tangent operation.","Perform a SIMD floating point addition operation.","Perform a SIMD floating point cosine operation.","Perform a SIMD floating point division operation.","Perform a SIMD floating point greater than or equal to …","Perform a SIMD floating point multiplication operation.","Perform a SIMD floating point negation operation.","Perform a SIMD floating point power operation.","Perform a SIMD floating point remainder operation.","Set the vector values of a destination.","Perform a SIMD floating point sine operation.","Perform a SIMD floating point subtraction operation.","Perform a SIMD floating point tangent operation.","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 beginning of the constant data.","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.","","","","","","","","The constant data.","","","","","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 …","The expression equal to any other expression.","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.","","A constant literal used in a type expression, like a …","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.","","","Duplicate implementations of a member for a type","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.","Import an element from a module.","","","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","Declare a module","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.","An error caused by unexpectedly passing a constant …","","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.","","","Add monomorphized methods for a given monomorph of a …","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.","Apply this template type with some type 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 character.","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.","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 template arguments for the monomorph (this type) …","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 template parameters for this template type.","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 type simplified enough to get information about …","Is this type a constant parameter?","Is this data protected against mutation?","Is this dead code?","Is this pattern exhaustive?","Is this annotation a location?","","Is this type a monomorph of a given template type?","Can this data be accessed mutably?","Is this annotation none?","Is this a polymorphic function?","","Is this type recursive?","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?","Create a collection of declarations","Generate an expression which evaluates a match expression, …","Create a module with a given name and a list of …","","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 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.","Strip the template arguments to get the inner type","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.","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 …","","","","","","","Foreign Function Interface","I/O Module","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).","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.","The type for the C 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. The …","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Boolean-and the register and the value pointed to on the …","Interpret the register’s value as a signed integer. …","Perform bitwise and on the cell and the value pointed to …","Perform bitwise nand on the cell and the value pointed to …","Bitwise not the register. Store the result in the register.","Perform bitwise or on the cell and the value pointed to on …","Perform a bitwise xor 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 …","Decrement the register.","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.","Increment the register. The argument is the size of the …","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 …","Left shift the cell by the value pointed to on the tape. …","Store the value pointed to on the tape to the register.","Logical right shift the cell by the value pointed to on …","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 …","Negate the register. The argument is the size of the …","Negate the value of the register (as a float).","Boolean-not the register (0 if the register is non-zero, 1 …","Interpret the register’s value as a pointer to a cell. …","Boolean-or the register and the value pointed to on the …","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 …","Return from the current function.","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 …","Store the register to the value pointed to on the tape.","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Swap the value of the register with the value pointed to …","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,3,0,3,1,1,1,1,1,1,1,1,3,0,1,1,3,0,3,3,1,0,3,1,1,1,1,1,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,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,17,17,10,17,10,17,10,17,10,17,10,17,17,17,17,10,17,10,17,10,17,10,17,10,17,17,10,10,17,10,17,17,10,17,10,17,10,17,17,17,17,10,10,10,17,10,10,17,17,10,17,10,17,10,17,10,17,10,105,106,107,108,109,110,111,112,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,105,106,107,108,109,110,111,145,146,147,148,149,150,151,152,153,154,155,156,157,158,115,142,143,158,114,122,123,124,125,126,129,130,131,132,133,137,138,139,140,141,142,143,159,144,152,153,154,155,156,157,159,144,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,134,135,136,137,138,139,140,143,159,145,147,148,149,150,151,152,153,154,155,156,145,146,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,25,0,0,0,0,0,0,0,25,25,0,25,0,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,28,28,11,28,11,28,11,28,11,28,28,28,28,11,28,11,28,11,28,11,28,11,28,28,11,11,28,28,11,28,28,11,28,11,28,28,28,28,11,28,11,28,28,11,28,11,28,11,28,11,28,11,160,161,160,161,162,163,164,165,166,167,168,160,161,169,170,171,172,173,174,175,176,177,178,179,180,181,182,169,170,171,172,173,174,175,176,177,178,179,180,181,182,163,164,165,166,167,168,169,170,171,172,173,175,182,162,0,0,49,37,0,36,35,30,0,35,67,34,30,34,36,36,0,35,30,34,35,30,36,0,0,30,0,30,0,0,0,0,0,0,35,34,38,38,35,34,35,34,0,0,36,38,31,0,30,37,34,38,0,35,36,38,0,38,59,0,35,30,0,30,30,36,59,49,36,34,35,30,34,0,57,0,0,31,0,35,35,34,31,31,0,0,0,57,57,30,30,67,31,30,35,34,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,38,57,57,34,38,38,31,30,30,35,30,36,36,36,31,35,49,0,67,30,0,36,34,0,36,36,36,38,35,34,0,57,35,35,0,0,37,34,34,35,31,0,49,35,31,34,0,0,36,36,30,49,30,34,0,35,36,35,0,35,31,35,30,37,34,49,35,37,34,36,38,0,35,38,0,30,35,30,37,34,0,35,31,34,0,36,35,36,38,0,30,36,36,35,30,34,34,36,36,36,31,31,37,36,30,30,37,31,30,31,33,34,37,30,36,35,30,35,30,34,37,68,69,35,35,35,35,35,35,30,30,30,30,30,30,30,38,30,38,30,68,69,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,43,43,44,44,45,45,46,46,34,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,74,74,43,43,44,44,45,45,46,46,47,49,50,74,35,30,68,69,70,71,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,34,59,37,33,67,33,33,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,35,31,30,37,68,69,70,71,72,67,34,43,43,44,44,45,45,46,46,59,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,35,31,30,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,35,34,43,44,45,46,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,35,30,37,38,33,33,36,36,35,35,31,31,30,30,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,60,60,61,61,62,62,63,63,64,64,65,65,66,66,37,37,68,68,69,69,70,70,71,71,72,72,67,67,34,34,38,38,33,36,36,35,35,35,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,67,34,72,30,33,71,33,37,71,37,71,71,30,34,72,71,34,79,79,79,35,30,68,69,70,71,72,34,34,80,80,80,35,30,68,69,70,71,72,33,72,30,30,33,34,38,38,35,31,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,30,37,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,34,38,34,34,67,38,37,38,30,34,67,38,34,34,34,34,34,38,30,34,30,30,30,30,30,30,30,30,38,30,31,37,31,35,72,30,43,43,44,44,45,45,46,46,68,69,30,30,50,70,71,72,30,30,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,34,37,30,30,30,35,71,30,30,68,69,43,43,44,44,45,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,35,31,30,37,68,69,70,71,72,67,34,71,81,81,35,34,34,34,34,34,34,34,34,34,34,34,30,34,37,30,30,80,35,30,68,69,70,71,72,34,80,80,37,35,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,84,43,43,44,44,45,45,46,46,35,31,30,37,68,69,70,71,72,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,35,30,34,30,37,35,30,71,72,183,183,184,185,186,184,185,187,186,184,185,187,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,0,0,0,0,75,75,75,75,75,75,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,90,90,90,91,0,90,91,89,91,89,90,90,91,90,91,0,91,90,0,90,90,91,90,91,89,90,90,90,91,0,88,91,90,89,90,90,91,90,0,0,90,90,88,89,90,90,91,91,91,91,91,91,90,89,0,0,90,90,91,90,91,91,91,90,91,89,90,90,89,90,88,91,91,91,91,91,91,91,91,90,91,91,91,90,90,90,91,91,91,91,91,90,90,88,91,91,90,90,89,90,90,87,87,89,87,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,87,88,88,89,89,90,90,91,91,92,92,86,86,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,23,87,88,89,90,91,92,86,23,86,87,88,89,90,91,92,86,23,23,23,23,86,86,86,23,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,0,0,93,93,93,93,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,95,95,95,94,95,95,94,94,94,94,94,94,94,94,95,94,0,0,95,0,95,94,94,0,94,95,94,94,0,9,95,94,94,94,94,94,94,95,94,94,94,94,94,95,94,95,94,94,94,95,95,95,94,94,94,95,94,94,95,95,0,0,0,0,94,94,95,94,95,0,95,95,9,0,94,94,99,0,0,100,100,100,100,100,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,99,9,18,94,29,95,99,9,18,94,100,18,29,100,101,102,18,29,103,99,101,102,100,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,9,103,104,100,103,99,103,18,29,18,94,94,29,95,95,103,99,9,9,101,102,18,94,29,29,95,103,99,9,104,100,103,99,18,29,18,29,18,29,18,94,100,101,102,18,94,29,95,103,99,9,103,101,102,18,94,29,95,103,99,9,100,100,100,101,102,103,103,100,18,29,103,103,103,18,94,29,95,9,104,100,103,99,104,100,103,99,104,100,103,99,100,100,100,101,102,100,100,100,100,100,100,18,29,100,18,94,29,95,99,9,18,94,29,95,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100],"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,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[[3,4],2],0,[3,5],[5,-1,[]],[5,-1,[]],[5,2],[[1,1],6],[[1,7],8],[[1,7],8],[9,1],[-1,-1,[]],[[3,5],[[13,[[12,[10,11]]]]]],0,[[],5],[-1,-2,[],[]],[[3,14],6],0,[[3,14,14,5],2],[[3,10],2],[[1,1],[[13,[15]]]],0,[[3,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,5],[[12,[18,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[17,17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[17,17],15],[[10,10],15],0,[17,5],[[],17],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[17]]],19],[-1,[[12,[10]]],19],[5,2],[5,2],[[17,17],6],[[10,10],6],[[17,7],8],[[17,7],8],[[10,7],8],[[10,7],8],[-1,-1,[]],[-1,-1,[]],[[17,5],[[13,[[12,[10,11]]]]]],[[17,-1],2,20],[[10,-1],2,20],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[17,14],6],[[[21,[10]]],17],[[17,10],2],[[17,17],[[13,[15]]]],[[10,10],[[13,[15]]]],[-1,10,22],[[-1,23],10,22],[[17,-1],12,24],[[10,-1],12,24],[[25,-1],10,22],[[17,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[26,4,5],25],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],26],[5,-1,[]],[5,-1,[]],[-1,[[12,[26]]],19],[5,2],[[26,7],8],[[26,7],8],[-1,-1,[]],[[26,14],[[13,[[2,[25,5,5]]]]]],[[26,14],[[13,[25]]]],[[26,14],[[13,[5]]]],[26,5],[[],5],[-1,-2,[],[]],[[],26],[[26,25],[[12,[25,1]]]],[[26,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[[-1,-2],2,[],[]],[[25,25],15],[5,-1,[]],[25,25],[5,-1,[]],[-1,[[12,[25]]],19],[5,2],[[25,25],6],[[25,7],8],[[25,7],8],[-1,-1,[]],[[25,-1],2,20],[[],5],[-1,-2,[],[]],[[25,27],25],[[25,25],[[13,[15]]]],[[25,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[28,5],[[12,[29,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[11,11],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],0,[28,5],[[],28],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[28]]],19],[-1,[[12,[11]]],19],[5,2],[5,2],[[28,28],6],[[11,11],6],[[28,7],8],[[28,7],8],[[11,7],8],[[11,7],8],[-1,-1,[]],[17,28],[-1,-1,[]],[[28,5],[[13,[[12,[10,11]]]]]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[28,14],6],[[[21,[11]]],28],[[28,10],2],[[28,28],[[13,[15]]]],[[11,11],[[13,[15]]]],[[28,-1],12,24],[[11,-1],12,24],[[28,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[13,[14]],6,6],[[12,[30,4]]],22],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[31,-1],-2,[[32,[31]]],[]],[[30,-1],30,[[32,[30]]]],[[31,-1],2,[[32,[31]]]],[[33,34,-1,35],[[12,[2,36]]],22],[[34,33],[[12,[2,36]]]],[[[21,[37]]],37],[[30,-1],30,[[32,[30]]]],[[36,38],36],[[35,38],35],[[30,-1],30,[[32,[38]]]],[[35,[21,[30]]],30],[[30,[21,[30]]],30],[[34,[21,[34]]],34],[[30,[39,[37]],34,33],[[12,[6,36]]]],0,0,[[35,33],[[12,[6,36]]]],[[35,33],[[12,[40,36]]]],[[35,33],[[12,[41,36]]]],[[35,33],[[12,[42,36]]]],[[35,33],[[12,[4,36]]]],[[35,34],35],[[30,34],30],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[30,30],[[38,38],-1,[]],[[30,-1],30,[[32,[30]]]],[[38,38],2],[[30,-1],30,[[32,[30]]]],0,0,[6,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[43,34,34,33],[[12,[6,36]]]],[[44,34,33],[[12,[6,36]]]],[[45,34,34,33],[[12,[6,36]]]],[[46,34,34,34,33],[[12,[6,36]]]],[[47,34,34,33],[[12,[6,36]]]],[[48,34,33],[[12,[6,36]]]],[[49,34,34,33],[[12,[6,36]]]],[[50,34,34,33],[[12,[6,36]]]],[[51,34,34,33],[[12,[6,36]]]],[[52,34,34,33],[[12,[6,36]]]],[[53,34,34,33],[[12,[6,36]]]],[[54,34,33],[[12,[6,36]]]],[[55,34,34,33],[[12,[6,36]]]],[[56,34,34,33],[[12,[6,36]]]],[[57,34,34,33],[[12,[6,36]]]],[[58,34,33],[[12,[6,36]]]],[[59,34,33],[[12,[6,36]]]],[[60,34,34,33],[[12,[6,36]]]],[[61,34,34,33],[[12,[6,36]]]],[[62,34,33],[[12,[6,36]]]],[[63,34,33],[[12,[6,36]]]],[[64,34,33],[[12,[6,36]]]],[[65,34,33],[[12,[6,36]]]],[[66,34,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[[67,67],6],[[34,34,33],[[12,[6,36]]]],[38,38],[33,33],[36,36],[35,35],[31,31],[30,30],[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],[60,60],[61,61],[62,62],[63,63],[64,64],[65,65],[66,66],[37,37],[68,68],[69,69],[70,70],[71,71],[72,72],[67,67],[34,34],[43,[[73,[43]]]],[44,[[73,[44]]]],[45,[[73,[45]]]],[46,[[73,[46]]]],[47,[[73,[45]]]],[48,[[73,[44]]]],[49,[[73,[45]]]],[50,[[73,[43]]]],[51,[[73,[45]]]],[52,[[73,[45]]]],[53,[[73,[45]]]],[54,[[73,[44]]]],[55,[[73,[45]]]],[56,[[73,[45]]]],[57,[[73,[45]]]],[58,[[73,[44]]]],[59,[[73,[44]]]],[60,[[73,[45]]]],[61,[[73,[45]]]],[62,[[73,[44]]]],[63,[[73,[44]]]],[64,[[73,[44]]]],[65,[[73,[44]]]],[66,[[73,[44]]]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[43,43],15],[[44,44],15],[[45,45],15],[[46,46],15],[[38,38],15],[[47,47],15],[[48,48],15],[[51,51],15],[[52,52],15],[[53,53],15],[[54,54],15],[[55,55],15],[[56,56],15],[[57,57],15],[[58,58],15],[[59,59],15],[[60,60],15],[[63,63],15],[[64,64],15],[[65,65],15],[[66,66],15],[[67,67],15],[74,[[12,[[12,[17,28]],36]]]],[74,[[12,[[12,[17,28]],36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[47,30,30,33,3],[[12,[2,36]]]],[[49,30,30,33,3],[[12,[2,36]]]],[[50,30,30,33,3],[[12,[2,36]]]],[[74,33,3],[[12,[2,36]]]],[[35,33,3],[[12,[2,36]]]],[[30,33,3],[[12,[2,36]]]],[[68,33,3],[[12,[2,36]]]],[[69,33,3],[[12,[2,36]]]],[[70,33,3],[[12,[2,36]]]],[[71,33,3],[[12,[2,36]]]],[[43,34,34,33,3],[[12,[2,36]]]],[[44,34,33,3],[[12,[2,36]]]],[[45,34,34,33,3],[[12,[2,36]]]],[[46,34,34,34,33,3],[[12,[2,36]]]],[[47,34,34,33,3],[[12,[2,36]]]],[[48,34,33,3],[[12,[2,36]]]],[[49,34,34,33,3],[[12,[2,36]]]],[[50,34,34,33,3],[[12,[2,36]]]],[[51,34,34,33,3],[[12,[2,36]]]],[[52,34,34,33,3],[[12,[2,36]]]],[[53,34,34,33,3],[[12,[2,36]]]],[[54,34,33,3],[[12,[2,36]]]],[[55,34,34,33,3],[[12,[2,36]]]],[[56,34,34,33,3],[[12,[2,36]]]],[[57,34,34,33,3],[[12,[2,36]]]],[[58,34,33,3],[[12,[2,36]]]],[[59,34,33,3],[[12,[2,36]]]],[[60,34,34,33,3],[[12,[2,36]]]],[[61,34,34,33,3],[[12,[2,36]]]],[[62,34,33,3],[[12,[2,36]]]],[[63,34,33,3],[[12,[2,36]]]],[[64,34,33,3],[[12,[2,36]]]],[[65,34,33,3],[[12,[2,36]]]],[[66,34,33,3],[[12,[2,36]]]],[[34,14],6],[[25,34,33,3],[[12,[2,36]]]],[[37,30,34,33],[[12,[2,36]]]],[[],33],[[],67],[[33,[21,[[2,[4,34]]]]],2],[[33,-1,67,34,6],[[12,[27,36]]],22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[30,30],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[[30,-1],30,[[32,[30]]]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[38]]],19],[-1,[[12,[35]]],19],[-1,[[12,[31]]],19],[-1,[[12,[30]]],19],[-1,[[12,[37]]],19],[-1,[[12,[68]]],19],[-1,[[12,[69]]],19],[-1,[[12,[70]]],19],[-1,[[12,[71]]],19],[-1,[[12,[72]]],19],[-1,[[12,[67]]],19],[-1,[[12,[34]]],19],[[43,30,30],4],[[43,30,30],4],[[44,30],4],[[44,30],4],[[45,30,30],4],[[45,30,30],4],[[46,30,30,30],4],[[46,30,30,30],4],[[25,34,33,3],[[12,[2,36]]]],[[30,-1],30,[[32,[30]]]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[43,43],6],[[44,44],6],[[45,45],6],[[46,46],6],[[38,38],6],[[35,35],6],[[31,31],6],[[30,30],6],[[30,-1],30,[[32,[30]]]],[[47,47],6],[[48,48],6],[[51,51],6],[[52,52],6],[[53,53],6],[[54,54],6],[[55,55],6],[[56,56],6],[[57,57],6],[[58,58],6],[[59,59],6],[[60,60],6],[[63,63],6],[[64,64],6],[[65,65],6],[[66,66],6],[[37,37],6],[[68,68],6],[[69,69],6],[[70,70],6],[[71,71],6],[[72,72],6],[[67,67],6],[[34,34],6],[[35,35,33],6],[[34,34,33],[[12,[6,36]]]],[[43,35,35,33],[[12,[35,36]]]],[[44,35,33],[[12,[35,36]]]],[[45,35,35,33],[[12,[35,36]]]],[[46,35,35,35,33],[[12,[35,36]]]],[[35,33],[[12,[35,36]]]],[[47,35,35,33],[[12,[35,36]]]],[[48,35,33],[[12,[35,36]]]],[[49,35,35,33],[[12,[35,36]]]],[[50,35,35,33],[[12,[35,36]]]],[[51,35,35,33],[[12,[35,36]]]],[[52,35,35,33],[[12,[35,36]]]],[[53,35,35,33],[[12,[35,36]]]],[[54,35,33],[[12,[35,36]]]],[[55,35,35,33],[[12,[35,36]]]],[[56,35,35,33],[[12,[35,36]]]],[[57,35,35,33],[[12,[35,36]]]],[[58,35,33],[[12,[35,36]]]],[[59,35,33],[[12,[35,36]]]],[[60,35,35,33],[[12,[35,36]]]],[[61,35,35,33],[[12,[35,36]]]],[[62,35,33],[[12,[35,36]]]],[[63,35,33],[[12,[35,36]]]],[[64,35,33],[[12,[35,36]]]],[[65,35,33],[[12,[35,36]]]],[[66,35,33],[[12,[35,36]]]],[[35,35],35],[[30,35],30],[41,37],[[38,7],8],[[33,7],8],[[33,7],8],[[36,7],8],[[36,7],8],[[35,7],8],[[35,7],8],[[31,7],8],[[31,7],8],[[30,7],8],[[30,7],8],[[47,7],8],[[47,7],8],[[48,7],8],[[48,7],8],[[49,7],8],[[49,7],8],[[50,7],8],[[50,7],8],[[51,7],8],[[51,7],8],[[52,7],8],[[52,7],8],[[53,7],8],[[53,7],8],[[54,7],8],[[54,7],8],[[55,7],8],[[55,7],8],[[56,7],8],[[56,7],8],[[57,7],8],[[57,7],8],[[58,7],8],[[58,7],8],[[59,7],8],[[59,7],8],[[60,7],8],[[60,7],8],[[61,7],8],[[61,7],8],[[62,7],8],[[62,7],8],[[63,7],8],[[63,7],8],[[64,7],8],[[64,7],8],[[65,7],8],[[65,7],8],[[66,7],8],[[66,7],8],[[37,7],8],[[37,7],8],[[68,7],8],[[68,7],8],[[69,7],8],[[69,7],8],[[70,7],8],[[70,7],8],[[71,7],8],[[71,7],8],[[72,7],8],[[72,7],8],[[67,7],8],[[67,7],8],[[34,7],8],[[34,7],8],[75,38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[1,36],[-1,-1,[]],[72,35],[71,35],[34,35],[[[2,[4,35]]],31],[-1,-1,[]],[[[2,[4,72]]],31],[[[2,[14,30]]],31],[[[2,[14,71]]],31],[[[2,[14,72]]],31],[[[2,[4,70]]],31],[[[2,[4,67,34,30]]],31],[[[2,[4,67,30]]],31],[[[21,[-1]]],31,[[32,[31]]]],[[[2,[14,67,34,30]]],31],[[[2,[4,71]]],31],[[[2,[14,67,30]]],31],[[[76,[-1,-2]]],31,[],[]],[[[2,[14,67,[13,[34]],30]]],31],[[[73,[31]]],31],[[[2,[4,30]]],31],[[[2,[4,67,[13,[34]],30]]],31],[[[2,[37,30]]],31],[[[2,[4,34]]],31],[[[2,[14,70]]],31],[[[2,[14,35]]],31],[[[2,[14,34]]],31],[35,30],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[6,67],[-1,-1,[]],[-1,-1,[]],[[71,[21,[[2,[4,[13,[34]]]]]]],72],[[30,-1],30,[[32,[30]]]],[[33,34],[[21,[[2,[4,35]]]]]],[71,[[39,[[2,[4,67,34]]]]]],[[33,34,14],[[13,[[2,[35,34]]]]]],[[37,30,34,33],[[12,[[77,[4,[2,[67,34]]]],36]]]],[71,30],[[37,30,30,33],[[12,[34,36]]]],[71,[[13,[14]]]],[71,14],[[30,33],[[12,[[13,[67]],36]]]],[[34,34,[77,[4,[2,[34,[13,[34]]]]]],[78,[4]],33],[[12,[2,36]]]],[72,14],[71,34],[[34,33],[[13,[67]]]],[[79,33],[[12,[5,36]]]],[[79,33],[[12,[5,36]]]],[[79,33,5],[[12,[5,36]]]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[34,33,5],[[12,[5,36]]]],[[34,33],[[21,[[2,[4,[13,[34]]]]]]]],[[80,33],[[12,[34,36]]]],[[80,33],[[12,[34,36]]]],[[80,33,5],[[12,[34,36]]]],[[35,33,5],[[12,[34,36]]]],[[30,33,5],[[12,[34,36]]]],[[68,33,5],[[12,[34,36]]]],[[69,33,5],[[12,[34,36]]]],[[70,33,5],[[12,[34,36]]]],[[71,33,5],[[12,[34,36]]]],[[72,33,5],[[12,[34,36]]]],[[33,34,14],[[13,[34]]]],[72,[[21,[[2,[4,[13,[34]]]]]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[31]]]],[[33,34,14],6],[[34,34,33],[[12,[6,36]]]],[38,6],[[38,-1],2,20],[[35,-1],2,20],[[31,-1],2,20],[[30,-1],2,20],[[47,-1],2,20],[[48,-1],2,20],[[51,-1],2,20],[[52,-1],2,20],[[53,-1],2,20],[[54,-1],2,20],[[55,-1],2,20],[[56,-1],2,20],[[57,-1],2,20],[[58,-1],2,20],[[59,-1],2,20],[[60,-1],2,20],[[63,-1],2,20],[[64,-1],2,20],[[65,-1],2,20],[[66,-1],2,20],[[37,-1],2,20],[[68,-1],2,20],[[69,-1],2,20],[[70,-1],2,20],[[71,-1],2,20],[[72,-1],2,20],[[67,-1],2,20],[[34,-1],2,20],[[30,-1],30,[[32,[30]]]],[[37,30,30,30,33],[[12,[30,36]]]],[[30,-1,-2],30,[[32,[30]]],[[32,[30]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[42,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[34,6],[38,6],[34,6],[34,6],[67,6],[38,6],[[37,30,34,33],[[12,[6,36]]]],[38,6],[[30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[67,6],[38,6],[34,6],[[34,33],[[12,[6,36]]]],[[34,[78,[4]],33],[[12,[6,36]]]],[[34,33],[[12,[6,36]]]],[34,6],[38,6],[[30,-1],30,[[32,[30]]]],[[14,34,34],34],[[-1,35,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,35]]]],-1],30,[[32,[30]]]],[[-1,71,-2],30,22,[[32,[30]]]],[[[76,[14,71]],-1],30,[[32,[30]]]],[[-1,34,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,34]]]],-1],30,[[32,[30]]]],[[-1,-2,[13,[34]],-3,-4],30,22,[[32,[67]]],[[32,[30]]],[[32,[30]]]],[[[21,[[2,[14,67,[13,[34]],30]]]],-1],30,[[32,[30]]]],[38,[[13,[75]]]],[[30,-1],30,[[32,[30]]]],[-1,31,[[32,[[21,[31]]]]]],[[30,[39,[[2,[37,30]]]],33],[[12,[30,36]]]],[[-1,-2],31,22,[[32,[[21,[31]]]]]],[[35,[21,[34]]],35],[[72,[21,[34]],33],[[12,[71,36]]]],[[30,-1],30,[[32,[30]]]],[43,4],[43,4],[44,4],[44,4],[45,4],[45,4],[46,4],[46,4],0,0,[30,30],[[30,-1],30,[[32,[30]]]],[-1,50,45],[[4,[21,[34]],34],70],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],71,[[32,[30]]]],[[4,[21,[[2,[4,[13,[34]]]]]],[21,[[2,[4,67,34]]]],34,-1],72,[[32,[30]]]],[30,30],[[30,-1],30,[[32,[30]]]],[[43,43],[[13,[15]]]],[[44,44],[[13,[15]]]],[[45,45],[[13,[15]]]],[[46,46],[[13,[15]]]],[[38,38],[[13,[15]]]],[[47,47],[[13,[15]]]],[[48,48],[[13,[15]]]],[[51,51],[[13,[15]]]],[[52,52],[[13,[15]]]],[[53,53],[[13,[15]]]],[[54,54],[[13,[15]]]],[[55,55],[[13,[15]]]],[[56,56],[[13,[15]]]],[[57,57],[[13,[15]]]],[[58,58],[[13,[15]]]],[[59,59],[[13,[15]]]],[[60,60],[[13,[15]]]],[[63,63],[[13,[15]]]],[[64,64],[[13,[15]]]],[[65,65],[[13,[15]]]],[[66,66],[[13,[15]]]],[[67,67],[[13,[15]]]],[[34,33,[77,[[2,[34,[21,[34]]]],34]],6],[[12,[34,36]]]],[37,37],[[30,-1],30,[[32,[30]]]],[30,30],[30,30],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],35,[[32,[30]]]],[[71,3],2],[[30,-1],30,[[32,[67]]]],[[30,-1],30,[[32,[30]]]],0,0,[[43,30,30,33],[[12,[34,36]]]],[[43,30,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[47,30,30,33],[[12,[34,36]]]],[[48,30,33],[[12,[34,36]]]],[[49,30,30,33],[[12,[34,36]]]],[[50,30,30,33],[[12,[34,36]]]],[[51,30,30,33],[[12,[34,36]]]],[[52,30,30,33],[[12,[34,36]]]],[[53,30,30,33],[[12,[34,36]]]],[[54,30,33],[[12,[34,36]]]],[[55,30,30,33],[[12,[34,36]]]],[[56,30,30,33],[[12,[34,36]]]],[[57,30,30,33],[[12,[34,36]]]],[[58,30,33],[[12,[34,36]]]],[[59,30,33],[[12,[34,36]]]],[[60,30,30,33],[[12,[34,36]]]],[[61,30,30,33],[[12,[34,36]]]],[[62,30,33],[[12,[34,36]]]],[[63,30,33],[[12,[34,36]]]],[[64,30,33],[[12,[34,36]]]],[[65,30,33],[[12,[34,36]]]],[[66,30,33],[[12,[34,36]]]],[[38,-1],12,24],[[35,-1],12,24],[[31,-1],12,24],[[30,-1],12,24],[[37,-1],12,24],[[68,-1],12,24],[[69,-1],12,24],[[70,-1],12,24],[[71,-1],12,24],[[72,-1],12,24],[[67,-1],12,24],[[34,-1],12,24],[[71,-1],2,22],[[81,33],[[12,[81,36]]]],[[81,33,5],[[12,[81,36]]]],[[35,33,5],[[12,[35,36]]]],[[34,33,5],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[35,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,34,-1,6],[[12,[34,36]]],[[83,[34,33],[[82,[[12,[6,36]]]]]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[30,30],[[34,33],34],[[[76,[4,37]]],37],[[[76,[14,30]]],30],[[30,-1],30,[[32,[30]]]],[[80,14,34],2],[[35,14,34],2],[[30,14,34],2],[[68,14,34],2],[[69,14,34],2],[[70,14,34],2],[[71,14,34],2],[[72,14,34],2],[[34,14,34],34],[[80,[39,[4]],[39,[34]]],2],[[80,[39,[4]],[39,[34]]],2],[[-1,-2],37,[[32,[67]]],22],[[35,[21,[[2,[4,[13,[34]]]]]]],35],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[30,33],[[12,[30,36]]]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[[[21,[37]]],37],[[84,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[35,33],[[12,[2,36]]]],[[31,33],[[12,[2,36]]]],[[30,33],[[12,[2,36]]]],[[37,30,30,33],[[12,[2,36]]]],[[68,33],[[12,[2,36]]]],[[69,33],[[12,[2,36]]]],[[70,33],[[12,[2,36]]]],[[71,33],[[12,[2,36]]]],[[72,33],[[12,[2,36]]]],[[34,33],[[12,[2,36]]]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[[30,-1],30,22],[-1,35,22],[-1,30,22],[[[39,[4]],4],[[13,[5]]]],[[30,-1],30,[[32,[30]]]],[[],37],[[35,-1],35,[[32,[31]]]],[[30,-1],30,[[32,[31]]]],[[71,-1],71,[[32,[31]]]],[[72,-1],72,[[32,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[75,75],[[-1,-2],2,[],[]],[[75,75],15],0,[5,-1,[]],[5,-1,[]],[-1,[[12,[75]]],19],[5,2],[[75,75],6],0,[[75,7],8],[-1,-1,[]],[[75,14],4],[[75,-1],2,20],[[],5],[-1,-2,[],[]],0,0,0,[-1,[[12,[[12,[17,28]],4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[-1,[[12,[30,4]]],22],[-1,[[12,[[12,[18,29]],4]]],22],[[75,75],[[13,[15]]]],[[75,-1],12,24],[-1,-2,[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[85,85],[[-1,-2],2,[],[]],[[85,85],15],[5,-1,[]],[5,-1,[]],[-1,[[12,[85]]],19],[5,2],[[85,85],6],[[85,7],8],[[85,7],8],[-1,-1,[]],[[85,-1],2,20],[[],5],0,[-1,-2,[],[]],0,[[4,5,5],85],0,[[85,85],[[13,[15]]]],[[85,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[],86],[87,87],[88,88],[89,89],[90,90],[91,91],[92,92],[86,86],[23,23],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[87,87],15],[[88,88],15],[[89,89],15],[[90,90],15],[[91,91],15],[[92,92],15],[[86,86],15],[[23,23],15],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[87]]],19],[-1,[[12,[88]]],19],[-1,[[12,[89]]],19],[-1,[[12,[90]]],19],[-1,[[12,[91]]],19],[-1,[[12,[92]]],19],[-1,[[12,[86]]],19],[-1,[[12,[23]]],19],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[87,87],6],[[88,88],6],[[89,89],6],[[90,90],6],[[91,91],6],[[92,92],6],[[86,86],6],[[23,23],6],[[87,7],8],[[87,7],8],[[88,7],8],[[88,7],8],[[89,7],8],[[89,7],8],[[90,7],8],[[90,7],8],[[91,7],8],[[91,7],8],[[92,7],8],[[92,7],8],[[86,7],8],[[86,7],8],[[23,7],8],[[23,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[87,-1],2,20],[[88,-1],2,20],[[89,-1],2,20],[[90,-1],2,20],[[91,-1],2,20],[[92,-1],2,20],[[86,-1],2,20],[[23,-1],2,20],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[90,5],86],[[91,5],23],[[87,87],[[13,[15]]]],[[88,88],[[13,[15]]]],[[89,89],[[13,[15]]]],[[90,90],[[13,[15]]]],[[91,91],[[13,[15]]]],[[92,92],[[13,[15]]]],[[86,86],[[13,[15]]]],[[23,23],[[13,[15]]]],[[],86],[[87,-1],12,24],[[88,-1],12,24],[[89,-1],12,24],[[90,-1],12,24],[[91,-1],12,24],[[92,-1],12,24],[[86,-1],12,24],[[23,-1],12,24],[[],23],[[],23],[[],23],[[],86],[[],86],[[],86],[[],23],[[],23],[[],23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],0,0,[[93,18],[[12,[4,4]]]],[[93,94,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],[[93,29],[[12,[4,4]]]],[[93,95,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],0,[[96,5],4],[[96,94,[13,[5]]],4],[[96,86],[[12,[4,4]]]],[96,[[13,[4]]]],[96,14],[[96,94],4],[96,[[12,[4,4]]]],[96,[[12,[4,4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[96,[[13,[4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[[96,23],[[12,[4,4]]]],[[96,95],[[12,[4,4]]]],[96,6],[[96,86],6],[[96,23],6],[96,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[[98,5],4],[[],98],[5,-1,[]],[5,-1,[]],[5,2],[[98,94,[13,[5]]],4],[-1,-1,[]],[[98,86],[[12,[4,4]]]],[[],5],[-1,-2,[],[]],[98,14],[[98,94],4],[98,[[12,[4,4]]]],[98,[[12,[4,4]]]],[[98,[21,[97]]],[[13,[4]]]],[[98,6],[[13,[4]]]],[98,[[13,[4]]]],[[98,6],[[13,[4]]]],[[98,23],[[12,[4,4]]]],[[98,95],[[12,[4,4]]]],[98,6],[[98,86],6],[[98,23],6],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[98,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,[[99,85],2],[42,41],[41,42],[100,2],[100,2],[100,2],[100,2],[100,2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[18,18],[94,94],[29,29],[95,95],[99,99],[9,9],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[18,18],15],[[94,94],15],[100,[[12,[18,29]]]],[18,[[12,[18,29]]]],[29,[[12,[18,29]]]],[[100,14],2],[[],[[101,[99]]]],[[],[[102,[99]]]],[[],18],[[],29],[[],103],[[],99],[5,-1,[]],[5,-1,[]],[100,2],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[100,2],[[18,18],6],[[94,94],6],[[29,29],6],[[95,95],6],[[9,9],6],0,[[104,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[100,85],[[12,[2,9]]]],[[103,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[99,85,[13,[[21,[42]]]]],[[12,[2,4]]]],0,[18,18],[29,29],[[18,7],8],[[94,7],8],[[94,7],8],[[29,7],8],[[95,7],8],[[95,7],8],[[103,7],8],[[99,7],8],[[9,7],8],[[9,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[18,29],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[104,86],[[12,[42,4]]]],[[100,86],2],[[103,86],[[12,[42,4]]]],[[99,86],[[12,[42,4]]]],[18,[[77,[97,[21,[94]]]]]],[29,[[77,[97,[21,[95]]]]]],[18,[[21,[94]]]],[29,[[21,[95]]]],[18,[[2,[[21,[94]],[77,[97,[21,[94]]]]]]]],[29,[[2,[[21,[95]],[77,[97,[21,[95]]]]]]]],[[18,-1],2,20],[[94,-1],2,20],[100,2],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[[100,5],2],[[100,27],2],[-1,[[101,[-1]]],104],[-1,[[102,[-1]]],104],[-1,103,22],[[[21,[42]]],103],[[100,94],2],[[18,94],2],[[29,94],2],0,[103,4],[103,[[21,[42]]]],[[18,18],[[13,[15]]]],[[94,94],[[13,[15]]]],[[29,29],[[13,[15]]]],[[95,95],[[13,[15]]]],[[9,9],[[13,[15]]]],[104,[[12,[42,4]]]],[100,[[12,[2,9]]]],[103,[[12,[42,4]]]],[99,[[12,[42,4]]]],[[104,42],[[12,[2,4]]]],[100,[[12,[2,9]]]],[[103,42],[[12,[2,4]]]],[[99,42],[[12,[2,4]]]],[[104,42,23],[[12,[2,4]]]],[[100,23],2],[[103,42,23],[[12,[2,4]]]],[[99,42,23],[[12,[2,4]]]],[100,2],[100,2],[100,2],[[[101,[-1]],18],[[12,[-1,4]]],104],[[[102,[-1]],29],[[12,[-1,4]]],104],[100,2],[[100,41],[[12,[2,9]]]],[[100,[21,[41]]],[[12,[2,9]]]],[[100,42],2],[[100,[21,[42]]],2],[[100,95],[[12,[2,9]]]],[[18,95],[[12,[2,9]]]],[[29,95],[[12,[2,9]]]],[[100,5],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[100,2]],"c":[],"p":[[6,"Error",10],[1,"tuple"],[10,"AssemblyProgram",10],[5,"String",2653],[1,"usize"],[1,"bool"],[5,"Formatter",2654],[8,"Result",2654],[6,"Error",2349],[6,"CoreOp",65],[6,"StandardOp",416],[6,"Result",2655],[6,"Option",2656],[1,"str"],[6,"Ordering",2657],[5,"TypeId",2658],[5,"CoreProgram",65],[5,"CoreProgram",2349],[10,"Deserializer",2659],[10,"Hasher",2660],[5,"Vec",2661],[10,"ToString",2653],[5,"Output",1987],[10,"Serializer",2662],[6,"Location",376],[5,"Globals",348],[1,"isize"],[5,"StandardProgram",416],[5,"StandardProgram",2349],[6,"Expr",566],[6,"Declaration",566],[10,"Into",2663],[5,"Env",566],[6,"Type",566],[6,"ConstExpr",566],[6,"Error",566],[6,"Pattern",566],[6,"Annotation",566],[1,"slice"],[1,"char"],[1,"f64"],[1,"i64"],[10,"AssignOp",566],[10,"UnaryOp",566],[10,"BinaryOp",566],[10,"TernaryOp",566],[5,"Add",566],[5,"Negate",566],[6,"Arithmetic",566],[5,"Assign",566],[5,"BitwiseAnd",566],[5,"BitwiseNand",566],[5,"BitwiseNor",566],[5,"BitwiseNot",566],[5,"BitwiseOr",566],[5,"BitwiseXor",566],[6,"Comparison",566],[5,"Get",566],[6,"Put",566],[5,"And",566],[5,"Or",566],[5,"Not",566],[5,"New",566],[5,"Delete",566],[5,"Tag",566],[5,"Data",566],[6,"Mutability",566],[5,"CoreBuiltin",566],[5,"StandardBuiltin",566],[5,"FFIProcedure",566],[5,"Procedure",566],[5,"PolyProcedure",566],[5,"Box",2664],[10,"Compile",566],[5,"SourceCodeLocation",1924],[5,"BTreeMap",2665],[5,"HashMap",2666],[5,"HashSet",2667],[10,"GetSize",566],[10,"GetType",566],[10,"Simplify",566],[17,"Output"],[10,"Fn",2668],[10,"TypeCheck",566],[5,"FFIBinding",1959],[5,"Input",1987],[6,"Axis",1987],[6,"Direction",1987],[6,"Color",1987],[6,"InputMode",1987],[6,"OutputMode",1987],[5,"Channel",1987],[10,"CompiledTarget",2293],[6,"CoreOp",2349],[6,"StandardOp",2349],[10,"Architecture",2293],[1,"i32"],[5,"C",2319],[5,"StandardDevice",2349],[10,"VirtualMachineProgram",2349],[5,"CoreInterpreter",2349],[5,"StandardInterpreter",2349],[5,"TestingDevice",2349],[10,"Device",2349],[15,"Compare",207],[15,"IsGreater",207],[15,"IsGreaterEqual",207],[15,"IsLess",207],[15,"IsLessEqual",207],[15,"IsEqual",207],[15,"IsNotEqual",207],[15,"GetAddress",207],[15,"Move",207],[15,"Copy",207],[15,"Index",207],[15,"Add",207],[15,"Sub",207],[15,"Mul",207],[15,"Div",207],[15,"Rem",207],[15,"DivRem",207],[15,"VecAdd",207],[15,"VecSub",207],[15,"VecMul",207],[15,"VecDiv",207],[15,"VecRem",207],[15,"And",207],[15,"Or",207],[15,"VecNot",207],[15,"VecAnd",207],[15,"VecOr",207],[15,"VecInc",207],[15,"VecDec",207],[15,"LeftShift",207],[15,"LogicalRightShift",207],[15,"ArithmeticRightShift",207],[15,"VecLeftShift",207],[15,"VecLogicalRightShift",207],[15,"VecArithmeticRightShift",207],[15,"VecGez",207],[15,"VecNeg",207],[15,"VecOffset",207],[15,"VecIndex",207],[15,"PopFrom",207],[15,"Array",207],[15,"Const",207],[15,"BitwiseNand",207],[15,"BitwiseXor",207],[15,"BitwiseOr",207],[15,"BitwiseNor",207],[15,"BitwiseAnd",207],[15,"VecBitwiseAnd",207],[15,"VecBitwiseOr",207],[15,"VecBitwiseXor",207],[15,"VecBitwiseNor",207],[15,"VecBitwiseNand",207],[15,"VecBitwiseNot",207],[15,"Global",207],[15,"PushTo",207],[15,"IsGreater",510],[15,"IsLess",510],[15,"Const",510],[15,"Pow",510],[15,"Add",510],[15,"Sub",510],[15,"Mul",510],[15,"Div",510],[15,"Rem",510],[15,"VecAdd",510],[15,"VecSub",510],[15,"VecMul",510],[15,"VecDiv",510],[15,"VecRem",510],[15,"VecNeg",510],[15,"VecPow",510],[15,"VecSin",510],[15,"VecCos",510],[15,"VecTan",510],[15,"VecASin",510],[15,"VecACos",510],[15,"VecATan",510],[15,"VecGez",510],[15,"FromImport",1912],[15,"MismatchedTypes",1914],[15,"MismatchedMutability",1914],[15,"UnexpectedConstParam",1914],[15,"NonExhaustivePatterns",1914]],"b":[[45,"impl-Display-for-Error"],[46,"impl-Debug-for-Error"],[173,"impl-Debug-for-CoreProgram"],[174,"impl-Display-for-CoreProgram"],[175,"impl-Debug-for-CoreOp"],[176,"impl-Display-for-CoreOp"],[359,"impl-Display-for-Globals"],[360,"impl-Debug-for-Globals"],[402,"impl-Debug-for-Location"],[403,"impl-Display-for-Location"],[480,"impl-Display-for-StandardProgram"],[481,"impl-Debug-for-StandardProgram"],[482,"impl-Display-for-StandardOp"],[483,"impl-Debug-for-StandardOp"],[1222,"impl-PartialEq-for-Expr"],[1223,"impl-Expr"],[1279,"impl-Display-for-Env"],[1280,"impl-Debug-for-Env"],[1281,"impl-Display-for-Error"],[1282,"impl-Debug-for-Error"],[1283,"impl-Debug-for-ConstExpr"],[1284,"impl-Display-for-ConstExpr"],[1285,"impl-Debug-for-Declaration"],[1286,"impl-Display-for-Declaration"],[1287,"impl-Display-for-Expr"],[1288,"impl-Debug-for-Expr"],[1289,"impl-Debug-for-Add"],[1290,"impl-Display-for-Add"],[1291,"impl-Display-for-Negate"],[1292,"impl-Debug-for-Negate"],[1293,"impl-Display-for-Arithmetic"],[1294,"impl-Debug-for-Arithmetic"],[1295,"impl-Debug-for-Assign"],[1296,"impl-Display-for-Assign"],[1297,"impl-Display-for-BitwiseAnd"],[1298,"impl-Debug-for-BitwiseAnd"],[1299,"impl-Debug-for-BitwiseNand"],[1300,"impl-Display-for-BitwiseNand"],[1301,"impl-Display-for-BitwiseNor"],[1302,"impl-Debug-for-BitwiseNor"],[1303,"impl-Display-for-BitwiseNot"],[1304,"impl-Debug-for-BitwiseNot"],[1305,"impl-Display-for-BitwiseOr"],[1306,"impl-Debug-for-BitwiseOr"],[1307,"impl-Display-for-BitwiseXor"],[1308,"impl-Debug-for-BitwiseXor"],[1309,"impl-Display-for-Comparison"],[1310,"impl-Debug-for-Comparison"],[1311,"impl-Debug-for-Get"],[1312,"impl-Display-for-Get"],[1313,"impl-Display-for-Put"],[1314,"impl-Debug-for-Put"],[1315,"impl-Display-for-And"],[1316,"impl-Debug-for-And"],[1317,"impl-Debug-for-Or"],[1318,"impl-Display-for-Or"],[1319,"impl-Debug-for-Not"],[1320,"impl-Display-for-Not"],[1321,"impl-Debug-for-New"],[1322,"impl-Display-for-New"],[1323,"impl-Debug-for-Delete"],[1324,"impl-Display-for-Delete"],[1325,"impl-Display-for-Tag"],[1326,"impl-Debug-for-Tag"],[1327,"impl-Display-for-Data"],[1328,"impl-Debug-for-Data"],[1329,"impl-Debug-for-Pattern"],[1330,"impl-Display-for-Pattern"],[1331,"impl-Display-for-CoreBuiltin"],[1332,"impl-Debug-for-CoreBuiltin"],[1333,"impl-Display-for-StandardBuiltin"],[1334,"impl-Debug-for-StandardBuiltin"],[1335,"impl-Debug-for-FFIProcedure"],[1336,"impl-Display-for-FFIProcedure"],[1337,"impl-Debug-for-Procedure"],[1338,"impl-Display-for-Procedure"],[1339,"impl-Display-for-PolyProcedure"],[1340,"impl-Debug-for-PolyProcedure"],[1341,"impl-Debug-for-Mutability"],[1342,"impl-Display-for-Mutability"],[1343,"impl-Display-for-Type"],[1344,"impl-Debug-for-Type"],[1351,"impl-From%3CPolyProcedure%3E-for-ConstExpr"],[1352,"impl-From%3CProcedure%3E-for-ConstExpr"],[1353,"impl-From%3CType%3E-for-ConstExpr"],[1354,"impl-From%3C(String,+ConstExpr)%3E-for-Declaration"],[1356,"impl-From%3C(String,+PolyProcedure)%3E-for-Declaration"],[1357,"impl-From%3C(%26str,+Expr)%3E-for-Declaration"],[1358,"impl-From%3C(%26str,+Procedure)%3E-for-Declaration"],[1359,"impl-From%3C(%26str,+PolyProcedure)%3E-for-Declaration"],[1360,"impl-From%3C(String,+FFIProcedure)%3E-for-Declaration"],[1361,"impl-From%3C(String,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1362,"impl-From%3C(String,+Mutability,+Expr)%3E-for-Declaration"],[1363,"impl-From%3CVec%3CT%3E%3E-for-Declaration"],[1364,"impl-From%3C(%26str,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1365,"impl-From%3C(String,+Procedure)%3E-for-Declaration"],[1366,"impl-From%3C(%26str,+Mutability,+Expr)%3E-for-Declaration"],[1367,"impl-From%3CBTreeMap%3CK,+V%3E%3E-for-Declaration"],[1368,"impl-From%3C(%26str,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1369,"impl-From%3CBox%3CDeclaration%3E%3E-for-Declaration"],[1370,"impl-From%3C(String,+Expr)%3E-for-Declaration"],[1371,"impl-From%3C(String,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1372,"impl-From%3C(Pattern,+Expr)%3E-for-Declaration"],[1373,"impl-From%3C(String,+Type)%3E-for-Declaration"],[1374,"impl-From%3C(%26str,+FFIProcedure)%3E-for-Declaration"],[1375,"impl-From%3C(%26str,+ConstExpr)%3E-for-Declaration"],[1376,"impl-From%3C(%26str,+Type)%3E-for-Declaration"],[1970,"impl-Debug-for-FFIBinding"],[1971,"impl-Display-for-FFIBinding"],[2175,"impl-Display-for-Axis"],[2176,"impl-Debug-for-Axis"],[2177,"impl-Display-for-Direction"],[2178,"impl-Debug-for-Direction"],[2179,"impl-Debug-for-Color"],[2180,"impl-Display-for-Color"],[2181,"impl-Display-for-InputMode"],[2182,"impl-Debug-for-InputMode"],[2183,"impl-Debug-for-OutputMode"],[2184,"impl-Display-for-OutputMode"],[2185,"impl-Debug-for-Channel"],[2186,"impl-Display-for-Channel"],[2187,"impl-Debug-for-Input"],[2188,"impl-Display-for-Input"],[2189,"impl-Debug-for-Output"],[2190,"impl-Display-for-Output"],[2519,"impl-Display-for-CoreOp"],[2520,"impl-Debug-for-CoreOp"],[2522,"impl-Display-for-StandardOp"],[2523,"impl-Debug-for-StandardOp"],[2526,"impl-Debug-for-Error"],[2527,"impl-Display-for-Error"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/docs/src/sage/frontend/mod.rs.html b/docs/src/sage/frontend/mod.rs.html index d95f51e6..9e107254 100644 --- a/docs/src/sage/frontend/mod.rs.html +++ b/docs/src/sage/frontend/mod.rs.html @@ -230,7 +230,7 @@ use crate::side_effects::Output; if include_std { let std_lib = parse_module("std", &without_comments(include_str!("std_lib.sg")))?; - expr = expr.hard_with(std_lib) + expr = expr.with(std_lib) } if include_builtins { let alloc = crate::lir::ConstExpr::StandardBuiltin(crate::lir::StandardBuiltin { diff --git a/docs/src/sage/frontend/parse.rs.html b/docs/src/sage/frontend/parse.rs.html index 121c460b..9a0994b8 100644 --- a/docs/src/sage/frontend/parse.rs.html +++ b/docs/src/sage/frontend/parse.rs.html @@ -4864,125 +4864,6 @@ 4863 4864 4865 -4866 -4867 -4868 -4869 -4870 -4871 -4872 -4873 -4874 -4875 -4876 -4877 -4878 -4879 -4880 -4881 -4882 -4883 -4884 -4885 -4886 -4887 -4888 -4889 -4890 -4891 -4892 -4893 -4894 -4895 -4896 -4897 -4898 -4899 -4900 -4901 -4902 -4903 -4904 -4905 -4906 -4907 -4908 -4909 -4910 -4911 -4912 -4913 -4914 -4915 -4916 -4917 -4918 -4919 -4920 -4921 -4922 -4923 -4924 -4925 -4926 -4927 -4928 -4929 -4930 -4931 -4932 -4933 -4934 -4935 -4936 -4937 -4938 -4939 -4940 -4941 -4942 -4943 -4944 -4945 -4946 -4947 -4948 -4949 -4950 -4951 -4952 -4953 -4954 -4955 -4956 -4957 -4958 -4959 -4960 -4961 -4962 -4963 -4964 -4965 -4966 -4967 -4968 -4969 -4970 -4971 -4972 -4973 -4974 -4975 -4976 -4977 -4978 -4979 -4980 -4981 -4982 -4983 -4984

use log::{error, trace};
 use nom::{
     branch::alt,
@@ -5262,15 +5143,7 @@
         Expr::None
     });
 
-    // env.bind_builtin("do", |env, exprs| {
-    //     let mut result = Expr::default();
-    //     for e in exprs {
-    //         result = env.eval(e.clone());
-    //     }
-    //     result
-    // });
-
-    env.bind_lazy_builtin("do", |_env, exprs| Expr::Many(Vec::from(exprs)));
+    env.bind_lazy_builtin("do", |_env, exprs| Expr::Many(Vec::from(exprs)));
 
     env.bind_builtin("sqrt", |env, expr| {
         let e = env.eval(expr[0].clone());
@@ -6350,11 +6223,7 @@
 fn parse_impl_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
 ) -> IResult<&'a str, Statement, E> {
-    // "impl" <name: Symbol> <args: Tuple<(<(<Symbol> ":")?> <Type>)>> <body: Block> => {
-    //     let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect();
-    //     Statement::Declaration(Declaration::Impl(name, args, body))
-    // },
-    let (input, _) = tag("impl")(input)?;
+    let (input, _) = tag("impl")(input)?;
 
     let (input, ty) = cut(parse_type)(input)?;
 
@@ -6382,8 +6251,7 @@
     input: &'a str,
     ty: &Type,
 ) -> IResult<&'a str, (String, ConstExpr), E> {
-    // let (input, _) = whitespace(input)?;
-    if let Ok((input, method)) = parse_impl_method::<E>(input, ty) {
+    if let Ok((input, method)) = parse_impl_method::<E>(input, ty) {
         return Ok((input, method));
     }
 
@@ -6407,16 +6275,8 @@
     let (input, (params, ret)) = cut(parse_fun_params)(input)?;
     let (input, _) = whitespace(input)?;
     let (input, body) = cut(parse_block)(input)?;
-    // Ok((input, (name.to_owned(), ConstExpr::Proc(Procedure::new(name, params, ret, body))))
-
-    // lazy_static! {
-    //     static ref IMPL_FUN_COUNTER: RwLock<usize> = RwLock::new(0);
-    // }
-    // let mut count = *IMPL_FUN_COUNTER.read().unwrap();
-    // count += 1;
-    // *IMPL_FUN_COUNTER.write().unwrap() = count;
 
-    if let Some(args) = template_args {
+    if let Some(args) = template_args {
         Ok((
             input,
             (
@@ -6462,11 +6322,7 @@
     input: &'a str,
     ty: &Type,
 ) -> IResult<&'a str, (String, ConstExpr), E> {
-    // "fun" <name: Symbol> <args: Tuple<(<(<Symbol> ":")?> <Type>)>> ":" <ret: Type> <body: Block> => {
-    //     let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect();
-    //     Statement::Declaration(Declaration::Proc(name.clone(), Procedure::new(name, args, ret, body)))
-    // },
-    trace!("Parsing impl method");
+    trace!("Parsing impl method");
     let (input, _) = tag("fun")(input)?;
     trace!("Parsing method");
     let (input, _) = whitespace(input)?;
@@ -6482,8 +6338,7 @@
         trace!("Parsed method parameters: {params:#?}, {ret:#?}");
         let (input, _) = whitespace(input)?;
         let (input, body) = cut(parse_block)(input)?;
-        // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body))))
-        if let Some(args) = template_args {
+        if let Some(args) = template_args {
             Ok((
                 input,
                 (
@@ -6511,8 +6366,7 @@
         trace!("Parsed method parameters: {params:#?}, {ret:#?}");
         let (input, _) = whitespace(input)?;
         let (input, body) = cut(parse_block)(input)?;
-        // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body))))
-        if let Some(args) = template_args {
+        if let Some(args) = template_args {
             Ok((
                 input,
                 (
@@ -6573,10 +6427,7 @@
         branches.push((pat, body));
     }
 
-    // trace!("Parsed branches: {input}");
-    // trace!("Parsed branches: {branches:#?}");
-
-    let (input, _) = whitespace(input)?;
+    let (input, _) = whitespace(input)?;
     let (input, _) = tag("}")(input)?;
     Ok((input, Expr::Match(expr.into(), branches)))
 }
@@ -6641,8 +6492,7 @@
         context("tuple", parse_tuple_pattern),
         context("group", delimited(tag("("), cut(parse_pattern), tag(")"))),
         context("const", map(parse_const, Pattern::ConstExpr)),
-        // context("tuple", map(ma
-    ))(input)?;
+    ))(input)?;
     Ok((input, pattern))
 }
 
@@ -6851,8 +6701,8 @@
         // Optionally parse an alias
         let (input, alias) =
             opt(preceded(whitespace, preceded(tag("as"), cut(parse_symbol))))(input)?;
-        // let alias = alias.map(|x| x.to_owned());
-        // If there's a comma, continue parsing
+
+        // If there's a comma, continue parsing
         let (input, _) = whitespace(input)?;
 
         imports.push((path.to_owned(), alias));
@@ -6866,17 +6716,7 @@
             .map(|(x, y)| (x.to_owned(), y.map(|z| z.to_owned())))
             .collect();
 
-        // let mut decls = vec![];
-        // for (name, alias) in &imports {
-        //     // decls.push(Declaration::Const(alias.clone(), ConstExpr::var(module_name).field(ConstExpr::var(name))));
-        //     decls.push(Declaration::FromImport {
-        //         module: ,
-        //         name: name.clone(),
-        //         alias: alias.map(|x| x.to_owned()),
-        //     });
-        // }
-
-        let (input, _) = whitespace(input)?;
+        let (input, _) = whitespace(input)?;
         let (input, _) = tag(";")(input)?;
 
         return Ok((
@@ -6990,8 +6830,7 @@
 fn parse_if_expr<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
 ) -> IResult<&'a str, Expr, E> {
-    // "if" <condition: Expr> <then: Block> <else: Option<Block>> => Expr::If(condition, Box::new(then), else.map(Box::new)),
-    let (input, _) = tag("if")(input)?;
+    let (input, _) = tag("if")(input)?;
     let (input, _) = whitespace(input)?;
     let (input, condition) = cut(parse_expr)(input)?;
     let (input, _) = whitespace(input)?;
@@ -7041,8 +6880,7 @@
 fn parse_if_let_expr<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
 ) -> IResult<&'a str, Expr, E> {
-    // "if" <condition: Expr> <then: Block> <else: Option<Block>> => Expr::If(condition, Box::new(then), else.map(Box::new)),
-    let (input, _) = tag("if")(input)?;
+    let (input, _) = tag("if")(input)?;
     let (input, _) = whitespace(input)?;
     let (input, _) = tag("let")(input)?;
     let (input, _) = whitespace(input)?;
@@ -7097,8 +6935,7 @@
 fn parse_while_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
 ) -> IResult<&'a str, Statement, E> {
-    // "while" <condition: Expr> <body: Block> => Statement::While(condition, Box::new(body)),
-    let (input, _) = tag("while")(input)?;
+    let (input, _) = tag("while")(input)?;
     let (input, _) = whitespace(input)?;
     let (input, condition) = cut(parse_expr)(input)?;
     let (input, _) = whitespace(input)?;
@@ -7112,8 +6949,7 @@
 fn parse_for_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
 ) -> IResult<&'a str, Statement, E> {
-    // "for" <init: Option<Statement>> <condition: Option<Expr>> <step: Option<Statement>> <body: Block> => Statement::For(init.map(Box::new), condition.map(Box::new), step.map(Box::new), Box::new(body)),
-    let (input, _) = tag("for")(input)?;
+    let (input, _) = tag("for")(input)?;
     let (input, _) = whitespace(input)?;
     let (input, init) = cut(parse_short_stmt)(input)?;
     let (input, _) = whitespace(input)?;
@@ -7124,8 +6960,8 @@
     let (input, step) = cut(parse_short_stmt)(input)?;
     let (input, _) = whitespace(input)?;
     let (input, body) = cut(parse_block)(input)?;
-    // Ok((input, Statement::Expr(Expr::For(init.map(Box::new), condition.map(Box::new), step.map(Box::new), Box::new(body)))))
-    let mut init_expr = Expr::NONE;
+
+    let mut init_expr = Expr::NONE;
     let mut init_decl = Declaration::many(vec![]);
     match init {
         Statement::Declaration(decl, _) => init_decl = decl,
@@ -7152,11 +6988,7 @@
 fn parse_fun_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
 ) -> IResult<&'a str, Statement, E> {
-    // "fun" <name: Symbol> <args: Tuple<(<(<Symbol> ":")?> <Type>)>> ":" <ret: Type> <body: Block> => {
-    //     let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect();
-    //     Statement::Declaration(Declaration::Proc(name.clone(), Procedure::new(name, args, ret, body)))
-    // },
-    let (input, _) = tag("fun")(input)?;
+    let (input, _) = tag("fun")(input)?;
     trace!("Parsing function");
     let (input, _) = whitespace(input)?;
     let (input, name) = cut(parse_symbol)(input)?;
@@ -7171,8 +7003,7 @@
     let (input, _) = whitespace(input)?;
     let (input, body) = parse_block(input)?;
     trace!("Parsed function body: {body}");
-    // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body)))))
-    if let Some(args) = template_args {
+    if let Some(args) = template_args {
         Ok((
             input,
             Statement::Declaration(
@@ -7206,11 +7037,7 @@
 fn parse_quick_fun_stmt<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
 ) -> IResult<&'a str, Statement, E> {
-    // "fun" <name: Symbol> <args: Tuple<(<(<Symbol> ":")?> <Type>)>> ":" <ret: Type> <body: Block> => {
-    //     let args: Vec<_> = args.into_iter().map(|(_name, ty)| ty).collect();
-    //     Statement::Declaration(Declaration::Proc(name.clone(), Procedure::new(name, args, ret, body)))
-    // },
-    let (input, _) = tag("fun")(input)?;
+    let (input, _) = tag("fun")(input)?;
     trace!("Parsing function");
     let (input, _) = whitespace(input)?;
     let (input, name) = cut(parse_symbol)(input)?;
@@ -7229,8 +7056,8 @@
     let (input, _) = whitespace(input)?;
     let (input, _) = cut(tag(";"))(input)?;
     trace!("Parsed function body: {body}");
-    // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body)))))
-    if let Some(args) = template_args {
+
+    if let Some(args) = template_args {
         Ok((
             input,
             Statement::Declaration(
@@ -7282,8 +7109,7 @@
 
     let (input, _) = whitespace(input)?;
     let (input, last) = opt(pair(
-        // parse_symbol,
-        pair(
+        pair(
             map(opt(tag("mut")), |x| match x {
                 Some(_) => Mutability::Mutable,
                 None => Mutability::Immutable,
@@ -9123,24 +8949,7 @@
 #[cfg(test)]
 mod tests {
     fn compile_and_run(code: &str, input: &str) -> Result<String, String> {
-        // let has_init = {*INIT.read().unwrap()};
-        // if !has_init {
-        //     let mut builder = env_logger::Builder::from_default_env();
-        //     builder.format_timestamp(None);
-        //     builder.filter(
-        //         None,
-        //         // LogLevel::Error if args.debug.is_none() => log::LevelFilter::Error,
-        //         // LogLevel::Warn if args.debug.is_none() => log::LevelFilter::Warn,
-        //         // LogLevel::Off if args.debug.is_none() => log::LevelFilter::Error,
-        //         // LogLevel::Info if args.debug.is_none() => log::LevelFilter::Info,
-        //         log::LevelFilter::Trace,
-        //         // log::LevelFilter::Info,
-        //     );
-        //     builder.init();
-        //     *INIT.write().unwrap() = true;
-        // }
-            
-        let _ = rayon::ThreadPoolBuilder::new()
+        let _ = rayon::ThreadPoolBuilder::new()
             .num_threads(16)
             .stack_size(512 * 1024 * 1024)
             .build_global();
@@ -9918,53 +9727,6 @@
         );
 
         trace!("Parsing block");
-        //         trace!("{:#?}", parse_suite::<nom::error::VerboseError<&str>>(0, r#"
-        // enum Result<T, E>:
-        //     Ok(T)
-        //     Err(E)
-
-        // struct Point:
-        //     x: Int
-        //     y: Int
-
-        // if True and 1 > 2 + 3:
-        //     println(a + b)
-        //     a - b
-        //     while not a:
-        //         println("Testing")
-        //         std.println<Int>(5)
-        //         increment(&mut a)
-
-        //         Result<Int, String> of Ok(5)
-
-        //         "#));
-
-        // impl Result<T, E>:
-        //     def unwrap(self) -> T:
-        //         match self:
-        //             of Ok(x) => x
-        //             of Err(e) => panic(e)
-    }
-
-    // #[test]
-    // fn test_parse_const_tuple() {
-    //     let input = "(a = 1, b = 2)";
-    //     let result = parse_const_tuple(input);
-    //     assert_eq!(result, Ok(("", ConstExpr::Tuple(vec![ConstExpr::Tuple(vec![ConstExpr::Symbol("a".to_string()), ConstExpr::Int(1)]), ConstExpr::Tuple(vec![ConstExpr::Symbol("b".to_string()), ConstExpr::Int(2)])]))));
-    // }
-
-    // #[test]
-    // fn test_parse_const_array() {
-    //     let input = "[1, 2, 3]";
-    //     let result = parse_const_array(input);
-    //     assert_eq!(result, Ok(("", ConstExpr::Array(vec![ConstExpr::Int(1), ConstExpr::Int(2), ConstExpr::Int(3)])));
-    // }
-
-    // #[test]
-    // fn test_parse_const_struct() {
-    //     let input = "struct {a = 1, b = 2}";
-    //     let result = parse_const_struct(input);
-    //     assert_eq!(result, Ok(("", ConstExpr::Struct(vec![("a".to_string(), ConstExpr::Int(1)), ("b".to_string(), ConstExpr::Int(2))].into_iter().collect())));
-    // }
-}
+    }
+}
 
\ No newline at end of file diff --git a/docs/src/sage/lir/compile.rs.html b/docs/src/sage/lir/compile.rs.html index 982da31c..4ac991da 100644 --- a/docs/src/sage/lir/compile.rs.html +++ b/docs/src/sage/lir/compile.rs.html @@ -2615,11 +2615,11 @@ } Self::Type(t) => { - match t.simplify(env)? { - Type::ConstParam(cexpr) => cexpr.compile_expr(env, output)?, - _ => { - return Err(Error::UnsizedType(ty)); - } + if t.is_const_param() { + let cexpr = t.simplify_until_const_param(env, false)?; + cexpr.compile_expr(env, output)? + } else { + return Err(Error::UnsizedType(ty)); } } Self::Member(container, member) => { diff --git a/docs/src/sage/lir/env.rs.html b/docs/src/sage/lir/env.rs.html index 228b0efe..ac602c8b 100644 --- a/docs/src/sage/lir/env.rs.html +++ b/docs/src/sage/lir/env.rs.html @@ -1298,59 +1298,6 @@ 1297 1298 1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1329 -1330 -1331 -1332 -1333 -1334 -1335 -1336 -1337 -1338 -1339 -1340 -1341 -1342 -1343 -1344 -1345 -1346 -1347 -1348 -1349 -1350 -1351 -1352
//! # Environment
 //!
 //! This module defines the `Env` type, which is used to store the types, constants, and procedures
@@ -1641,22 +1588,21 @@
                     }
                 }
 
-                // if ty_args.len() != ty_params.len() {
-                //     error!("Mismatched number of template arguments for {monomorph} of {template}");
-                //     error!("Expected {ty_params:?}, found {ty_args:?}");
-                //     continue;
-                // }
+                if ty_args.len() != ty_params.len() {
+                    error!("Mismatched number of template arguments for {monomorph} of {template}");
+                    error!("Expected {ty_params:?}, found {ty_args:?}");
+                    continue;
+                }
 
-                debug!(
+                debug!(
                     "Associated constants for {monomorph} are {:?}",
                     template_associated_consts.keys().to_owned()
                 );
 
                 if let Some((_, const_ty)) = template_associated_consts.get(name) {
                     debug!("Found cached associated const (type) {name} of type {const_ty}");
-                    // let result = const_ty.apply(ty_args.clone()).simplify_until_simple(self).ok()?;
-                    // let result = const_ty.apply(ty_args.clone());
-                    let result = const_ty.apply(ty_args.clone().into_iter().map(|x|x.0).collect());
+
+                    let result = const_ty.apply(ty_args.clone().into_iter().map(|x|x.0).collect());
                     match result.simplify_until_simple(self, false) {
                         Ok(result) => {
                             debug!("Found associated const (type) {name} of type {ty} = {result}");
@@ -1665,14 +1611,9 @@
                         Err(_err) => {
                             debug!("Found associated const (type) {name} of type {ty} = {result} (failed to simplify)");
                             return Some(result);
-                            // debug!("Failed to simplify associated const (type) {name} of type {ty} = {result}");
-                            // debug!("Error: {err}");
-                            // continue;
-                        }
+                        }
                     }
-                    // debug!("Found associated const (type) {name} of type {ty} = {result}");
-                    // return Some(result);
-                }
+                }
 
                 debug!("Could not find associated const {name} of type {ty} in {template}");
                 for template_const_name in template_associated_consts.keys() {
@@ -1901,8 +1842,8 @@
     }
 
     pub(super) fn has_any_associated_const(&self, ty: &Type) -> bool {
-        // trace!("Checking if type {ty} has any associated constants");
-        let associated_constants = self.associated_constants.read().unwrap();
+        trace!("Checking if type {ty} has any associated constants");
+        let associated_constants = self.associated_constants.read().unwrap();
         if let Some(consts) = associated_constants.get(ty) {
             if !consts.is_empty() {
                 return true;
@@ -1914,8 +1855,8 @@
                 continue;
             }
             if !ty.can_decay_to(other_ty, self).unwrap_or(false) {
-                // trace!("Type {other_ty} does not equal {ty}");
-                continue;
+                trace!("Type {other_ty} does not equal {ty}");
+                continue;
             }
             trace!("Found eligible type {other_ty} for {ty}");
             if !consts.is_empty() {
@@ -2212,14 +2153,11 @@
 
                     for (name, associated_const) in impls {
                         let templated_const =
-                            // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect());
-                            // associated_const.template(template_params.clone());
-                            associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect());
+                            associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect());
                         self.add_associated_const(*template.clone(), name, templated_const)?;
                     }
                 } else {
-                    // ty.add_monomorphized_associated_consts(self)?;
-                    for (name, associated_const) in impls {
+                    for (name, associated_const) in impls {
                         self.add_associated_const(ty.clone(), name, associated_const.clone())?;
                     }
 
@@ -2228,24 +2166,8 @@
                     // })?;
                 }
             }
-            Declaration::Var(_, _, Some(_ty), _e) => {
-                // ty.add_monomorphized_associated_consts(self).ok();
-                // if let Ok(ty) = e.get_type(self) {
-                //     ty.add_monomorphized_associated_consts(self).ok();
-                // }
-            }
-            Declaration::Var(_, _, _, _e) => {
-                // Variables are not defined at compile-time.
-                // if let Ok(ty) = e.get_type(self) {
-                //     ty.add_monomorphized_associated_consts(self).ok();
-                // }
-            }
-            Declaration::VarPat(_, _e) => {
-                // Variables are not defined at compile-time.
-                // if let Ok(ty) = e.get_type(self) {
-                //     ty.add_monomorphized_associated_consts(self).ok();
-                // }
-            }
+            Declaration::Var(_, _, _, _) => {}
+            Declaration::VarPat(_, _) => {}
             Declaration::Many(decls) => {
                 for decl in decls.iter() {
                     self.add_compile_time_declaration(decl)?;
@@ -2395,35 +2317,8 @@
     pub fn define_types(&mut self, types: Vec<(String, Type)>) {
         for (name, ty) in types {
             self.define_type(name, ty)
-            // match &ty {
-            //     Type::Symbol(sym) if sym == name => {
-            //         trace!("Defining type {ty} to itself as {name}");
-            //     }
-            //     _ => {
-            //         if self.types.contains_key(name) {
-            //             debug!("Redefining type {name} in {self}");
-            //         } else {
-            //             trace!("Defining type {name} as {ty}");
-            //             Arc::make_mut(&mut self.consts)
-            //                 .insert(name.clone(), ConstExpr::Type(ty.clone()));
-            //             Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone());
-            //         }
-            //     }
-            // }
-        }
-
-        // for (_, ty) in types {
-        //     if let Ok(simplified) = ty.simplify_until_concrete(self, false) {
-        //         if let Ok(size) = simplified.get_size(self) {
-        //             self.set_precalculated_size(simplified, size);
-        //         } else {
-        //             debug!("Failed to memoize type size for {simplified}");
-        //         }
-        //     } else {
-        //         debug!("Failed to simplify type {ty}");
-        //     }
-        // }
-    }
+        }
+    }
 
     /// Get a type definition from this environment.
     pub(super) fn get_type(&self, name: &str) -> Option<&Type> {
@@ -2593,8 +2488,7 @@
         let size = if compiling {
             ty.get_size(self)?
         } else {
-            // ty.get_size(self).unwrap_or(0)
-            0
+            0
         } as isize;
         // Remember the offset of the variable under the current scope.
         let offset = self.fp_offset;
diff --git a/docs/src/sage/lir/expr/const_expr.rs.html b/docs/src/sage/lir/expr/const_expr.rs.html
index 93c6058b..2f9c453f 100644
--- a/docs/src/sage/lir/expr/const_expr.rs.html
+++ b/docs/src/sage/lir/expr/const_expr.rs.html
@@ -1269,21 +1269,6 @@
 1268
 1269
 1270
-1271
-1272
-1273
-1274
-1275
-1276
-1277
-1278
-1279
-1280
-1281
-1282
-1283
-1284
-1285
 
//! # Constant Expressions
 //!
 //! Constant expressions are expressions that can be evaluated at compile time.
@@ -1645,8 +1630,7 @@
                             }
                             debug!("Member access not implemented for: {container_ty} . {member}");
                             return Err(Error::MemberNotFound((*container).into(), member));
-                            // return container.eval_checked(env, i)?.field(member).eval(env)
-                        }
+                        }
                         _ => {
                             if let Ok(Some((constant, _))) = member
                                 .clone()
@@ -1683,11 +1667,7 @@
                     } else {
                         Ok(Self::Type(ty.clone()))
                     }
-                    // match ty.clone().simplify(env)? {
-                    //     Type::ConstParam(cexpr) => ,
-                    //     ty => Ok(Self::Type(ty.clone()))
-                    // }
-                }
+                }
 
                 Self::Declare(bindings, expr) => {
                     debug!("Declaring compile time bindings: {bindings}");
@@ -1696,37 +1676,42 @@
                     Ok(expr.eval_checked(&new_env, i)?.with(bindings))
                 }
 
-                Self::Monomorphize(expr, ty_args) => Ok(match expr.clone().eval(env)? {
-                    Self::Template(params, ret) => {
-                        if params.len() != ty_args.len() {
-                            return Err(Error::InvalidMonomorphize(*expr));
-                        }
-                        let mut ret = ret.clone();
+                Self::Monomorphize(expr, ty_args) => {
+                    // let ty_args = ty_args.into_iter().map(|t| t.simplify(env)).collect::<Result<Vec<_>, _>>()?;
+                    debug!("Monomorphizing {expr} with ty_args {ty_args:?}");
 
-                        for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) {
-                            ret.substitute(param, ty_arg);
+                    Ok(match expr.clone().eval(env)? {
+                        Self::Template(params, ret) => {
+                            if params.len() != ty_args.len() {
+                                return Err(Error::InvalidMonomorphize(*expr));
+                            }
+                            let mut ret = ret.clone();
+
+                            for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) {
+                                ret.substitute(param, ty_arg);
+                            }
+                            *ret
                         }
-                        *ret
-                    }
-                    Self::PolyProc(proc) => {
-                        Self::Proc(proc.monomorphize(ty_args.clone(), env)?)
-                    },
-                    Self::Declare(bindings, expr) => {
-                        let mut new_env = env.clone();
-                        new_env.add_compile_time_declaration(&bindings)?;
-                        expr.monomorphize(ty_args.clone())
-                            .eval_checked(&new_env, i)?
-                            .with(bindings)
-                    }
-                    Self::Annotated(_inner, metadata) => expr
-                        .monomorphize(ty_args.clone())
-                        .eval_checked(env, i)
-                        .map_err(|x| x.annotate(metadata))?,
+                        Self::PolyProc(proc) => {
+                            Self::Proc(proc.monomorphize(ty_args.clone(), env)?)
+                        },
+                        Self::Declare(bindings, expr) => {
+                            let mut new_env = env.clone();
+                            new_env.add_compile_time_declaration(&bindings)?;
+                            expr.monomorphize(ty_args.clone())
+                                .eval_checked(&new_env, i)?
+                                .with(bindings)
+                        }
+                        Self::Annotated(_inner, metadata) => expr
+                            .monomorphize(ty_args.clone())
+                            .eval_checked(env, i)
+                            .map_err(|x| x.annotate(metadata))?,
 
-                    _other => {
-                        Self::Monomorphize(Box::new(expr.eval_checked(env, i)?), ty_args.clone())
-                    }
-                }),
+                        _other => {
+                            Self::Monomorphize(Box::new(expr.eval_checked(env, i)?), ty_args.clone())
+                        }
+                    })
+                },
 
                 Self::TypeOf(expr) => Ok(Self::Array(
                     expr.get_type_checked(env, i)?
@@ -1885,24 +1870,12 @@
 
             Self::Type(t) => {
                 debug!("Getting type of type {t}");
-                let result = if t.is_const_param() {
+                if t.is_const_param() {
                     let cexpr = t.simplify_until_const_param(env, false)?;
                     cexpr.get_type(env)?
                 } else {
                     Type::Type(t.into())
-                };
-                // let result = match t.clone().simplify(env)? {
-                //     Type::ConstParam(cexpr) => cexpr.get_type(env)?,
-                //     t => Type::Type(t.into())
-                // };
-                // let result = if let Type::ConstParam(cexpr) = t.clone().simplify(env)? {
-                //     // Type::ConstParam(cexpr.eval(env)?.into())
-                //     cexpr.get_type(env)?
-                // } else {
-                //     Type::Type(t.clone().into())
-                // };
-                // debug!("Got type of type {t} = {result}");
-                result
+                }
             }
 
             Self::Member(val, field) => {
@@ -1914,8 +1887,8 @@
 
                 let val_type = val.get_type_checked(env, i)?;
                 debug!("Got type of container access {val} . {field}\nContainer: {val_type:?}, is_const_param: {}", val_type.is_const_param());
-                // val_type.add_monomorphized_associated_consts(env)?;
-                // Get the type of the value to get the member of.
+
+                // Get the type of the value to get the member of.
                 let val_type = val_type.simplify_until_concrete(env, false)?;
                 match &val_type {
                     Type::Unit(_unit_name, inner_ty) => {
@@ -2014,7 +1987,6 @@
                             t.clone()
                         } else {
                             // If the field is not in the union, return an error.
-                            // return Err(Error::MemberNotFound((*val.clone()).into(), (*field.clone()).into()));
                             return ConstExpr::Member(
                                 ConstExpr::Type(val_type).into(),
                                 field.clone(),
@@ -2091,9 +2063,7 @@
                         for ((param, ty), ty_arg) in params.iter().zip(ty_args.iter()) {
                             if ty_arg.is_const_param() {
                                 let cexpr = ty_arg.simplify_until_const_param(env, false)?;
-                            // if let Type::ConstParam(cexpr) = ty_arg {
-                            //     let cexpr = *cexpr.clone();
-                                if let Some(expected_ty) = ty {
+                                if let Some(expected_ty) = ty {
                                     let expected = expected_ty.clone();
                                     let found = cexpr.get_type_checked(env, i)?;
                                     if !found.equals(expected_ty, env)? {
@@ -2114,8 +2084,8 @@
                         ret
                     }
                     _ => {
-                        // debug!("Monomorphizing non-template: {expr}");
-                        Type::Apply(Box::new(template_ty.clone()), ty_args.clone())
+                        debug!("Monomorphizing non-template: {expr}");
+                        Type::Apply(Box::new(template_ty.clone()), ty_args.clone())
                     }
                 };
 
diff --git a/docs/src/sage/lir/expr/declaration.rs.html b/docs/src/sage/lir/expr/declaration.rs.html
index 4891af5f..7414f5d4 100644
--- a/docs/src/sage/lir/expr/declaration.rs.html
+++ b/docs/src/sage/lir/expr/declaration.rs.html
@@ -1001,17 +1001,6 @@
 1000
 1001
 1002
-1003
-1004
-1005
-1006
-1007
-1008
-1009
-1010
-1011
-1012
-1013
 
use super::{PolyProcedure, Procedure};
 use crate::{
     asm::{AssemblyProgram, CoreOp, Location, SP},
@@ -1525,10 +1514,7 @@
                 let bindings = pat.get_bindings(expr, &ty, env)?;
                 // Get the size of all the bindings
                 let size_of_bindings = bindings
-                    // .iter()
-                    // .map(|(_name, (_mut, ty))| ty.get_size(env).unwrap_or(0))
-                    // .sum::<usize>();
-                    .values()
+                    .values()
                     .collect::<Vec<_>>()
                     .par_iter()
                     .map(|(_mut, ty)| ty.get_size(env).unwrap_or(0))
@@ -1585,9 +1571,7 @@
 
                     for (name, associated_const) in impls {
                         let templated_const =
-                            // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect());
-                            // associated_const.template(template_params.clone());
-                            associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect());
+                            associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect());
                         new_env.add_associated_const(
                             *template.clone(),
                             name,
@@ -1600,10 +1584,6 @@
 
                     // If we are at the limit of parallel recursion, then we should
                     // type check the associated constants sequentially.
-                    // for templated_const in templated_consts {
-                    //     templated_const.type_check(&new_env)?;
-                    // }
-
                     templated_consts
                         .par_iter()
                         .try_for_each(|templated_const| templated_const.type_check(&new_env))?;
@@ -1688,7 +1668,6 @@
                 let mut new_env = env.clone();
 
                 // Add all the compile-time declarations to the environment.
-                // new_env.add_compile_time_declaration(&Self::Many(decls.clone()))?;
                 new_env.add_declaration(&Self::Many(decls.clone()), false)?;
                 trace!("Typechecking module {}", name);
                 // Get all the compile time declarations so we can type check them in parallel.
@@ -1696,8 +1675,7 @@
                     .iter()
                     .partition(|decl| decl.is_compile_time_declaration());
 
-                // trace!("Compile time declarations: {:?}", comp_time_decls);
-                if !comp_time_decls.is_empty() {
+                if !comp_time_decls.is_empty() {
                     // Type check all the compile time declarations in parallel.
                     comp_time_decls
                         .par_iter()
diff --git a/docs/src/sage/lir/expr/expression.rs.html b/docs/src/sage/lir/expr/expression.rs.html
index a2435d89..7497d158 100644
--- a/docs/src/sage/lir/expr/expression.rs.html
+++ b/docs/src/sage/lir/expr/expression.rs.html
@@ -1152,31 +1152,6 @@
 1151
 1152
 1153
-1154
-1155
-1156
-1157
-1158
-1159
-1160
-1161
-1162
-1163
-1164
-1165
-1166
-1167
-1168
-1169
-1170
-1171
-1172
-1173
-1174
-1175
-1176
-1177
-1178
 
//! # Expression
 //!
 //! An expression is a runtime value.
@@ -1415,8 +1390,7 @@
 
                                 // Check if the value actually has a member with this name.
                                 let val_type = val.get_type(env)?;
-                                // val_type.add_monomorphized_associated_consts(env)?;
-                                trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type);
+                                trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type);
                                 // If the value has a member with this name,
                                 trace!(target: "member", "WHOOP WHOOP");
                                 let (mut associated_function, mut associated_function_type) = env
@@ -1425,23 +1399,14 @@
                                         error!(target: "member", "Symbol not defined: {name} while getting member");
                                         Error::SymbolNotDefined(name.clone())
                                 })?;
-                                // .monomorphize(ty_args.clone());
-                                associated_function =
+                                associated_function =
                                     associated_function.monomorphize(ty_args.clone());
                                 associated_function_type =
                                     associated_function_type.apply(ty_args.clone());
-                                // let associated_function = ConstExpr::Type(val_type.clone())
-                                //     .field(*member)
-                                //     .monomorphize(ty_args.clone());
-                                trace!(target: "member", "function value: {associated_function} in {env}");
-                                // Get the type of the function
-                                // let associated_function_type = env
-                                //     .get_type_of_associated_const(&val_type, &name)
-                                //     .ok_or_else(|| Error::SymbolNotDefined(name))?
-                                //     .apply(ty_args);
-                                // trace!(target: "member", "got function type: {}", associated_function_type);
-
-                                let mut new_args = vec![];
+
+                                trace!(target: "member", "function value: {associated_function} in {env}");
+
+                                let mut new_args = vec![];
                                 if let Some(expected_mutability) =
                                     associated_function_type.get_self_param_mutability(env)
                                 {
@@ -1492,8 +1457,7 @@
                             let name = name?;
                             // Check if the value actually has a member with this name.
                             let val_type = val.get_type(env)?;
-                            // val_type.add_monomorphized_associated_consts(env)?;
-                            trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type);
+                            trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type);
                             // If the value has a member with this name,
                             trace!(target: "member", "WHOOP WHOOP");
 
@@ -1504,18 +1468,9 @@
                                     Error::SymbolNotDefined(name.clone())
                                 })?;
 
-                            // let associated_function = env
-                            //     .get_associated_const(&val_type, &name)
-                            //     .ok_or_else(|| Error::SymbolNotDefined(name.clone()))?;
-                            // let associated_function = ConstExpr::Type(val_type.clone())
-                            //     .field(*member)
-                            //     .monomorphize(ty_args.clone());
-                            trace!(target: "member", "function value: {associated_function} in {env}");
+                            trace!(target: "member", "function value: {associated_function} in {env}");
 
                             // Get the type of the function
-                            // let associated_function_type = env
-                            //     .get_type_of_associated_const(&val_type, &name)
-                            //     .ok_or_else(|| Error::SymbolNotDefined(name))?;
                             trace!(target: "member", "got function type: {}", associated_function_type);
                             // Get the first argument's type
                             let mut new_args = vec![];
@@ -1564,8 +1519,7 @@
                             let name = name?;
                             // Check if the value actually has a member with this name.
                             let val_type = val.get_type(env)?;
-                            // val_type.add_monomorphized_associated_consts(env)?;
-                            trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type);
+                            trace!(target: "member", "got value type: {:#?}: {val}.{name}", val_type);
                             // If the value has a member with this name,
                             trace!(target: "member", "WHOOP WHOOP");
                             let (associated_function, associated_function_type) = env
@@ -1577,10 +1531,6 @@
                             trace!(target: "member", "function value: {associated_function} in {env}");
 
                             // Get the type of the function
-                            // let associated_function_type = env
-                            //     .get_type_of_associated_const(&val_type, &name)
-                            //     .ok_or_else(|| Error::SymbolNotDefined(name))?
-                            //     .clone();
                             trace!(target: "member", "got function type: {}", associated_function_type);
                             // Get the first argument's type
                             let mut new_args = vec![];
diff --git a/docs/src/sage/lir/expr/procedure/poly.rs.html b/docs/src/sage/lir/expr/procedure/poly.rs.html
index 8a790e5c..b41d862d 100644
--- a/docs/src/sage/lir/expr/procedure/poly.rs.html
+++ b/docs/src/sage/lir/expr/procedure/poly.rs.html
@@ -324,21 +324,6 @@
 323
 324
 325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
 
//! # Poly-Procedure
 //!
 //! A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments.
@@ -460,21 +445,6 @@
         // This is a helper function to distribute the defined type
         // arguments over the body and arguments of the function.
 
-        // for ((_name, ty_param), ty_arg) in self.ty_params.iter().zip(ty_args.iter()) {
-        //     if let Some(ty_param) = ty_param {
-        //         if !ty_param.equals(&ty_arg, env)? {
-        //             return Err(Error::MismatchedTypes { expected: ty_param.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) })
-        //         }
-        //     } else {
-        //         use crate::lir::Simplify;
-        //         if matches!(ty_arg.clone().simplify(env)?, Type::ConstParam(..)) {
-        //             return Err(Error::UnexpectedConstParam {
-        //                 found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into())
-        //             })
-        //         }
-        //     }
-        // }
-
         // Simplify all the type arguments until they are concrete
         let simplified_ty_args = ty_args
             .clone()
diff --git a/docs/src/sage/lir/types/check.rs.html b/docs/src/sage/lir/types/check.rs.html
index 40f97abf..f83a544e 100644
--- a/docs/src/sage/lir/types/check.rs.html
+++ b/docs/src/sage/lir/types/check.rs.html
@@ -1336,63 +1336,6 @@
 1335
 1336
 1337
-1338
-1339
-1340
-1341
-1342
-1343
-1344
-1345
-1346
-1347
-1348
-1349
-1350
-1351
-1352
-1353
-1354
-1355
-1356
-1357
-1358
-1359
-1360
-1361
-1362
-1363
-1364
-1365
-1366
-1367
-1368
-1369
-1370
-1371
-1372
-1373
-1374
-1375
-1376
-1377
-1378
-1379
-1380
-1381
-1382
-1383
-1384
-1385
-1386
-1387
-1388
-1389
-1390
-1391
-1392
-1393
-1394
 
//! # Type Checking
 //!
 //! This module contains the type checking logic for the Lower Intermediate Representation.
@@ -1443,7 +1386,7 @@
 
             // Symbols are sound if they are defined in the environment
             Self::Symbol(name) => {
-                if env.get_type(name).is_some() {
+                if env.get_type(name).is_some() || env.get_const(name).is_some() {
                     Ok(())
                 } else {
                     debug!("Type {name} not defined in environment {env}");
@@ -1908,31 +1851,8 @@
                         Type::Array(_, _) => {
                             inner.refer(*expected_mutability).type_check(env)?;
                         }
-                        // Type::Type(ty) => match *ty {
-                        //     // If we are dereferencing/indexing a pointer,
-                        //     // confirm that the inner pointer has the expected mutability.
-                        //     Type::Pointer(found_mutability, _) => {
-                        //         if !found_mutability.can_decay_to(expected_mutability) {
-                        //             // If if doesn't, then return an error.
-                        //             error!("Expected mutability {expected_mutability} for expression {self}, but found mutability {found_mutability} in environment {env}");
-                        //             return Err(Error::MismatchedMutability {
-                        //                 expected: *expected_mutability,
-                        //                 found: found_mutability,
-                        //                 expr: self.clone(),
-                        //             });
-                        //         }
-                        //     }
-    
-                        //     // If we are indexing an array, confirm that the inner array can be referenced with the expected mutability.
-                        //     Type::Array(_, _) => {
-                        //         inner.refer(*expected_mutability).type_check(env)?;
-                        //     }
-                        //     ty => {
-                        //         warn!("Unexpected deref of type {ty}");
-                        //     }
-                        // }
-
-                        ty => {
+
+                        ty => {
                             warn!("Unexpected deref of type {ty}");
                         }
                     }
@@ -2333,11 +2253,7 @@
                 // Confirm that the type is an array or pointer.
                 match val_type {
                     Type::Array(_, _) | Type::Pointer(_, _) => {}
-                    // Type::Type(ty) => match *ty {
-                    //     Type::Array(_, _) | Type::Pointer(_, _) => {}
-                    //     _ => return Err(Error::InvalidIndex(self.clone())),
-                    // }
-                    // If it isn't, return an error.
+                    // If it isn't, return an error.
                     _ => return Err(Error::InvalidIndex(self.clone())),
                 }
 
@@ -2375,21 +2291,9 @@
                         new_env.define_type(name, Type::Unit(name.clone(), Box::new(Type::None)))
                     }
                 }
-                // // Define the type parameters in the environment.
-                // new_env.define_types(
-                //     ty_params
-                //         .clone()
-                //         .into_iter()
-                //         .map(|(p, ty)| (p.clone(), match ty {
-                //             Some(ty) => ty.clone(),
-                //             None => Type::Unit(p, Box::new(Type::None))
-                //         }))
-                //         .collect(),
-                // );
-                // Check the template type.
+                // Check the template type.
                 template.type_check(&new_env)
-                // Ok(())
-            }
+            }
 
             Self::Annotated(expr, metadata) => expr
                 .type_check(env)
@@ -2404,8 +2308,7 @@
                 e.type_check(env)?;
                 // Get the type of the expression.
                 let e_type = e.get_type(env)?;
-                // e_type.add_monomorphized_associated_consts(env)?;
-                // Typecheck the member we want to access.
+                // Typecheck the member we want to access.
                 match e_type.type_check_member(field, &Expr::ConstExpr(*e.clone()), env) {
                     Ok(_) => Ok(()),
                     Err(_err) => {
@@ -2468,18 +2371,12 @@
                     Self::Template(ref ty_params, ref template) => {
                         // Create a new environment with the type parameters defined.
                         // Define the type parameters in the environment.
-                        // new_env.define_types(
-                        //     ty_params.clone().into_iter().map(|x| x.0).zip(ty_args.clone()).collect(),
-                        // );
-
                         let mut ret = template.clone();
                         let mut new_env = env.clone();
                         for ((param, ty), ty_arg) in ty_params.iter().zip(ty_args.iter()) {
                             if ty_arg.is_const_param() {
                                 let cexpr = ty_arg.simplify_until_const_param(env, true)?;
-                            // if let Type::ConstParam(cexpr) = ty_arg {
-                            //     let cexpr = *cexpr.clone();
-                                if let Some(expected_ty) = ty {
+                                if let Some(expected_ty) = ty {
                                     let expected = expected_ty.clone();
                                     let found = cexpr.get_type(env)?;
                                     if !found.equals(expected_ty, env)? {
@@ -2499,13 +2396,11 @@
                             .simplify_until_poly(&new_env, true)?;
                         // Check the template type.
                         ret.type_check(&new_env)
-                        // Ok(())
-                    }
+                    }
                     Self::PolyProc(ref poly) => {
-                        // poly.monomorphize(ty_args.clone(), env)?.type_check(env)
-                        // Create a new environment with the type parameters defined.
+                        // Create a new environment with the type parameters defined.
                         let mut new_env = env.clone();
-                        // // Define the type parameters in the environment.
+                        // Define the type parameters in the environment.
                         new_env.define_types(
                             poly.get_type_params()
                                 .clone()
@@ -2514,22 +2409,13 @@
                                 .zip(ty_args.clone())
                                 .collect(),
                         );
-                        // // Check the template type.
+                        // Check the template type.
                         poly.type_check(env)
-                        // Ok(())
-                    }
+                    }
                     _ => {
                         self.get_type(env)?.type_check(env)?;
                         expr.type_check(env)?;
-                        // if let Self::PolyProc(poly) = *expr.clone() {
-                        //     poly.type_check(env)?
-                        // }
-                        /*
-                        for ty in ty_args {
-                            ty.type_check(env)?;
-                        }
-                        */
-                        ty_args
+                        ty_args
                             .into_par_iter()
                             .try_for_each(|ty| ty.type_check(env))?;
                         Ok(())
diff --git a/docs/src/sage/lir/types/inference.rs.html b/docs/src/sage/lir/types/inference.rs.html
index 929b13aa..d38e29d5 100644
--- a/docs/src/sage/lir/types/inference.rs.html
+++ b/docs/src/sage/lir/types/inference.rs.html
@@ -557,15 +557,6 @@
 556
 557
 558
-559
-560
-561
-562
-563
-564
-565
-566
-567
 
//! # Type Inference
 //!
 //! This module contains the type inference algorithm for the language.
@@ -885,9 +876,7 @@
                 // val_type.add_monomorphized_associated_consts(env)?;
                 match val_type {
                     Type::Type(ty) => {
-                        // ty.add_monomorphized_associated_consts(env)?;
-
-                        // Get the associated constant expression's type.
+                        // Get the associated constant expression's type.
                         env.get_type_of_associated_const(&ty, &as_symbol?)
                             .ok_or(Error::MemberNotFound(*val.clone(), field.clone()))?
                     }
@@ -982,15 +971,8 @@
                 // Only arrays and pointers can be indexed.
                 Type::Array(item, _) => *item,
                 Type::Pointer(_, item) => *item,
-                // Type::Type(ty) => {
-                //     match *ty {
-                //         Type::Array(item, _) => *item,
-                //         Type::Pointer(_, item) => *item,
-                //         _ => return Err(Error::InvalidIndex(self.clone())),
-                //     }
-                // }
 
-                // If we're accessing an index of a type that is not an array or pointer,
+                // If we're accessing an index of a type that is not an array or pointer,
                 // we cannot access an index.
                 _ => return Err(Error::InvalidIndex(self.clone())),
             },
diff --git a/docs/src/sage/lir/types/mod.rs.html b/docs/src/sage/lir/types/mod.rs.html
index 0c005d9a..b2eda34c 100644
--- a/docs/src/sage/lir/types/mod.rs.html
+++ b/docs/src/sage/lir/types/mod.rs.html
@@ -2588,69 +2588,6 @@
 2587
 2588
 2589
-2590
-2591
-2592
-2593
-2594
-2595
-2596
-2597
-2598
-2599
-2600
-2601
-2602
-2603
-2604
-2605
-2606
-2607
-2608
-2609
-2610
-2611
-2612
-2613
-2614
-2615
-2616
-2617
-2618
-2619
-2620
-2621
-2622
-2623
-2624
-2625
-2626
-2627
-2628
-2629
-2630
-2631
-2632
-2633
-2634
-2635
-2636
-2637
-2638
-2639
-2640
-2641
-2642
-2643
-2644
-2645
-2646
-2647
-2648
-2649
-2650
-2651
-2652
 
//! # Types Module
 //!
 //! This module contains a collection of types and traits
@@ -2873,9 +2810,11 @@
         self.is_recursive_helper(&mut symbols, env)
     }
 
-    pub fn is_const_param(&self) -> bool {
-        // matches!(self, Type::ConstParam(..))
-        match self {
+    /// Is this type a constant parameter?
+    /// 
+    /// This will recursively detect if the subtypes are constant parameters as well
+    pub fn is_const_param(&self) -> bool {
+        match self {
             Type::ConstParam(..) => true,
             Type::Struct(fields) => fields.iter().map(|(_name, ty)| ty).all(Self::is_const_param),
             Type::Tuple(items) => items.iter().all(Self::is_const_param),
@@ -2884,14 +2823,16 @@
         }
     }
 
-    pub(crate) fn discard_type_wrapper(self) -> Self {
+    /// Discard the wrappers of Type::Type and Type::Unit
+    pub(crate) fn discard_type_wrapper(self) -> Self {
         match self {
             Self::Type(ty) | Self::Unit(_, ty) => *ty,
             other => other
         }
     }
 
-    pub fn is_recursive_helper(
+    /// Is this type recursive?
+    pub fn is_recursive_helper(
         &self,
         symbols: &mut HashSet<String>,
         env: &Env,
@@ -3017,7 +2958,8 @@
         result
     }
 
-    pub fn strip_template(&self, env: &Env) -> Self {
+    /// Strip the template arguments to get the inner type
+    pub fn strip_template(&self, env: &Env) -> Self {
         debug!("strip_template: {}", self);
         match self {
             Self::Apply(template, _) => template.strip_template(env),
@@ -3035,11 +2977,14 @@
         }
     }
 
-    pub fn is_poly(&self) -> bool {
+    /// Is this a polymorphic function?
+    pub fn is_poly(&self) -> bool {
         matches!(self, Self::Poly(_, _))
     }
 
-    pub fn get_monomorph_template_args(
+    /// Get the template arguments for the monomorph (this type) of some polymorphic base type.
+    /// This will match the symbols in the template against the monomorph.
+    pub fn get_monomorph_template_args(
         &self,
         template: &Self,
         matched_symbols: &mut HashMap<String, (Self, Option<Type>)>,
@@ -3192,7 +3137,8 @@
         Ok(())
     }
 
-    pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result<bool, Error> {
+    /// Is this type a monomorph of a given template type?
+    pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result<bool, Error> {
         debug!("{self} is mono of {template}?");
         let result = match (self, template) {
             (Self::Apply(template1, _), template2) => {
@@ -3225,8 +3171,7 @@
 
             (Self::Array(elem1, len1), Self::Array(elem2, len2)) => {
                 return Ok(elem1.is_monomorph_of(elem2, env)? && len1.get_type(env)?.equals(&len2.get_type(env)?, env)?)
-                // return Ok(elem1.is_monomorph_of(elem2, env)?)
-            }
+            }
 
             (Self::ConstParam(cexpr), other) => cexpr.get_type(env)?.equals(other, env),
 
@@ -3240,9 +3185,9 @@
         result
     }
 
-    pub fn add_monomorphized_associated_consts(&self, env: &Env) -> Result<(), Error> {
-        // warn!("add_monomorphized_associated_consts: Adding monomorphized associated consts for {}", self);
-        match self.clone() {
+    /// Add monomorphized methods for a given monomorph of a template type with methods.
+    pub fn add_monomorphized_associated_consts(&self, env: &Env) -> Result<(), Error> {
+        match self.clone() {
             Self::Apply(template, args) => {
                 let simplified_args = args
                     .iter()
@@ -3251,9 +3196,8 @@
 
                 let mut mono_ty = Self::Apply(template.clone(), simplified_args.clone());
                 mono_ty = mono_ty.simplify_until_concrete(env, false)?;
-                // warn!("add_monomorphized_associated_consts: Adding monomorphized associated consts for {self} to {}", mono_ty);
 
-                env.add_monomorphized_associated_consts(*template, mono_ty, simplified_args)?;
+                env.add_monomorphized_associated_consts(*template, mono_ty, simplified_args)?;
             }
 
             Self::Struct(fields) => {
@@ -3318,26 +3262,16 @@
         Ok(())
     }
 
-    pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option<Type>)> {
+    /// Get the template parameters for this template type.
+    pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option<Type>)> {
         debug!("get_template_params: {}", self);
         match self.simplify_until_poly(env, false) {
             Ok(Self::Poly(params, _)) => {
-                // debug!(
-                //     "get_template_params: {} params: {}",
-                //     self,
-                //     params.join(", ")
-                // );
-                params.clone()
+                params.clone()
             }
             Ok(Self::Symbol(name)) => {
                 if let Some(t) = env.get_type(&name) {
-                    let result = t.get_template_params(env);
-                    // debug!(
-                    //     "get_template_params: {} params: {}",
-                    //     name,
-                    //     result.join(", ")
-                    // );
-                    result
+                    t.get_template_params(env)
                 } else {
                     debug!("get_template_params: Couldn't find type {}", name);
                     vec![]
@@ -3353,7 +3287,8 @@
         }
     }
 
-    pub fn apply(&self, args: Vec<Self>) -> Self {
+    /// Apply this template type with some type arguments.
+    pub fn apply(&self, args: Vec<Self>) -> Self {
         Self::Apply(Box::new(self.clone()), args)
     }
 
@@ -3412,7 +3347,11 @@
         }
     }
 
-    pub fn is_concrete(&self) -> bool {
+    /// Is this type simplified enough to get information about what the
+    /// outer type is? Is it a tuple, a struct, etc?
+    /// 
+    /// Symbols and polymorphic types do not satisfy this condition.
+    pub fn is_concrete(&self) -> bool {
         match self {
             Self::Poly(_, _) | Self::Symbol(_) | Self::Apply(_, _) | Self::Let(_, _, _) => false,
 
@@ -3460,9 +3399,8 @@
             Self::Pointer(_, inner) => inner.is_atomic(),
             Self::Struct(inner) => inner.iter().all(|(_, t)| t.is_atomic()),
             Self::EnumUnion(inner) => inner.iter().all(|(_, t)| t.is_atomic()),
-            // Self::Poly(_, _) | Self::Symbol(_) | Self::Apply(_, _) => false,
-            // Self::Let(_, _, ret) => ret.is_atomic(),
-            _ => false,
+
+            _ => false,
         }
     }
 
@@ -3510,7 +3448,8 @@
             .simplify_until_matches(env, Type::Any, |t, env| t.type_check(env).map(|_| true), true)
     }
 
-    fn possibly_has_members(&self) -> bool {
+    /// Does this type possibly have some members/fields?
+    fn possibly_has_members(&self) -> bool {
         if matches!(
             self,
             Self::Tuple(_) | Self::Struct(_) | Self::Union(_) | Self::Pointer(_, _) | Self::Type(_)
@@ -3538,7 +3477,8 @@
         result
     }
 
-    fn is_union(&self) -> bool {
+    /// Is this a union type?
+    fn is_union(&self) -> bool {
         if matches!(self, Self::Union(_) | Self::EnumUnion(_)) {
             return true;
         }
@@ -3561,7 +3501,8 @@
         result
     }
 
-    fn has_variants(&self) -> bool {
+    /// Does this type have enum variants?
+    fn has_variants(&self) -> bool {
         if matches!(self, Self::Enum(_) | Self::EnumUnion(_)) {
             return true;
         }
@@ -3584,7 +3525,8 @@
         result
     }
 
-    fn is_polymorphic(&self) -> bool {
+    /// Is this type polymorphic?
+    fn is_polymorphic(&self) -> bool {
         if matches!(self, Self::Poly(_, _)) {
             return true;
         }
@@ -3641,27 +3583,7 @@
         result
     }
 
-
-    // /// Simplify until the type is concrete.
-    // pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result<ConstExpr, Error> {
-    //     let mut simplified = self.clone();
-    //     for _ in 0..4 {
-    //         if let Self::ConstParam(cexpr) = simplified {
-    //             return Ok(*cexpr);
-    //         }
-    //         simplified = simplified.simplify(env)?;
-    //     }
-    //     // if result.is_err() {
-    //     //     debug!("Couldn't simplify {} to a constant param", self);
-    //     // }
-
-    //     match simplified {
-    //         Type::ConstParam(cexpr) => Ok(*cexpr),
-    //         result => panic!("Unexpected {result}")
-    //     }
-    // }
-
-    /// Simplify until the type is concrete.
+    /// Simplify until the type is concrete.
     pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result<ConstExpr, Error> {
         let mut simplified = self.clone();
         for _ in 0..3 {
@@ -3712,11 +3634,8 @@
                 other => other
             };
         }
-        // if result.is_err() {
-        //     debug!("Couldn't simplify {} to a constant param", self);
-        // }
 
-        match simplified {
+        match simplified {
             Type::ConstParam(cexpr) => Ok(*cexpr),
             result => panic!("Unexpected {result}")
         }
@@ -3823,8 +3742,7 @@
     /// Substitute all occurences of a symbol with another type.
     /// This will not traverse into let-bindings when the symbol is overshadowed.
     pub fn substitute(&self, name: &str, substitution: &Self) -> Self {
-        // warn!("Subbing {name} for {substitution} in {self}");
-        let result = match self {
+        let result = match self {
             Self::Type(t) => Self::Type(Box::new(t.substitute(name, substitution))),
             Self::Let(typename, binding, ret) => Self::Let(
                 typename.clone(),
@@ -3934,8 +3852,7 @@
                 Self::Pointer(*mutability, Box::new(ptr.substitute(name, substitution)))
             }
         };
-        // warn!("Got back {result}");
-        result
+        result
     }
 
     /// Does this type have an element type matching the supplied type?
@@ -3963,19 +3880,8 @@
             return Ok(true);
         }
 
-        // if !self.is_simple() || !desired.is_simple() {
-        //     return Ok(false);
-        // }
-
-        match (self, desired) {
-            // (Type::Type(ty), desired) => {
-            //     ty.can_decay_to(desired, env)
-            // }
-            // (ty, Type::Type(desired)) => {
-            //     ty.can_decay_to(desired, env)
-            // }
-            // (Self::Unit(_, inner), _) => inner.can_decay_to(desired, env),
-            (Self::Unit(name1, t1), Self::Unit(name2, t2)) => {
+        match (self, desired) {
+            (Self::Unit(name1, t1), Self::Unit(name2, t2)) => {
                 if name1 == name2 {
                     t1.can_decay_to(t2, env)
                 } else {
@@ -4085,24 +3991,7 @@
                 trace!("{} can decay to {}", self, desired);
                 Ok(true)
             }
-
-            // (Type::Apply(f, args), other) => {
-            //     match *f.clone() {
-            //         Type::Poly(params, template) => {
-            //             let mut template = *template.clone();
-            //             for (param, arg) in params.iter().zip(args.iter()) {
-            //                 template = template.substitute(param, arg);
-            //             }
-            //             template.can_decay_to(other, env)
-            //         }
-
-            //     }
-            //     // let mut f = f.clone();
-            //     // for arg in args {
-            //     //     f = f.substitute(, substitution)
-            //     // }
-            // }
-            (Type::Cell, Type::Int) | (Type::Int, Type::Cell) => Ok(true),
+            (Type::Cell, Type::Int) | (Type::Int, Type::Cell) => Ok(true),
 
             (a, b) => a.equals(b, env),
         }
@@ -4420,9 +4309,8 @@
             );
             return Ok(false);
         }
-        // trace!("Checking if {} equals {}", self, other);
 
-        let i = i + 1;
+        let i = i + 1;
 
         Ok(match (self, other) {
             (Self::Any, _)
@@ -4994,6 +4882,8 @@
             Self::Symbol(ref name) => {
                 if let Some(t) = env.get_type(name) {
                     t.clone()
+                } else if let Some(cexpr) = env.get_const(name) {
+                    Type::ConstParam(cexpr.clone().into())
                 } else {
                     self.clone()
                 }
@@ -5061,26 +4951,10 @@
             ),
 
             Self::Apply(poly, ty_args) => {
-                // let poly_clone = poly.clone();
-                // match *poly {
-                //     Self::Poly(params, mut result) => {
-                //         for (param, arg) in params.iter().zip(ty_args.iter()) {
-                //             *result = result.substitute(param, arg);
-                //         }
-                //         // *result = result.simplify_checked(env, i)?;
-
-                //         // Add mono type to environment
-                //         env.add_monomorphized_associated_consts(*poly_clone, *result.clone(), ty_args)?;
-                //         *result
-                //     }
-                //     _ => Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args)
-                // }
-
-                Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args)
+                Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args)
             }
         };
-        // warn!("Simplified {_s} into {result}");
-        Ok(result)
+        Ok(result)
     }
 }
 
diff --git a/examples/web/index.html b/examples/web/index.html
index 8996f4cc..de6ab312 100644
--- a/examples/web/index.html
+++ b/examples/web/index.html
@@ -1942,7 +1942,12 @@
 }`);
                     break;
                 case "sum-types":
-                    source.setValue(`enum Option {
+                    source.setValue(`fun main() {
+    let x = Option of Some(5);
+    println(x.unwrap());
+}
+
+enum Option {
     Some(T),
     Nothing,
 }
@@ -1962,11 +1967,6 @@
     }
 }
 
-fun main() {
-    let x = Option of Some(5);
-    println(Option.unwrap(x));
-}
-
 main();`)
                     break;
                 default:

From 1500d99d7a64e1b3d9f22827b02adf34bed19ce7 Mon Sep 17 00:00:00 2001
From: Adam McDaniel 
Date: Sun, 8 Sep 2024 05:53:03 -0400
Subject: [PATCH 28/29] Improved web example

---
 CHANGELOG.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 64 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 210f9e5a..045bfb13 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -185,4 +185,67 @@ println(main());
 The compiler is significantly faster -- about 20 times faster at compiling the AES example.
 This is mainly due to the much faster parser implemented with Nom instead of Pest.
 There are also several optimizations with constant evaluation I added, along with optimizations
-for how declarations are typechecked.
\ No newline at end of file
+for how declarations are typechecked.
+
+
+## [0.1.1-alpha] - 2024-9-8
+
+### Added
+
+Added `const` generics, so constant parameters can be passed along with types through templates. This allows the typechecker to be applied to many more aspects of code, including examples like typechecking dimensions of matrix multiplications at compile time.
+
+```rs
+struct Matrix {
+    arr: [[T * Cols] * Rows]
+}
+
+impl Matrix {
+    fun new(x: T): Matrix {
+        return {arr=[[x] * Cols] * Rows};
+    }
+
+    fun get(&self, row: Int, col: Int): &T {
+        return &self.arr[row][col];
+    }
+
+    fun mul(
+        &self,
+        other: &Matrix,
+        zero: T,
+        add: fun(T, T) -> T,
+        mul: fun(T, T) -> T
+    ): Matrix {
+        let mut result = Matrix.new(zero);
+        for let mut j=0; j(10);
+let mut y = Matrix.new(5);
+
+println(x);
+println(y);
+
+fun add_ints(a: Int, b: Int): Int = a + b;
+fun mul_ints(a: Int, b: Int): Int = a * b;
+
+let z = y.mul<4>(&x, 0, add_ints, mul_ints);
+println(z);
+```
+
+### Changed
+
+Changed type system to accommodate const generics. This was done by adding a `ConstParam` variant to types.
+
+### Fixed
+
+Improved parser speed by a significant amount during the process.
\ No newline at end of file

From 0fdcd0d513f2e806c6bd0540e24a46dfd898aa6d Mon Sep 17 00:00:00 2001
From: Adam McDaniel 
Date: Sun, 8 Sep 2024 05:56:08 -0400
Subject: [PATCH 29/29] Added const generics to readme

---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index 307b4f38..13214454 100644
--- a/README.md
+++ b/README.md
@@ -302,6 +302,7 @@ Go to the [web-demo](https://adam-mcdaniel.net/sage) or the [examples/frontend](
 - [ ] VSCode extension (syntax highlighting, code completion, etc.)
 - [ ] Typeclasses
 - [ ] `no-std` implementation of compiler
+- [x] `const` generics
 - [x] Modules
 - [x] A standard library
   - [ ] Type Reflection Module
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 z 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'aOS6*C)BN%m4`s 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�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

E0y8DWsYnh%@dog0^I!hNvcg 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 &&GJ;XipDAKIw{e4_u@5%d9c#1+6FM)v? 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%0AEr*6rab~tAbKy4&Hj{)CUPL7@fI)Ko` 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

nh$z*VMpR{xFAy? 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 zvq#gCoreProgram 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.","Assembly Global Variables","","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.","Arithmetic right shift a destination by 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 …","Write a set of values to a memory location.","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.","Left shift a destination by a source value.","Logical right shift a destination by a source value. This …","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 …","Get the address of a location and push it to the stack.","Push a const to the stack.","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.","Perform a SIMD addition over a vector of integers. This …","Perform a vector “And” operation. This will perform a …","Perform a SIMD arithmetic right shift operation over a …","","","","","","","Decrement a vector of integers.","Perform a SIMD division over a vector of integers. This …","Perform a SIMD “is >= zero” operation over a vector of …","Increment a vector of integers.","Perform a SIMD pointer index operation over a vector of …","Perform a SIMD left shift operation over a vector of …","Perform a SIMD logical right shift operation over a vector …","Perform a SIMD multiplication over a vector of integers. …","Negate a vector of integers using SIMD.","Perform a vector “Not” operation. This will replace …","Perform a SIMD pointer arithmetic operation over a vector …","Perform a vector “Or” operation. This will perform a …","Perform a SIMD remainder over a vector of integers. This …","Set the vector values of a destination.","Perform a SIMD subtraction over a vector of integers. This …","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.","Write some constant values to a location on the tape","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).","Push some constant values to the stack.","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 …","Perform a SIMD floating point inverse cosine operation.","Perform a SIMD floating point inverse sine operation.","Perform a SIMD floating point inverse tangent operation.","Perform a SIMD floating point addition operation.","Perform a SIMD floating point cosine operation.","Perform a SIMD floating point division operation.","Perform a SIMD floating point greater than or equal to …","Perform a SIMD floating point multiplication operation.","Perform a SIMD floating point negation operation.","Perform a SIMD floating point power operation.","Perform a SIMD floating point remainder operation.","Set the vector values of a destination.","Perform a SIMD floating point sine operation.","Perform a SIMD floating point subtraction operation.","Perform a SIMD floating point tangent operation.","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 beginning of the constant data.","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.","","","","","","","","The constant data.","","","","","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.","","","Duplicate implementations of a member for a type","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.","Import an element from a module.","","","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","Declare a module","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 character.","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?","Create a collection of declarations","Generate an expression which evaluates a match expression, …","Create a module with a given name and a list of …","","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.","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 …","","","","","","","Foreign Function Interface","I/O Module","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).","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.","The type for the C 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. The …","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Boolean-and the register and the value pointed to on the …","Interpret the register’s value as a signed integer. …","Perform bitwise and on the cell and the value pointed to …","Perform bitwise nand on the cell and the value pointed to …","Bitwise not the register. Store the result in the register.","Perform bitwise or on the cell and the value pointed to on …","Perform a bitwise xor 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 …","Decrement the register.","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.","Increment the register. The argument is the size of the …","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 …","Left shift the cell by the value pointed to on the tape. …","Store the value pointed to on the tape to the register.","Logical right shift the cell by the value pointed to on …","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 …","Negate the register. The argument is the size of the …","Negate the value of the register (as a float).","Boolean-not the register (0 if the register is non-zero, 1 …","Interpret the register’s value as a pointer to a cell. …","Boolean-or the register and the value pointed to on the …","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 …","Return from the current function.","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 …","Store the register to the value pointed to on the tape.","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Swap the value of the register with the value pointed to …","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,3,0,3,1,1,1,1,1,1,1,1,3,0,1,1,3,0,3,3,1,0,3,1,1,1,1,1,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,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,17,17,10,17,10,17,10,17,10,17,10,17,17,17,17,10,17,10,17,10,17,10,17,10,17,17,10,10,17,10,17,17,10,17,10,17,10,17,17,17,17,10,10,10,17,10,10,17,17,10,17,10,17,10,17,10,17,10,105,106,107,108,109,110,111,112,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,105,106,107,108,109,110,111,145,146,147,148,149,150,151,152,153,154,155,156,157,158,115,142,143,158,114,122,123,124,125,126,129,130,131,132,133,137,138,139,140,141,142,143,159,144,152,153,154,155,156,157,159,144,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,134,135,136,137,138,139,140,143,159,145,147,148,149,150,151,152,153,154,155,156,145,146,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,25,0,0,0,0,0,0,0,25,25,0,25,0,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,28,28,11,28,11,28,11,28,11,28,28,28,28,11,28,11,28,11,28,11,28,11,28,28,11,11,28,28,11,28,28,11,28,11,28,28,28,28,11,28,11,28,28,11,28,11,28,11,28,11,28,11,160,161,160,161,162,163,164,165,166,167,168,160,161,169,170,171,172,173,174,175,176,177,178,179,180,181,182,169,170,171,172,173,174,175,176,177,178,179,180,181,182,163,164,165,166,167,168,169,170,171,172,173,175,182,162,0,0,49,37,0,36,35,30,0,67,34,30,34,36,36,0,35,30,34,35,30,36,0,0,30,0,30,0,0,0,0,0,0,35,34,38,38,35,34,35,34,0,0,36,38,31,0,30,37,38,0,35,36,38,0,38,59,0,35,30,0,30,30,36,59,49,36,34,35,30,34,0,57,0,0,31,0,35,35,34,31,31,0,0,0,57,57,30,30,67,31,30,35,34,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,38,57,57,34,38,38,31,30,30,35,30,36,36,36,31,35,49,0,67,30,0,36,34,0,36,36,36,38,35,34,0,57,35,35,0,0,37,34,34,35,31,0,49,35,31,34,0,0,36,36,30,49,30,34,0,35,36,35,0,35,31,35,30,37,34,49,35,37,34,36,38,0,35,38,0,30,35,30,37,34,0,35,31,34,0,36,35,36,38,0,30,36,35,30,34,34,36,36,36,31,31,37,36,30,30,37,31,30,31,33,34,37,30,36,35,30,35,30,34,37,68,69,35,35,35,35,35,35,30,30,30,30,30,30,30,38,30,38,30,68,69,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,43,43,44,44,45,45,46,46,34,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,74,74,43,43,44,44,45,45,46,46,47,50,74,35,30,68,69,70,71,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,34,59,37,33,67,33,33,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,35,31,30,37,68,69,70,71,72,67,34,43,43,44,44,45,45,46,46,59,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,35,31,30,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,34,43,44,45,46,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,35,30,37,38,33,33,36,36,35,35,31,31,30,30,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,60,60,61,61,62,62,63,63,64,64,65,65,66,66,37,37,68,68,69,69,70,70,71,71,72,72,67,67,34,34,38,38,33,36,36,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,67,34,72,30,33,71,33,37,71,37,71,71,30,34,72,71,34,79,79,79,35,30,68,69,70,71,72,34,34,80,80,80,35,30,68,69,70,71,72,33,30,30,33,34,38,38,35,31,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,30,37,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,34,38,34,67,38,37,38,30,34,67,38,34,34,34,34,34,38,30,34,30,30,30,30,30,30,30,30,38,30,31,37,31,35,72,30,43,43,44,44,45,45,46,46,68,69,30,30,50,70,71,72,30,30,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,34,37,30,30,30,35,71,30,30,68,69,43,43,44,44,45,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,35,31,30,37,68,69,70,71,72,67,34,71,81,81,35,34,34,34,34,34,34,34,34,34,34,30,34,37,30,30,80,35,30,68,69,70,71,72,34,80,80,37,35,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,84,43,43,44,44,45,45,46,46,35,31,30,37,68,69,70,71,72,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,35,30,34,30,37,35,30,71,72,183,183,184,185,184,185,186,184,185,186,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,0,0,0,0,75,75,75,75,75,75,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,90,90,90,91,0,90,91,89,91,89,90,90,91,90,91,0,91,90,0,90,90,91,90,91,89,90,90,90,91,0,88,91,90,89,90,90,91,90,0,0,90,90,88,89,90,90,91,91,91,91,91,91,90,89,0,0,90,90,91,90,91,91,91,90,91,89,90,90,89,90,88,91,91,91,91,91,91,91,91,90,91,91,91,90,90,90,91,91,91,91,91,90,90,88,91,91,90,90,89,90,90,87,87,89,87,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,87,88,88,89,89,90,90,91,91,92,92,86,86,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,23,87,88,89,90,91,92,86,23,86,87,88,89,90,91,92,86,23,23,23,23,86,86,86,23,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,0,0,93,93,93,93,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,95,95,95,94,95,95,94,94,94,94,94,94,94,94,95,94,0,0,95,0,95,94,94,0,94,95,94,94,0,9,95,94,94,94,94,94,94,95,94,94,94,94,94,95,94,95,94,94,94,95,95,95,94,94,94,95,94,94,95,95,0,0,0,0,94,94,95,94,95,0,95,95,9,0,94,94,99,0,0,100,100,100,100,100,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,99,9,18,94,29,95,99,9,18,94,100,18,29,100,101,102,18,29,103,99,101,102,100,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,9,103,104,100,103,99,103,18,29,18,94,94,29,95,95,103,99,9,9,101,102,18,94,29,29,95,103,99,9,104,100,103,99,18,29,18,29,18,29,18,94,100,101,102,18,94,29,95,103,99,9,103,101,102,18,94,29,95,103,99,9,100,100,100,101,102,103,103,100,18,29,103,103,103,18,94,29,95,9,104,100,103,99,104,100,103,99,104,100,103,99,100,100,100,101,102,100,100,100,100,100,100,18,29,100,18,94,29,95,99,9,18,94,29,95,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100],"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,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[[3,4],2],0,[3,5],[5,-1,[]],[5,-1,[]],[5,2],[[1,1],6],[[1,7],8],[[1,7],8],[9,1],[-1,-1,[]],[[3,5],[[13,[[12,[10,11]]]]]],0,[[],5],[-1,-2,[],[]],[[3,14],6],0,[[3,14,14,5],2],[[3,10],2],[[1,1],[[13,[15]]]],0,[[3,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,5],[[12,[18,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[17,17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[17,17],15],[[10,10],15],0,[17,5],[[],17],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[17]]],19],[-1,[[12,[10]]],19],[5,2],[5,2],[[17,17],6],[[10,10],6],[[17,7],8],[[17,7],8],[[10,7],8],[[10,7],8],[-1,-1,[]],[-1,-1,[]],[[17,5],[[13,[[12,[10,11]]]]]],[[17,-1],2,20],[[10,-1],2,20],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[17,14],6],[[[21,[10]]],17],[[17,10],2],[[17,17],[[13,[15]]]],[[10,10],[[13,[15]]]],[-1,10,22],[[-1,23],10,22],[[17,-1],12,24],[[10,-1],12,24],[[25,-1],10,22],[[17,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[26,4,5],25],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],26],[5,-1,[]],[5,-1,[]],[-1,[[12,[26]]],19],[5,2],[[26,7],8],[[26,7],8],[-1,-1,[]],[[26,14],[[13,[[2,[25,5,5]]]]]],[[26,14],[[13,[25]]]],[[26,14],[[13,[5]]]],[26,5],[[],5],[-1,-2,[],[]],[[],26],[[26,25],[[12,[25,1]]]],[[26,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[[-1,-2],2,[],[]],[[25,25],15],[25,25],[5,-1,[]],[5,-1,[]],[-1,[[12,[25]]],19],[5,2],[[25,25],6],[[25,7],8],[[25,7],8],[-1,-1,[]],[[25,-1],2,20],[[],5],[-1,-2,[],[]],[[25,27],25],[[25,25],[[13,[15]]]],[[25,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[28,5],[[12,[29,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[11,11],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],0,[28,5],[[],28],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[28]]],19],[-1,[[12,[11]]],19],[5,2],[5,2],[[28,28],6],[[11,11],6],[[28,7],8],[[28,7],8],[[11,7],8],[[11,7],8],[-1,-1,[]],[17,28],[-1,-1,[]],[[28,5],[[13,[[12,[10,11]]]]]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[28,14],6],[[[21,[11]]],28],[[28,10],2],[[28,28],[[13,[15]]]],[[11,11],[[13,[15]]]],[[28,-1],12,24],[[11,-1],12,24],[[28,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[13,[14]],6,6],[[12,[30,4]]],22],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[31,-1],-2,[[32,[31]]],[]],[[30,-1],30,[[32,[30]]]],[[31,-1],2,[[32,[31]]]],[[33,34,-1,35],[[12,[2,36]]],22],[[34,33],[[12,[2,36]]]],[[[21,[37]]],37],[[30,-1],30,[[32,[30]]]],[[36,38],36],[[35,38],35],[[30,-1],30,[[32,[38]]]],[[35,[21,[30]]],30],[[30,[21,[30]]],30],[[34,[21,[34]]],34],[[30,[39,[37]],34,33],[[12,[6,36]]]],0,0,[[35,33],[[12,[6,36]]]],[[35,33],[[12,[40,36]]]],[[35,33],[[12,[41,36]]]],[[35,33],[[12,[42,36]]]],[[35,33],[[12,[4,36]]]],[[35,34],35],[[30,34],30],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[30,30],[[38,38],-1,[]],[[30,-1],30,[[32,[30]]]],[[38,38],2],[[30,-1],30,[[32,[30]]]],0,0,[6,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[43,34,34,33],[[12,[6,36]]]],[[44,34,33],[[12,[6,36]]]],[[45,34,34,33],[[12,[6,36]]]],[[46,34,34,34,33],[[12,[6,36]]]],[[47,34,34,33],[[12,[6,36]]]],[[48,34,33],[[12,[6,36]]]],[[49,34,34,33],[[12,[6,36]]]],[[50,34,34,33],[[12,[6,36]]]],[[51,34,34,33],[[12,[6,36]]]],[[52,34,34,33],[[12,[6,36]]]],[[53,34,34,33],[[12,[6,36]]]],[[54,34,33],[[12,[6,36]]]],[[55,34,34,33],[[12,[6,36]]]],[[56,34,34,33],[[12,[6,36]]]],[[57,34,34,33],[[12,[6,36]]]],[[58,34,33],[[12,[6,36]]]],[[59,34,33],[[12,[6,36]]]],[[60,34,34,33],[[12,[6,36]]]],[[61,34,34,33],[[12,[6,36]]]],[[62,34,33],[[12,[6,36]]]],[[63,34,33],[[12,[6,36]]]],[[64,34,33],[[12,[6,36]]]],[[65,34,33],[[12,[6,36]]]],[[66,34,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[[67,67],6],[[34,34,33],[[12,[6,36]]]],[38,38],[33,33],[36,36],[35,35],[31,31],[30,30],[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],[60,60],[61,61],[62,62],[63,63],[64,64],[65,65],[66,66],[37,37],[68,68],[69,69],[70,70],[71,71],[72,72],[67,67],[34,34],[43,[[73,[43]]]],[44,[[73,[44]]]],[45,[[73,[45]]]],[46,[[73,[46]]]],[47,[[73,[45]]]],[48,[[73,[44]]]],[49,[[73,[45]]]],[50,[[73,[43]]]],[51,[[73,[45]]]],[52,[[73,[45]]]],[53,[[73,[45]]]],[54,[[73,[44]]]],[55,[[73,[45]]]],[56,[[73,[45]]]],[57,[[73,[45]]]],[58,[[73,[44]]]],[59,[[73,[44]]]],[60,[[73,[45]]]],[61,[[73,[45]]]],[62,[[73,[44]]]],[63,[[73,[44]]]],[64,[[73,[44]]]],[65,[[73,[44]]]],[66,[[73,[44]]]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[43,43],15],[[44,44],15],[[45,45],15],[[46,46],15],[[38,38],15],[[47,47],15],[[48,48],15],[[51,51],15],[[52,52],15],[[53,53],15],[[54,54],15],[[55,55],15],[[56,56],15],[[57,57],15],[[58,58],15],[[59,59],15],[[60,60],15],[[63,63],15],[[64,64],15],[[65,65],15],[[66,66],15],[[67,67],15],[74,[[12,[[12,[17,28]],36]]]],[74,[[12,[[12,[17,28]],36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[47,30,30,33,3],[[12,[2,36]]]],[[50,30,30,33,3],[[12,[2,36]]]],[[74,33,3],[[12,[2,36]]]],[[35,33,3],[[12,[2,36]]]],[[30,33,3],[[12,[2,36]]]],[[68,33,3],[[12,[2,36]]]],[[69,33,3],[[12,[2,36]]]],[[70,33,3],[[12,[2,36]]]],[[71,33,3],[[12,[2,36]]]],[[43,34,34,33,3],[[12,[2,36]]]],[[44,34,33,3],[[12,[2,36]]]],[[45,34,34,33,3],[[12,[2,36]]]],[[46,34,34,34,33,3],[[12,[2,36]]]],[[47,34,34,33,3],[[12,[2,36]]]],[[48,34,33,3],[[12,[2,36]]]],[[49,34,34,33,3],[[12,[2,36]]]],[[50,34,34,33,3],[[12,[2,36]]]],[[51,34,34,33,3],[[12,[2,36]]]],[[52,34,34,33,3],[[12,[2,36]]]],[[53,34,34,33,3],[[12,[2,36]]]],[[54,34,33,3],[[12,[2,36]]]],[[55,34,34,33,3],[[12,[2,36]]]],[[56,34,34,33,3],[[12,[2,36]]]],[[57,34,34,33,3],[[12,[2,36]]]],[[58,34,33,3],[[12,[2,36]]]],[[59,34,33,3],[[12,[2,36]]]],[[60,34,34,33,3],[[12,[2,36]]]],[[61,34,34,33,3],[[12,[2,36]]]],[[62,34,33,3],[[12,[2,36]]]],[[63,34,33,3],[[12,[2,36]]]],[[64,34,33,3],[[12,[2,36]]]],[[65,34,33,3],[[12,[2,36]]]],[[66,34,33,3],[[12,[2,36]]]],[[34,14],6],[[25,34,33,3],[[12,[2,36]]]],[[37,30,34,33],[[12,[2,36]]]],[[],33],[[],67],[[33,[21,[[2,[4,34]]]]],2],[[33,-1,67,34],[[12,[27,36]]],22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[30,30],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[[30,-1],30,[[32,[30]]]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[38]]],19],[-1,[[12,[35]]],19],[-1,[[12,[31]]],19],[-1,[[12,[30]]],19],[-1,[[12,[37]]],19],[-1,[[12,[68]]],19],[-1,[[12,[69]]],19],[-1,[[12,[70]]],19],[-1,[[12,[71]]],19],[-1,[[12,[72]]],19],[-1,[[12,[67]]],19],[-1,[[12,[34]]],19],[[43,30,30],4],[[43,30,30],4],[[44,30],4],[[44,30],4],[[45,30,30],4],[[45,30,30],4],[[46,30,30,30],4],[[46,30,30,30],4],[[25,34,33,3],[[12,[2,36]]]],[[30,-1],30,[[32,[30]]]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[43,43],6],[[44,44],6],[[45,45],6],[[46,46],6],[[38,38],6],[[35,35],6],[[31,31],6],[[30,30],6],[[30,-1],30,[[32,[30]]]],[[47,47],6],[[48,48],6],[[51,51],6],[[52,52],6],[[53,53],6],[[54,54],6],[[55,55],6],[[56,56],6],[[57,57],6],[[58,58],6],[[59,59],6],[[60,60],6],[[63,63],6],[[64,64],6],[[65,65],6],[[66,66],6],[[37,37],6],[[68,68],6],[[69,69],6],[[70,70],6],[[71,71],6],[[72,72],6],[[67,67],6],[[34,34],6],[[34,34,33],[[12,[6,36]]]],[[43,35,35,33],[[12,[35,36]]]],[[44,35,33],[[12,[35,36]]]],[[45,35,35,33],[[12,[35,36]]]],[[46,35,35,35,33],[[12,[35,36]]]],[[35,33],[[12,[35,36]]]],[[47,35,35,33],[[12,[35,36]]]],[[48,35,33],[[12,[35,36]]]],[[49,35,35,33],[[12,[35,36]]]],[[50,35,35,33],[[12,[35,36]]]],[[51,35,35,33],[[12,[35,36]]]],[[52,35,35,33],[[12,[35,36]]]],[[53,35,35,33],[[12,[35,36]]]],[[54,35,33],[[12,[35,36]]]],[[55,35,35,33],[[12,[35,36]]]],[[56,35,35,33],[[12,[35,36]]]],[[57,35,35,33],[[12,[35,36]]]],[[58,35,33],[[12,[35,36]]]],[[59,35,33],[[12,[35,36]]]],[[60,35,35,33],[[12,[35,36]]]],[[61,35,35,33],[[12,[35,36]]]],[[62,35,33],[[12,[35,36]]]],[[63,35,33],[[12,[35,36]]]],[[64,35,33],[[12,[35,36]]]],[[65,35,33],[[12,[35,36]]]],[[66,35,33],[[12,[35,36]]]],[[35,35],35],[[30,35],30],[41,37],[[38,7],8],[[33,7],8],[[33,7],8],[[36,7],8],[[36,7],8],[[35,7],8],[[35,7],8],[[31,7],8],[[31,7],8],[[30,7],8],[[30,7],8],[[47,7],8],[[47,7],8],[[48,7],8],[[48,7],8],[[49,7],8],[[49,7],8],[[50,7],8],[[50,7],8],[[51,7],8],[[51,7],8],[[52,7],8],[[52,7],8],[[53,7],8],[[53,7],8],[[54,7],8],[[54,7],8],[[55,7],8],[[55,7],8],[[56,7],8],[[56,7],8],[[57,7],8],[[57,7],8],[[58,7],8],[[58,7],8],[[59,7],8],[[59,7],8],[[60,7],8],[[60,7],8],[[61,7],8],[[61,7],8],[[62,7],8],[[62,7],8],[[63,7],8],[[63,7],8],[[64,7],8],[[64,7],8],[[65,7],8],[[65,7],8],[[66,7],8],[[66,7],8],[[37,7],8],[[37,7],8],[[68,7],8],[[68,7],8],[[69,7],8],[[69,7],8],[[70,7],8],[[70,7],8],[[71,7],8],[[71,7],8],[[72,7],8],[[72,7],8],[[67,7],8],[[67,7],8],[[34,7],8],[[34,7],8],[-1,-1,[]],[75,38],[-1,-1,[]],[-1,-1,[]],[1,36],[-1,-1,[]],[[[2,[14,67,34,30]]],31],[[[2,[14,34]]],31],[[[2,[4,72]]],31],[[[2,[14,67,[13,[34]],30]]],31],[[[2,[14,71]]],31],[[[2,[4,70]]],31],[[[2,[4,34]]],31],[[[2,[14,35]]],31],[[[2,[37,30]]],31],[[[2,[4,67,34,30]]],31],[[[73,[31]]],31],[[[2,[14,67,30]]],31],[-1,-1,[]],[[[2,[4,35]]],31],[[[2,[14,72]]],31],[[[2,[4,71]]],31],[[[2,[14,30]]],31],[[[2,[4,30]]],31],[[[21,[-1]]],31,[[32,[31]]]],[[[2,[14,70]]],31],[[[2,[4,67,[13,[34]],30]]],31],[[[2,[4,67,30]]],31],[[[76,[-1,-2]]],31,[],[]],[35,30],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[6,67],[-1,-1,[]],[-1,-1,[]],[[71,[21,[4]]],72],[[30,-1],30,[[32,[30]]]],[[33,34],[[21,[[2,[4,35]]]]]],[71,[[39,[[2,[4,67,34]]]]]],[[33,34,14],[[13,[[2,[35,34]]]]]],[[37,30,34,33],[[12,[[77,[4,[2,[67,34]]]],36]]]],[71,30],[[37,30,30,33],[[12,[34,36]]]],[71,[[13,[14]]]],[71,14],[[30,33],[[12,[[13,[67]],36]]]],[[34,34,[77,[4,34]],[78,[4]],33],[[12,[2,36]]]],[72,14],[71,34],[[34,33],[[13,[67]]]],[[79,33],[[12,[5,36]]]],[[79,33],[[12,[5,36]]]],[[79,33,5],[[12,[5,36]]]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[34,33,5],[[12,[5,36]]]],[[34,33],[[21,[4]]]],[[80,33],[[12,[34,36]]]],[[80,33],[[12,[34,36]]]],[[80,33,5],[[12,[34,36]]]],[[35,33,5],[[12,[34,36]]]],[[30,33,5],[[12,[34,36]]]],[[68,33,5],[[12,[34,36]]]],[[69,33,5],[[12,[34,36]]]],[[70,33,5],[[12,[34,36]]]],[[71,33,5],[[12,[34,36]]]],[[72,33,5],[[12,[34,36]]]],[[33,34,14],[[13,[34]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[31]]]],[[33,34,14],6],[[34,34,33],[[12,[6,36]]]],[38,6],[[38,-1],2,20],[[35,-1],2,20],[[31,-1],2,20],[[30,-1],2,20],[[47,-1],2,20],[[48,-1],2,20],[[51,-1],2,20],[[52,-1],2,20],[[53,-1],2,20],[[54,-1],2,20],[[55,-1],2,20],[[56,-1],2,20],[[57,-1],2,20],[[58,-1],2,20],[[59,-1],2,20],[[60,-1],2,20],[[63,-1],2,20],[[64,-1],2,20],[[65,-1],2,20],[[66,-1],2,20],[[37,-1],2,20],[[68,-1],2,20],[[69,-1],2,20],[[70,-1],2,20],[[71,-1],2,20],[[72,-1],2,20],[[67,-1],2,20],[[34,-1],2,20],[[30,-1],30,[[32,[30]]]],[[37,30,30,30,33],[[12,[30,36]]]],[[30,-1,-2],30,[[32,[30]]],[[32,[30]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[42,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[34,6],[38,6],[34,6],[67,6],[38,6],[[37,30,34,33],[[12,[6,36]]]],[38,6],[[30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[67,6],[38,6],[34,6],[[34,33],[[12,[6,36]]]],[[34,[78,[4]],33],[[12,[6,36]]]],[[34,33],[[12,[6,36]]]],[34,6],[38,6],[[30,-1],30,[[32,[30]]]],[[14,34,34],34],[[-1,35,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,35]]]],-1],30,[[32,[30]]]],[[-1,71,-2],30,22,[[32,[30]]]],[[[76,[14,71]],-1],30,[[32,[30]]]],[[-1,34,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,34]]]],-1],30,[[32,[30]]]],[[-1,-2,[13,[34]],-3,-4],30,22,[[32,[67]]],[[32,[30]]],[[32,[30]]]],[[[21,[[2,[14,67,[13,[34]],30]]]],-1],30,[[32,[30]]]],[38,[[13,[75]]]],[[30,-1],30,[[32,[30]]]],[-1,31,[[32,[[21,[31]]]]]],[[30,[39,[[2,[37,30]]]],33],[[12,[30,36]]]],[[-1,-2],31,22,[[32,[[21,[31]]]]]],[[35,[21,[34]]],35],[[72,[21,[34]],33],[[12,[71,36]]]],[[30,-1],30,[[32,[30]]]],[43,4],[43,4],[44,4],[44,4],[45,4],[45,4],[46,4],[46,4],0,0,[30,30],[[30,-1],30,[[32,[30]]]],[-1,50,45],[[4,[21,[34]],34],70],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],71,[[32,[30]]]],[[4,[21,[4]],[21,[[2,[4,67,34]]]],34,-1],72,[[32,[30]]]],[30,30],[[30,-1],30,[[32,[30]]]],[[43,43],[[13,[15]]]],[[44,44],[[13,[15]]]],[[45,45],[[13,[15]]]],[[46,46],[[13,[15]]]],[[38,38],[[13,[15]]]],[[47,47],[[13,[15]]]],[[48,48],[[13,[15]]]],[[51,51],[[13,[15]]]],[[52,52],[[13,[15]]]],[[53,53],[[13,[15]]]],[[54,54],[[13,[15]]]],[[55,55],[[13,[15]]]],[[56,56],[[13,[15]]]],[[57,57],[[13,[15]]]],[[58,58],[[13,[15]]]],[[59,59],[[13,[15]]]],[[60,60],[[13,[15]]]],[[63,63],[[13,[15]]]],[[64,64],[[13,[15]]]],[[65,65],[[13,[15]]]],[[66,66],[[13,[15]]]],[[67,67],[[13,[15]]]],[[34,33,[77,[[2,[34,[21,[34]]]],34]]],[[12,[34,36]]]],[37,37],[[30,-1],30,[[32,[30]]]],[30,30],[30,30],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],35,[[32,[30]]]],[[71,3],2],[[30,-1],30,[[32,[67]]]],[[30,-1],30,[[32,[30]]]],0,0,[[43,30,30,33],[[12,[34,36]]]],[[43,30,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[47,30,30,33],[[12,[34,36]]]],[[48,30,33],[[12,[34,36]]]],[[49,30,30,33],[[12,[34,36]]]],[[50,30,30,33],[[12,[34,36]]]],[[51,30,30,33],[[12,[34,36]]]],[[52,30,30,33],[[12,[34,36]]]],[[53,30,30,33],[[12,[34,36]]]],[[54,30,33],[[12,[34,36]]]],[[55,30,30,33],[[12,[34,36]]]],[[56,30,30,33],[[12,[34,36]]]],[[57,30,30,33],[[12,[34,36]]]],[[58,30,33],[[12,[34,36]]]],[[59,30,33],[[12,[34,36]]]],[[60,30,30,33],[[12,[34,36]]]],[[61,30,30,33],[[12,[34,36]]]],[[62,30,33],[[12,[34,36]]]],[[63,30,33],[[12,[34,36]]]],[[64,30,33],[[12,[34,36]]]],[[65,30,33],[[12,[34,36]]]],[[66,30,33],[[12,[34,36]]]],[[38,-1],12,24],[[35,-1],12,24],[[31,-1],12,24],[[30,-1],12,24],[[37,-1],12,24],[[68,-1],12,24],[[69,-1],12,24],[[70,-1],12,24],[[71,-1],12,24],[[72,-1],12,24],[[67,-1],12,24],[[34,-1],12,24],[[71,-1],2,22],[[81,33],[[12,[81,36]]]],[[81,33,5],[[12,[81,36]]]],[[35,33,5],[[12,[35,36]]]],[[34,33,5],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33,34,-1],[[12,[34,36]]],[[83,[34,33],[[82,[[12,[6,36]]]]]]]],[[34,33],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[30,30],[[34,33],34],[[[76,[4,37]]],37],[[[76,[14,30]]],30],[[30,-1],30,[[32,[30]]]],[[80,14,34],2],[[35,14,34],2],[[30,14,34],2],[[68,14,34],2],[[69,14,34],2],[[70,14,34],2],[[71,14,34],2],[[72,14,34],2],[[34,14,34],34],[[80,[39,[4]],[39,[34]]],2],[[80,[39,[4]],[39,[34]]],2],[[-1,-2],37,[[32,[67]]],22],[[35,[21,[4]]],35],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[30,33],[[12,[30,36]]]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[[[21,[37]]],37],[[84,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[35,33],[[12,[2,36]]]],[[31,33],[[12,[2,36]]]],[[30,33],[[12,[2,36]]]],[[37,30,30,33],[[12,[2,36]]]],[[68,33],[[12,[2,36]]]],[[69,33],[[12,[2,36]]]],[[70,33],[[12,[2,36]]]],[[71,33],[[12,[2,36]]]],[[72,33],[[12,[2,36]]]],[[34,33],[[12,[2,36]]]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[[30,-1],30,22],[-1,35,22],[-1,30,22],[[[39,[4]],4],[[13,[5]]]],[[30,-1],30,[[32,[30]]]],[[],37],[[35,-1],35,[[32,[31]]]],[[30,-1],30,[[32,[31]]]],[[71,-1],71,[[32,[31]]]],[[72,-1],72,[[32,[31]]]],0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[75,75],[[-1,-2],2,[],[]],[[75,75],15],0,[5,-1,[]],[5,-1,[]],[-1,[[12,[75]]],19],[5,2],[[75,75],6],0,[[75,7],8],[-1,-1,[]],[[75,14],4],[[75,-1],2,20],[[],5],[-1,-2,[],[]],0,0,0,[-1,[[12,[[12,[17,28]],4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[-1,[[12,[30,4]]],22],[-1,[[12,[[12,[18,29]],4]]],22],[[75,75],[[13,[15]]]],[[75,-1],12,24],[-1,-2,[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[85,85],[[-1,-2],2,[],[]],[[85,85],15],[5,-1,[]],[5,-1,[]],[-1,[[12,[85]]],19],[5,2],[[85,85],6],[[85,7],8],[[85,7],8],[-1,-1,[]],[[85,-1],2,20],[[],5],0,[-1,-2,[],[]],0,[[4,5,5],85],0,[[85,85],[[13,[15]]]],[[85,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[],86],[87,87],[88,88],[89,89],[90,90],[91,91],[92,92],[86,86],[23,23],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[87,87],15],[[88,88],15],[[89,89],15],[[90,90],15],[[91,91],15],[[92,92],15],[[86,86],15],[[23,23],15],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[87]]],19],[-1,[[12,[88]]],19],[-1,[[12,[89]]],19],[-1,[[12,[90]]],19],[-1,[[12,[91]]],19],[-1,[[12,[92]]],19],[-1,[[12,[86]]],19],[-1,[[12,[23]]],19],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[87,87],6],[[88,88],6],[[89,89],6],[[90,90],6],[[91,91],6],[[92,92],6],[[86,86],6],[[23,23],6],[[87,7],8],[[87,7],8],[[88,7],8],[[88,7],8],[[89,7],8],[[89,7],8],[[90,7],8],[[90,7],8],[[91,7],8],[[91,7],8],[[92,7],8],[[92,7],8],[[86,7],8],[[86,7],8],[[23,7],8],[[23,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[87,-1],2,20],[[88,-1],2,20],[[89,-1],2,20],[[90,-1],2,20],[[91,-1],2,20],[[92,-1],2,20],[[86,-1],2,20],[[23,-1],2,20],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[90,5],86],[[91,5],23],[[87,87],[[13,[15]]]],[[88,88],[[13,[15]]]],[[89,89],[[13,[15]]]],[[90,90],[[13,[15]]]],[[91,91],[[13,[15]]]],[[92,92],[[13,[15]]]],[[86,86],[[13,[15]]]],[[23,23],[[13,[15]]]],[[],86],[[87,-1],12,24],[[88,-1],12,24],[[89,-1],12,24],[[90,-1],12,24],[[91,-1],12,24],[[92,-1],12,24],[[86,-1],12,24],[[23,-1],12,24],[[],23],[[],23],[[],23],[[],86],[[],86],[[],86],[[],23],[[],23],[[],23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],0,0,[[93,18],[[12,[4,4]]]],[[93,94,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],[[93,29],[[12,[4,4]]]],[[93,95,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],0,[[96,5],4],[[96,94,[13,[5]]],4],[[96,86],[[12,[4,4]]]],[96,[[13,[4]]]],[96,14],[[96,94],4],[96,[[12,[4,4]]]],[96,[[12,[4,4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[96,[[13,[4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[[96,23],[[12,[4,4]]]],[[96,95],[[12,[4,4]]]],[96,6],[[96,86],6],[[96,23],6],[96,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[[98,5],4],[[],98],[5,-1,[]],[5,-1,[]],[5,2],[[98,94,[13,[5]]],4],[-1,-1,[]],[[98,86],[[12,[4,4]]]],[[],5],[-1,-2,[],[]],[98,14],[[98,94],4],[98,[[12,[4,4]]]],[98,[[12,[4,4]]]],[[98,[21,[97]]],[[13,[4]]]],[[98,6],[[13,[4]]]],[98,[[13,[4]]]],[[98,6],[[13,[4]]]],[[98,23],[[12,[4,4]]]],[[98,95],[[12,[4,4]]]],[98,6],[[98,86],6],[[98,23],6],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[98,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,[[99,85],2],[42,41],[41,42],[100,2],[100,2],[100,2],[100,2],[100,2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[18,18],[94,94],[29,29],[95,95],[99,99],[9,9],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[18,18],15],[[94,94],15],[100,[[12,[18,29]]]],[18,[[12,[18,29]]]],[29,[[12,[18,29]]]],[[100,14],2],[[],[[101,[99]]]],[[],[[102,[99]]]],[[],18],[[],29],[[],103],[[],99],[5,-1,[]],[5,-1,[]],[100,2],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[100,2],[[18,18],6],[[94,94],6],[[29,29],6],[[95,95],6],[[9,9],6],0,[[104,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[100,85],[[12,[2,9]]]],[[103,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[99,85,[13,[[21,[42]]]]],[[12,[2,4]]]],0,[18,18],[29,29],[[18,7],8],[[94,7],8],[[94,7],8],[[29,7],8],[[95,7],8],[[95,7],8],[[103,7],8],[[99,7],8],[[9,7],8],[[9,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[18,29],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[104,86],[[12,[42,4]]]],[[100,86],2],[[103,86],[[12,[42,4]]]],[[99,86],[[12,[42,4]]]],[18,[[77,[97,[21,[94]]]]]],[29,[[77,[97,[21,[95]]]]]],[18,[[21,[94]]]],[29,[[21,[95]]]],[18,[[2,[[21,[94]],[77,[97,[21,[94]]]]]]]],[29,[[2,[[21,[95]],[77,[97,[21,[95]]]]]]]],[[18,-1],2,20],[[94,-1],2,20],[100,2],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[[100,5],2],[[100,27],2],[-1,[[101,[-1]]],104],[-1,[[102,[-1]]],104],[-1,103,22],[[[21,[42]]],103],[[100,94],2],[[18,94],2],[[29,94],2],0,[103,4],[103,[[21,[42]]]],[[18,18],[[13,[15]]]],[[94,94],[[13,[15]]]],[[29,29],[[13,[15]]]],[[95,95],[[13,[15]]]],[[9,9],[[13,[15]]]],[104,[[12,[42,4]]]],[100,[[12,[2,9]]]],[103,[[12,[42,4]]]],[99,[[12,[42,4]]]],[[104,42],[[12,[2,4]]]],[100,[[12,[2,9]]]],[[103,42],[[12,[2,4]]]],[[99,42],[[12,[2,4]]]],[[104,42,23],[[12,[2,4]]]],[[100,23],2],[[103,42,23],[[12,[2,4]]]],[[99,42,23],[[12,[2,4]]]],[100,2],[100,2],[100,2],[[[101,[-1]],18],[[12,[-1,4]]],104],[[[102,[-1]],29],[[12,[-1,4]]],104],[100,2],[[100,41],[[12,[2,9]]]],[[100,[21,[41]]],[[12,[2,9]]]],[[100,42],2],[[100,[21,[42]]],2],[[100,95],[[12,[2,9]]]],[[18,95],[[12,[2,9]]]],[[29,95],[[12,[2,9]]]],[[100,5],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[100,2]],"c":[],"p":[[6,"Error",10],[1,"tuple"],[10,"AssemblyProgram",10],[5,"String",2640],[1,"usize"],[1,"bool"],[5,"Formatter",2641],[8,"Result",2641],[6,"Error",2336],[6,"CoreOp",65],[6,"StandardOp",416],[6,"Result",2642],[6,"Option",2643],[1,"str"],[6,"Ordering",2644],[5,"TypeId",2645],[5,"CoreProgram",65],[5,"CoreProgram",2336],[10,"Deserializer",2646],[10,"Hasher",2647],[5,"Vec",2648],[10,"ToString",2640],[5,"Output",1974],[10,"Serializer",2649],[6,"Location",376],[5,"Globals",348],[1,"isize"],[5,"StandardProgram",416],[5,"StandardProgram",2336],[6,"Expr",566],[6,"Declaration",566],[10,"Into",2650],[5,"Env",566],[6,"Type",566],[6,"ConstExpr",566],[6,"Error",566],[6,"Pattern",566],[6,"Annotation",566],[1,"slice"],[1,"char"],[1,"f64"],[1,"i64"],[10,"AssignOp",566],[10,"UnaryOp",566],[10,"BinaryOp",566],[10,"TernaryOp",566],[5,"Add",566],[5,"Negate",566],[6,"Arithmetic",566],[5,"Assign",566],[5,"BitwiseAnd",566],[5,"BitwiseNand",566],[5,"BitwiseNor",566],[5,"BitwiseNot",566],[5,"BitwiseOr",566],[5,"BitwiseXor",566],[6,"Comparison",566],[5,"Get",566],[6,"Put",566],[5,"And",566],[5,"Or",566],[5,"Not",566],[5,"New",566],[5,"Delete",566],[5,"Tag",566],[5,"Data",566],[6,"Mutability",566],[5,"CoreBuiltin",566],[5,"StandardBuiltin",566],[5,"FFIProcedure",566],[5,"Procedure",566],[5,"PolyProcedure",566],[5,"Box",2651],[10,"Compile",566],[5,"SourceCodeLocation",1911],[5,"BTreeMap",2652],[5,"HashMap",2653],[5,"HashSet",2654],[10,"GetSize",566],[10,"GetType",566],[10,"Simplify",566],[17,"Output"],[10,"Fn",2655],[10,"TypeCheck",566],[5,"FFIBinding",1946],[5,"Input",1974],[6,"Axis",1974],[6,"Direction",1974],[6,"Color",1974],[6,"InputMode",1974],[6,"OutputMode",1974],[5,"Channel",1974],[10,"CompiledTarget",2280],[6,"CoreOp",2336],[6,"StandardOp",2336],[10,"Architecture",2280],[1,"i32"],[5,"C",2306],[5,"StandardDevice",2336],[10,"VirtualMachineProgram",2336],[5,"CoreInterpreter",2336],[5,"StandardInterpreter",2336],[5,"TestingDevice",2336],[10,"Device",2336],[15,"Compare",207],[15,"IsGreater",207],[15,"IsGreaterEqual",207],[15,"IsLess",207],[15,"IsLessEqual",207],[15,"IsEqual",207],[15,"IsNotEqual",207],[15,"GetAddress",207],[15,"Move",207],[15,"Copy",207],[15,"Index",207],[15,"Add",207],[15,"Sub",207],[15,"Mul",207],[15,"Div",207],[15,"Rem",207],[15,"DivRem",207],[15,"VecAdd",207],[15,"VecSub",207],[15,"VecMul",207],[15,"VecDiv",207],[15,"VecRem",207],[15,"And",207],[15,"Or",207],[15,"VecNot",207],[15,"VecAnd",207],[15,"VecOr",207],[15,"VecInc",207],[15,"VecDec",207],[15,"LeftShift",207],[15,"LogicalRightShift",207],[15,"ArithmeticRightShift",207],[15,"VecLeftShift",207],[15,"VecLogicalRightShift",207],[15,"VecArithmeticRightShift",207],[15,"VecGez",207],[15,"VecNeg",207],[15,"VecOffset",207],[15,"VecIndex",207],[15,"PopFrom",207],[15,"Array",207],[15,"Const",207],[15,"BitwiseNand",207],[15,"BitwiseXor",207],[15,"BitwiseOr",207],[15,"BitwiseNor",207],[15,"BitwiseAnd",207],[15,"VecBitwiseAnd",207],[15,"VecBitwiseOr",207],[15,"VecBitwiseXor",207],[15,"VecBitwiseNor",207],[15,"VecBitwiseNand",207],[15,"VecBitwiseNot",207],[15,"Global",207],[15,"PushTo",207],[15,"IsGreater",510],[15,"IsLess",510],[15,"Const",510],[15,"Pow",510],[15,"Add",510],[15,"Sub",510],[15,"Mul",510],[15,"Div",510],[15,"Rem",510],[15,"VecAdd",510],[15,"VecSub",510],[15,"VecMul",510],[15,"VecDiv",510],[15,"VecRem",510],[15,"VecNeg",510],[15,"VecPow",510],[15,"VecSin",510],[15,"VecCos",510],[15,"VecTan",510],[15,"VecASin",510],[15,"VecACos",510],[15,"VecATan",510],[15,"VecGez",510],[15,"FromImport",1901],[15,"MismatchedTypes",1903],[15,"MismatchedMutability",1903],[15,"NonExhaustivePatterns",1903]],"b":[[45,"impl-Display-for-Error"],[46,"impl-Debug-for-Error"],[173,"impl-Display-for-CoreProgram"],[174,"impl-Debug-for-CoreProgram"],[175,"impl-Debug-for-CoreOp"],[176,"impl-Display-for-CoreOp"],[359,"impl-Display-for-Globals"],[360,"impl-Debug-for-Globals"],[402,"impl-Debug-for-Location"],[403,"impl-Display-for-Location"],[480,"impl-Display-for-StandardProgram"],[481,"impl-Debug-for-StandardProgram"],[482,"impl-Debug-for-StandardOp"],[483,"impl-Display-for-StandardOp"],[1218,"impl-PartialEq-for-Expr"],[1219,"impl-Expr"],[1274,"impl-Display-for-Env"],[1275,"impl-Debug-for-Env"],[1276,"impl-Display-for-Error"],[1277,"impl-Debug-for-Error"],[1278,"impl-Display-for-ConstExpr"],[1279,"impl-Debug-for-ConstExpr"],[1280,"impl-Debug-for-Declaration"],[1281,"impl-Display-for-Declaration"],[1282,"impl-Display-for-Expr"],[1283,"impl-Debug-for-Expr"],[1284,"impl-Debug-for-Add"],[1285,"impl-Display-for-Add"],[1286,"impl-Debug-for-Negate"],[1287,"impl-Display-for-Negate"],[1288,"impl-Debug-for-Arithmetic"],[1289,"impl-Display-for-Arithmetic"],[1290,"impl-Debug-for-Assign"],[1291,"impl-Display-for-Assign"],[1292,"impl-Display-for-BitwiseAnd"],[1293,"impl-Debug-for-BitwiseAnd"],[1294,"impl-Debug-for-BitwiseNand"],[1295,"impl-Display-for-BitwiseNand"],[1296,"impl-Debug-for-BitwiseNor"],[1297,"impl-Display-for-BitwiseNor"],[1298,"impl-Debug-for-BitwiseNot"],[1299,"impl-Display-for-BitwiseNot"],[1300,"impl-Debug-for-BitwiseOr"],[1301,"impl-Display-for-BitwiseOr"],[1302,"impl-Debug-for-BitwiseXor"],[1303,"impl-Display-for-BitwiseXor"],[1304,"impl-Debug-for-Comparison"],[1305,"impl-Display-for-Comparison"],[1306,"impl-Display-for-Get"],[1307,"impl-Debug-for-Get"],[1308,"impl-Debug-for-Put"],[1309,"impl-Display-for-Put"],[1310,"impl-Debug-for-And"],[1311,"impl-Display-for-And"],[1312,"impl-Debug-for-Or"],[1313,"impl-Display-for-Or"],[1314,"impl-Display-for-Not"],[1315,"impl-Debug-for-Not"],[1316,"impl-Debug-for-New"],[1317,"impl-Display-for-New"],[1318,"impl-Display-for-Delete"],[1319,"impl-Debug-for-Delete"],[1320,"impl-Debug-for-Tag"],[1321,"impl-Display-for-Tag"],[1322,"impl-Debug-for-Data"],[1323,"impl-Display-for-Data"],[1324,"impl-Debug-for-Pattern"],[1325,"impl-Display-for-Pattern"],[1326,"impl-Display-for-CoreBuiltin"],[1327,"impl-Debug-for-CoreBuiltin"],[1328,"impl-Debug-for-StandardBuiltin"],[1329,"impl-Display-for-StandardBuiltin"],[1330,"impl-Debug-for-FFIProcedure"],[1331,"impl-Display-for-FFIProcedure"],[1332,"impl-Display-for-Procedure"],[1333,"impl-Debug-for-Procedure"],[1334,"impl-Debug-for-PolyProcedure"],[1335,"impl-Display-for-PolyProcedure"],[1336,"impl-Display-for-Mutability"],[1337,"impl-Debug-for-Mutability"],[1338,"impl-Debug-for-Type"],[1339,"impl-Display-for-Type"],[1346,"impl-From%3C(%26str,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1347,"impl-From%3C(%26str,+Type)%3E-for-Declaration"],[1348,"impl-From%3C(String,+PolyProcedure)%3E-for-Declaration"],[1349,"impl-From%3C(%26str,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1350,"impl-From%3C(%26str,+Procedure)%3E-for-Declaration"],[1351,"impl-From%3C(String,+FFIProcedure)%3E-for-Declaration"],[1352,"impl-From%3C(String,+Type)%3E-for-Declaration"],[1353,"impl-From%3C(%26str,+ConstExpr)%3E-for-Declaration"],[1354,"impl-From%3C(Pattern,+Expr)%3E-for-Declaration"],[1355,"impl-From%3C(String,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1356,"impl-From%3CBox%3CDeclaration%3E%3E-for-Declaration"],[1357,"impl-From%3C(%26str,+Mutability,+Expr)%3E-for-Declaration"],[1359,"impl-From%3C(String,+ConstExpr)%3E-for-Declaration"],[1360,"impl-From%3C(%26str,+PolyProcedure)%3E-for-Declaration"],[1361,"impl-From%3C(String,+Procedure)%3E-for-Declaration"],[1362,"impl-From%3C(%26str,+Expr)%3E-for-Declaration"],[1363,"impl-From%3C(String,+Expr)%3E-for-Declaration"],[1364,"impl-From%3CVec%3CT%3E%3E-for-Declaration"],[1365,"impl-From%3C(%26str,+FFIProcedure)%3E-for-Declaration"],[1366,"impl-From%3C(String,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1367,"impl-From%3C(String,+Mutability,+Expr)%3E-for-Declaration"],[1368,"impl-From%3CBTreeMap%3CK,+V%3E%3E-for-Declaration"],[1957,"impl-Display-for-FFIBinding"],[1958,"impl-Debug-for-FFIBinding"],[2162,"impl-Debug-for-Axis"],[2163,"impl-Display-for-Axis"],[2164,"impl-Debug-for-Direction"],[2165,"impl-Display-for-Direction"],[2166,"impl-Debug-for-Color"],[2167,"impl-Display-for-Color"],[2168,"impl-Debug-for-InputMode"],[2169,"impl-Display-for-InputMode"],[2170,"impl-Debug-for-OutputMode"],[2171,"impl-Display-for-OutputMode"],[2172,"impl-Display-for-Channel"],[2173,"impl-Debug-for-Channel"],[2174,"impl-Debug-for-Input"],[2175,"impl-Display-for-Input"],[2176,"impl-Display-for-Output"],[2177,"impl-Debug-for-Output"],[2506,"impl-Display-for-CoreOp"],[2507,"impl-Debug-for-CoreOp"],[2509,"impl-Debug-for-StandardOp"],[2510,"impl-Display-for-StandardOp"],[2513,"impl-Debug-for-Error"],[2514,"impl-Display-for-Error"]]}]\ +["sage",{"doc":"The Sage Programming Language","t":"SSSCCCCCCCEKEEEEEEGEEEEEEEEEPPPPPPNNNNNCMNNNNNNNNMCNNMCNMNCMNNNNNPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNSPSSSSSSSPPGPSSNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPGFPPPPPPPPPPPPPPPPPPPNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHFPPFPPPGPPPPPPPGPPPPPPFKPKPFFFFFFPPTTPPPPGKPPPGPPPPFPPTFPPGPPFPPPPPPPPPPFPGGPFPPPPPFKKPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPPPPPPPPPGPTFPPFPPPPPPFPPPFGPPPPPFPPPPFGPPPPPTKPPPFPPPPPPPPPPPTFPPKPPPPPGPPPKPPPTKPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOFNNNNNONNNNNONNNNNNOOOHHHHHNNNNNNCCFNNNNNNNNNNNNNNNONONONNNNNNNPPPPGPPPPPPPPPPFPPGPPPPPPPPPPGPPPPPPPPFGPPPPPPPPPPPPPPFGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKNNNNCMMMNMMMMNNNNNMMMMMMFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPFGPFPPPKPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFFGFPPPPPFPPPKPPNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOMNNNONNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNMNNONNNNNNNMNNNMNNNMNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","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","deref","deref_mut","drop","eq","fmt","fmt","from","from","get_op","globals","init","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","ArithmeticRightShift","Array","BitwiseAnd","BitwiseNand","BitwiseNor","BitwiseNot","BitwiseOr","BitwiseXor","Call","CallLabel","Comment","Compare","Const","Copy","CoreOp","CoreProgram","Dec","Div","DivRem","Else","End","Fn","Get","GetAddress","Global","If","Inc","Index","IsEqual","IsGreater","IsGreaterEqual","IsLess","IsLessEqual","IsNotEqual","LeftShift","LogicalRightShift","Many","Move","Mul","Neg","Next","Not","Or","Pop","PopFrom","Prev","Push","PushAddress","PushConst","PushTo","Put","Rem","Return","Set","SetLabel","Sub","Swap","VecAdd","VecAnd","VecArithmeticRightShift","VecBitwiseAnd","VecBitwiseNand","VecBitwiseNor","VecBitwiseNot","VecBitwiseOr","VecBitwiseXor","VecDec","VecDiv","VecGez","VecInc","VecIndex","VecLeftShift","VecLogicalRightShift","VecMul","VecNeg","VecNot","VecOffset","VecOr","VecRem","VecSet","VecSub","While","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","get_op","hash","hash","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","push_string","put_string","serialize","serialize","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","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","dst","name","offset","offset","offset","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","size","sp","sp","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","vals","Globals","add_global","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","deserialize","drop","fmt","fmt","from","get_global","get_global_location","get_global_size","get_size","init","into","new","resolve","serialize","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","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","into","offset","partial_cmp","serialize","to_owned","to_string","try_from","try_into","type_id","ACos","ASin","ATan","Add","Alloc","Call","Const","CoreOp","Cos","Div","Free","IsGreater","IsLess","Mul","Neg","Pow","PushConst","Rem","Set","Sin","Sqrt","StandardOp","StandardProgram","Sub","Tan","ToFloat","ToInt","VecACos","VecASin","VecATan","VecAdd","VecCos","VecDiv","VecGez","VecMul","VecNeg","VecPow","VecRem","VecSet","VecSin","VecSub","VecTan","assemble","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","code","current_instruction","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","get_op","init","init","into","into","is_defined","new","op","partial_cmp","partial_cmp","serialize","serialize","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","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","dst","size","size","size","size","size","size","size","size","size","size","size","size","size","size","src","src","src","src","src","src","src","src","src","src","src","src","src","vals","parse","Add","Add","Alt","And","Annotated","Annotated","Annotated","Annotation","Any","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","ConstParam","Constant","CoreBuiltin","CoreBuiltin","CouldntSimplify","DEAD_CODE","Data","DeadCode","Debug","Declaration","Declare","Declare","Delete","Deref","DerefMut","DerefNonPointer","Display","Divide","DuplicateMember","Enum","EnumUnion","EnumUnion","EnumUnion","Env","Equal","Error","Expr","ExternProc","FFIProcedure","FFIProcedure","Float","Float","FromImport","FromImportAll","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","Module","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","UnexpectedConstParam","UnimplementedOperator","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_char","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","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","display","display","display","display","display","display","display","display","display","div","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","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","equals","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","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","hard_with","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","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","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_const_param","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","many","match_pattern","module","monomorphize","monomorphize","mul","name","name","name","name","name","name","name","name","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","print","println","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_common_name","simplify","simplify_checked","simplify_checked","simplify_checked","simplify_until_atomic","simplify_until_concrete","simplify_until_const_param","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","var","variant_index","while_loop","wildcard","with","with","with","with","module","names","expected","expected","expr","expr","expr","expr","found","found","found","patterns","SourceCodeLocation","borrow","borrow_mut","clone","clone_into","cmp","column","deref","deref_mut","deserialize","drop","eq","filename","fmt","from","get_code","hash","init","into","length","line","offset","parse_asm","parse_frontend","parse_frontend_minimal","parse_lir","parse_vm","partial_cmp","serialize","to_owned","try_from","try_into","type_id","ffi","io","FFIBinding","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","deserialize","drop","eq","fmt","fmt","from","hash","init","input_cells","into","name","new","output_cells","partial_cmp","serialize","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","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","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","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","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","std_op","supports_floats","supports_input","supports_output","version","C","borrow","borrow_mut","declare_proc","default","deref","deref_mut","drop","end","from","get","init","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","And","ArithmeticRightShift","BitwiseAnd","BitwiseNand","BitwiseNot","BitwiseOr","BitwiseXor","Call","Call","Comment","CoreInterpreter","CoreOp","CoreOp","CoreProgram","Cos","Dec","Deref","Device","Div","Div","Else","End","Error","ExpectedCore","Free","Function","Get","If","Inc","Index","IsNonNegative","IsNonNegative","LeftShift","Load","LogicalRightShift","Move","Mul","Mul","Neg","Neg","Not","Offset","Or","Peek","Poke","Pow","Put","Refer","Rem","Rem","Return","Set","Set","Sin","StandardDevice","StandardInterpreter","StandardOp","StandardProgram","Store","Sub","Sub","Swap","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","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","end","eq","eq","eq","eq","eq","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","init","init","init","init","init","init","init","init","init","input","into","into","into","into","into","into","into","into","into","is_non_negative","load_vector","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_float_register","set_float_vector","set_register","set_vector","std_op","std_op","std_op","store_vector","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"],[65,"sage::asm::core"],[207,"sage::asm::core::CoreOp"],[348,"sage::asm::globals"],[376,"sage::asm::location"],[416,"sage::asm::std"],[510,"sage::asm::std::StandardOp"],[565,"sage::frontend"],[566,"sage::lir"],[1911,"sage::lir::Declaration"],[1913,"sage::lir::Error"],[1923,"sage::parse"],[1956,"sage::side_effects"],[1958,"sage::side_effects::ffi"],[1986,"sage::side_effects::io"],[2292,"sage::targets"],[2318,"sage::targets::c"],[2348,"sage::vm"],[2652,"alloc::string"],[2653,"core::fmt"],[2654,"core::fmt"],[2655,"core::option"],[2656,"core::cmp"],[2657,"core::any"],[2658,"serde::de"],[2659,"core::hash"],[2660,"alloc::vec"],[2661,"alloc::string"],[2662,"core::convert"],[2663,"alloc::boxed"],[2664,"alloc::collections::btree::map"],[2665,"std::collections::hash::map"],[2666,"std::collections::hash::set"],[2667,"core::ops::function"]],"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","Side Effects 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.","Assembly Global Variables","","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.","Arithmetic right shift a destination by 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 …","Write a set of values to a memory location.","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.","Left shift a destination by a source value.","Logical right shift a destination by a source value. This …","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 …","Get the address of a location and push it to the stack.","Push a const to the stack.","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.","Perform a SIMD addition over a vector of integers. This …","Perform a vector “And” operation. This will perform a …","Perform a SIMD arithmetic right shift operation over a …","","","","","","","Decrement a vector of integers.","Perform a SIMD division over a vector of integers. This …","Perform a SIMD “is >= zero” operation over a vector of …","Increment a vector of integers.","Perform a SIMD pointer index operation over a vector of …","Perform a SIMD left shift operation over a vector of …","Perform a SIMD logical right shift operation over a vector …","Perform a SIMD multiplication over a vector of integers. …","Negate a vector of integers using SIMD.","Perform a vector “Not” operation. This will replace …","Perform a SIMD pointer arithmetic operation over a vector …","Perform a vector “Or” operation. This will perform a …","Perform a SIMD remainder over a vector of integers. This …","Set the vector values of a destination.","Perform a SIMD subtraction over a vector of integers. This …","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.","Write some constant values to a location on the tape","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).","Push some constant values to the stack.","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 …","Perform a SIMD floating point inverse cosine operation.","Perform a SIMD floating point inverse sine operation.","Perform a SIMD floating point inverse tangent operation.","Perform a SIMD floating point addition operation.","Perform a SIMD floating point cosine operation.","Perform a SIMD floating point division operation.","Perform a SIMD floating point greater than or equal to …","Perform a SIMD floating point multiplication operation.","Perform a SIMD floating point negation operation.","Perform a SIMD floating point power operation.","Perform a SIMD floating point remainder operation.","Set the vector values of a destination.","Perform a SIMD floating point sine operation.","Perform a SIMD floating point subtraction operation.","Perform a SIMD floating point tangent operation.","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 beginning of the constant data.","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.","","","","","","","","The constant data.","","","","","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 …","The expression equal to any other expression.","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.","","A constant literal used in a type expression, like a …","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.","","","Duplicate implementations of a member for a type","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.","Import an element from a module.","","","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","Declare a module","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.","An error caused by unexpectedly passing a constant …","","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 character.","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.","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?","Create a collection of declarations","Generate an expression which evaluates a match expression, …","Create a module with a given name and a list of …","","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 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.","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 …","","","","","","","Foreign Function Interface","I/O Module","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).","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.","The type for the C 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. The …","Add the value pointed to on the tape to the register (as …","Take the value of the register, and allocate that number …","Boolean-and the register and the value pointed to on the …","Interpret the register’s value as a signed integer. …","Perform bitwise and on the cell and the value pointed to …","Perform bitwise nand on the cell and the value pointed to …","Bitwise not the register. Store the result in the register.","Perform bitwise or on the cell and the value pointed to on …","Perform a bitwise xor 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 …","Decrement the register.","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.","Increment the register. The argument is the size of the …","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 …","Left shift the cell by the value pointed to on the tape. …","Store the value pointed to on the tape to the register.","Logical right shift the cell by the value pointed to on …","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 …","Negate the register. The argument is the size of the …","Negate the value of the register (as a float).","Boolean-not the register (0 if the register is non-zero, 1 …","Interpret the register’s value as a pointer to a cell. …","Boolean-or the register and the value pointed to on the …","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 …","Return from the current function.","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 …","Store the register to the value pointed to on the tape.","Subtract the value pointed to on the tape from the …","Subtract the value pointed to on the tape from the …","Swap the value of the register with the value pointed to …","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,3,0,3,1,1,1,1,1,1,1,1,3,0,1,1,3,0,3,3,1,0,3,1,1,1,1,1,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,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,17,17,10,17,10,17,10,17,10,17,10,17,17,17,17,10,17,10,17,10,17,10,17,10,17,17,10,10,17,10,17,17,10,17,10,17,10,17,17,17,17,10,10,10,17,10,10,17,17,10,17,10,17,10,17,10,17,10,105,106,107,108,109,110,111,112,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,105,106,107,108,109,110,111,145,146,147,148,149,150,151,152,153,154,155,156,157,158,115,142,143,158,114,122,123,124,125,126,129,130,131,132,133,137,138,139,140,141,142,143,159,144,152,153,154,155,156,157,159,144,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,130,131,134,135,136,137,138,139,140,143,159,145,147,148,149,150,151,152,153,154,155,156,145,146,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,25,0,0,0,0,0,0,0,25,25,0,25,0,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,28,28,11,28,11,28,11,28,11,28,28,28,28,11,28,11,28,11,28,11,28,11,28,28,11,11,28,28,11,28,28,11,28,11,28,28,28,28,11,28,11,28,28,11,28,11,28,11,28,11,28,11,160,161,160,161,162,163,164,165,166,167,168,160,161,169,170,171,172,173,174,175,176,177,178,179,180,181,182,169,170,171,172,173,174,175,176,177,178,179,180,181,182,163,164,165,166,167,168,169,170,171,172,173,175,182,162,0,0,49,37,0,36,35,30,0,35,67,34,30,34,36,36,0,35,30,34,35,30,36,0,0,30,0,30,0,0,0,0,0,0,35,34,38,38,35,34,35,34,0,0,36,38,31,0,30,37,34,38,0,35,36,38,0,38,59,0,35,30,0,30,30,36,59,49,36,34,35,30,34,0,57,0,0,31,0,35,35,34,31,31,0,0,0,57,57,30,30,67,31,30,35,34,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,38,57,57,34,38,38,31,30,30,35,30,36,36,36,31,35,49,0,67,30,0,36,34,0,36,36,36,38,35,34,0,57,35,35,0,0,37,34,34,35,31,0,49,35,31,34,0,0,36,36,30,49,30,34,0,35,36,35,0,35,31,35,30,37,34,49,35,37,34,36,38,0,35,38,0,30,35,30,37,34,0,35,31,34,0,36,35,36,38,0,30,36,36,35,30,34,34,36,36,36,31,31,37,36,30,30,37,31,30,31,33,34,37,30,36,35,30,35,30,34,37,68,69,35,35,35,35,35,35,30,30,30,30,30,30,30,38,30,38,30,68,69,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,43,43,44,44,45,45,46,46,34,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,74,74,43,43,44,44,45,45,46,46,47,49,50,74,35,30,68,69,70,71,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,34,59,37,33,67,33,33,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,35,31,30,37,68,69,70,71,72,67,34,43,43,44,44,45,45,46,46,59,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,43,44,45,46,38,35,31,30,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,35,34,43,44,45,46,35,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,35,30,37,38,33,33,36,36,35,35,31,31,30,30,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,60,60,61,61,62,62,63,63,64,64,65,65,66,66,37,37,68,68,69,69,70,70,71,71,72,72,67,67,34,34,38,38,33,36,36,35,35,35,35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,30,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,67,34,72,30,33,71,33,37,71,37,71,71,30,34,72,71,34,79,79,79,35,30,68,69,70,71,72,34,34,80,80,80,35,30,68,69,70,71,72,33,30,30,33,34,38,38,35,31,30,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,37,68,69,70,71,72,67,34,30,37,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,34,38,34,34,67,38,37,38,30,34,67,38,34,34,34,34,34,38,30,34,30,30,30,30,30,30,30,30,38,30,31,37,31,35,72,30,43,43,44,44,45,45,46,46,68,69,30,30,50,70,71,72,30,30,43,44,45,46,38,47,48,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,34,37,30,30,30,35,71,30,30,68,69,43,43,44,44,45,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,38,35,31,30,37,68,69,70,71,72,67,34,71,81,81,35,34,34,34,34,34,34,34,34,34,34,34,30,34,37,30,30,80,35,30,68,69,70,71,72,34,80,80,37,35,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,37,84,43,43,44,44,45,45,46,46,35,31,30,37,68,69,70,71,72,34,38,33,36,35,31,30,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,37,68,69,70,71,72,67,34,30,35,30,34,30,37,35,30,71,72,183,183,184,185,186,184,185,187,186,184,185,187,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,0,0,0,0,75,75,75,75,75,75,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,90,90,90,91,0,90,91,89,91,89,90,90,91,90,91,0,91,90,0,90,90,91,90,91,89,90,90,90,91,0,88,91,90,89,90,90,91,90,0,0,90,90,88,89,90,90,91,91,91,91,91,91,90,89,0,0,90,90,91,90,91,91,91,90,91,89,90,90,89,90,88,91,91,91,91,91,91,91,91,90,91,91,91,90,90,90,91,91,91,91,91,90,90,88,91,91,90,90,89,90,90,87,87,89,87,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,87,88,88,89,89,90,90,91,91,92,92,86,86,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,86,23,86,23,87,88,89,90,91,92,86,23,86,87,88,89,90,91,92,86,23,23,23,23,86,86,86,23,23,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,87,88,89,90,91,92,86,23,0,0,93,93,93,93,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,95,95,95,94,95,95,94,94,94,94,94,94,94,94,95,94,0,0,95,0,95,94,94,0,94,95,94,94,0,9,95,94,94,94,94,94,94,95,94,94,94,94,94,95,94,95,94,94,94,95,95,95,94,94,94,95,94,94,95,95,0,0,0,0,94,94,95,94,95,0,95,95,9,0,94,94,99,0,0,100,100,100,100,100,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,99,9,18,94,29,95,99,9,18,94,100,18,29,100,101,102,18,29,103,99,101,102,100,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100,18,94,29,95,9,103,104,100,103,99,103,18,29,18,94,94,29,95,95,103,99,9,9,101,102,18,94,29,29,95,103,99,9,104,100,103,99,18,29,18,29,18,29,18,94,100,101,102,18,94,29,95,103,99,9,103,101,102,18,94,29,95,103,99,9,100,100,100,101,102,103,103,100,18,29,103,103,103,18,94,29,95,9,104,100,103,99,104,100,103,99,104,100,103,99,100,100,100,101,102,100,100,100,100,100,100,18,29,100,18,94,29,95,99,9,18,94,29,95,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,101,102,18,94,29,95,103,99,9,100],"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,-2,[],[]],[-1,-2,[],[]],[1,1],[[-1,-2],2,[],[]],[[3,4],2],0,[3,5],[5,-1,[]],[5,-1,[]],[5,2],[[1,1],6],[[1,7],8],[[1,7],8],[-1,-1,[]],[9,1],[[3,5],[[13,[[12,[10,11]]]]]],0,[[],5],[-1,-2,[],[]],[[3,14],6],0,[[3,14,14,5],2],[[3,10],2],[[1,1],[[13,[15]]]],0,[[3,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[17,5],[[12,[18,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[17,17],[10,10],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[17,17],15],[[10,10],15],0,[17,5],[[],17],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[17]]],19],[-1,[[12,[10]]],19],[5,2],[5,2],[[17,17],6],[[10,10],6],[[17,7],8],[[17,7],8],[[10,7],8],[[10,7],8],[-1,-1,[]],[-1,-1,[]],[[17,5],[[13,[[12,[10,11]]]]]],[[17,-1],2,20],[[10,-1],2,20],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[17,14],6],[[[21,[10]]],17],[[17,10],2],[[17,17],[[13,[15]]]],[[10,10],[[13,[15]]]],[-1,10,22],[[-1,23],10,22],[[17,-1],12,24],[[10,-1],12,24],[[25,-1],10,22],[[17,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[26,4,5],25],[-1,-2,[],[]],[-1,-2,[],[]],[26,26],[[-1,-2],2,[],[]],[[],26],[5,-1,[]],[5,-1,[]],[-1,[[12,[26]]],19],[5,2],[[26,7],8],[[26,7],8],[-1,-1,[]],[[26,14],[[13,[[2,[25,5,5]]]]]],[[26,14],[[13,[25]]]],[[26,14],[[13,[5]]]],[26,5],[[],5],[-1,-2,[],[]],[[],26],[[26,25],[[12,[25,1]]]],[[26,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[[-1,-2],2,[],[]],[[25,25],15],[25,25],[5,-1,[]],[5,-1,[]],[-1,[[12,[25]]],19],[5,2],[[25,25],6],[[25,7],8],[[25,7],8],[-1,-1,[]],[[25,-1],2,20],[[],5],[-1,-2,[],[]],[[25,27],25],[[25,25],[[13,[15]]]],[[25,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[28,5],[[12,[29,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[28,28],[11,11],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],0,[28,5],[[],28],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[28]]],19],[-1,[[12,[11]]],19],[5,2],[5,2],[[28,28],6],[[11,11],6],[[28,7],8],[[28,7],8],[[11,7],8],[[11,7],8],[17,28],[-1,-1,[]],[-1,-1,[]],[[28,5],[[13,[[12,[10,11]]]]]],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[[28,14],6],[[[21,[11]]],28],[[28,10],2],[[28,28],[[13,[15]]]],[[11,11],[[13,[15]]]],[[28,-1],12,24],[[11,-1],12,24],[[28,11],[[12,[2,1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[13,[14]],6,6],[[12,[30,4]]],22],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[31,-1],-2,[[32,[31]]],[]],[[30,-1],30,[[32,[30]]]],[[31,-1],2,[[32,[31]]]],[[33,34,-1,35],[[12,[2,36]]],22],[[34,33],[[12,[2,36]]]],[[[21,[37]]],37],[[30,-1],30,[[32,[30]]]],[[36,38],36],[[35,38],35],[[30,-1],30,[[32,[38]]]],[[35,[21,[30]]],30],[[30,[21,[30]]],30],[[34,[21,[34]]],34],[[30,[39,[37]],34,33],[[12,[6,36]]]],0,0,[[35,33],[[12,[6,36]]]],[[35,33],[[12,[40,36]]]],[[35,33],[[12,[41,36]]]],[[35,33],[[12,[42,36]]]],[[35,33],[[12,[4,36]]]],[[35,34],35],[[30,34],30],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1,-2],30,22,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[30]]]],[30,30],[[38,38],-1,[]],[[30,-1],30,[[32,[30]]]],[[38,38],2],[[30,-1],30,[[32,[30]]]],0,0,[6,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[43,34,34,33],[[12,[6,36]]]],[[44,34,33],[[12,[6,36]]]],[[45,34,34,33],[[12,[6,36]]]],[[46,34,34,34,33],[[12,[6,36]]]],[[47,34,34,33],[[12,[6,36]]]],[[48,34,33],[[12,[6,36]]]],[[49,34,34,33],[[12,[6,36]]]],[[50,34,34,33],[[12,[6,36]]]],[[51,34,34,33],[[12,[6,36]]]],[[52,34,34,33],[[12,[6,36]]]],[[53,34,34,33],[[12,[6,36]]]],[[54,34,33],[[12,[6,36]]]],[[55,34,34,33],[[12,[6,36]]]],[[56,34,34,33],[[12,[6,36]]]],[[57,34,34,33],[[12,[6,36]]]],[[58,34,33],[[12,[6,36]]]],[[59,34,33],[[12,[6,36]]]],[[60,34,34,33],[[12,[6,36]]]],[[61,34,34,33],[[12,[6,36]]]],[[62,34,33],[[12,[6,36]]]],[[63,34,33],[[12,[6,36]]]],[[64,34,33],[[12,[6,36]]]],[[65,34,33],[[12,[6,36]]]],[[66,34,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[43,30,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[44,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[45,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[46,30,30,30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[[67,67],6],[[34,34,33],[[12,[6,36]]]],[38,38],[33,33],[36,36],[35,35],[31,31],[30,30],[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],[60,60],[61,61],[62,62],[63,63],[64,64],[65,65],[66,66],[37,37],[68,68],[69,69],[70,70],[71,71],[72,72],[67,67],[34,34],[43,[[73,[43]]]],[44,[[73,[44]]]],[45,[[73,[45]]]],[46,[[73,[46]]]],[47,[[73,[45]]]],[48,[[73,[44]]]],[49,[[73,[45]]]],[50,[[73,[43]]]],[51,[[73,[45]]]],[52,[[73,[45]]]],[53,[[73,[45]]]],[54,[[73,[44]]]],[55,[[73,[45]]]],[56,[[73,[45]]]],[57,[[73,[45]]]],[58,[[73,[44]]]],[59,[[73,[44]]]],[60,[[73,[45]]]],[61,[[73,[45]]]],[62,[[73,[44]]]],[63,[[73,[44]]]],[64,[[73,[44]]]],[65,[[73,[44]]]],[66,[[73,[44]]]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[43,43],15],[[44,44],15],[[45,45],15],[[46,46],15],[[38,38],15],[[47,47],15],[[48,48],15],[[51,51],15],[[52,52],15],[[53,53],15],[[54,54],15],[[55,55],15],[[56,56],15],[[57,57],15],[[58,58],15],[[59,59],15],[[60,60],15],[[63,63],15],[[64,64],15],[[65,65],15],[[66,66],15],[[67,67],15],[74,[[12,[[12,[17,28]],36]]]],[74,[[12,[[12,[17,28]],36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[43,30,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[44,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[45,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[46,30,30,30,33,3],[[12,[2,36]]]],[[47,30,30,33,3],[[12,[2,36]]]],[[49,30,30,33,3],[[12,[2,36]]]],[[50,30,30,33,3],[[12,[2,36]]]],[[74,33,3],[[12,[2,36]]]],[[35,33,3],[[12,[2,36]]]],[[30,33,3],[[12,[2,36]]]],[[68,33,3],[[12,[2,36]]]],[[69,33,3],[[12,[2,36]]]],[[70,33,3],[[12,[2,36]]]],[[71,33,3],[[12,[2,36]]]],[[43,34,34,33,3],[[12,[2,36]]]],[[44,34,33,3],[[12,[2,36]]]],[[45,34,34,33,3],[[12,[2,36]]]],[[46,34,34,34,33,3],[[12,[2,36]]]],[[47,34,34,33,3],[[12,[2,36]]]],[[48,34,33,3],[[12,[2,36]]]],[[49,34,34,33,3],[[12,[2,36]]]],[[50,34,34,33,3],[[12,[2,36]]]],[[51,34,34,33,3],[[12,[2,36]]]],[[52,34,34,33,3],[[12,[2,36]]]],[[53,34,34,33,3],[[12,[2,36]]]],[[54,34,33,3],[[12,[2,36]]]],[[55,34,34,33,3],[[12,[2,36]]]],[[56,34,34,33,3],[[12,[2,36]]]],[[57,34,34,33,3],[[12,[2,36]]]],[[58,34,33,3],[[12,[2,36]]]],[[59,34,33,3],[[12,[2,36]]]],[[60,34,34,33,3],[[12,[2,36]]]],[[61,34,34,33,3],[[12,[2,36]]]],[[62,34,33,3],[[12,[2,36]]]],[[63,34,33,3],[[12,[2,36]]]],[[64,34,33,3],[[12,[2,36]]]],[[65,34,33,3],[[12,[2,36]]]],[[66,34,33,3],[[12,[2,36]]]],[[34,14],6],[[25,34,33,3],[[12,[2,36]]]],[[37,30,34,33],[[12,[2,36]]]],[[],33],[[],67],[[33,[21,[[2,[4,34]]]]],2],[[33,-1,67,34],[[12,[27,36]]],22],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[30,30],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[[30,-1],30,[[32,[30]]]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[38]]],19],[-1,[[12,[35]]],19],[-1,[[12,[31]]],19],[-1,[[12,[30]]],19],[-1,[[12,[37]]],19],[-1,[[12,[68]]],19],[-1,[[12,[69]]],19],[-1,[[12,[70]]],19],[-1,[[12,[71]]],19],[-1,[[12,[72]]],19],[-1,[[12,[67]]],19],[-1,[[12,[34]]],19],[[43,30,30],4],[[43,30,30],4],[[44,30],4],[[44,30],4],[[45,30,30],4],[[45,30,30],4],[[46,30,30,30],4],[[46,30,30,30],4],[[25,34,33,3],[[12,[2,36]]]],[[30,-1],30,[[32,[30]]]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[43,43],6],[[44,44],6],[[45,45],6],[[46,46],6],[[38,38],6],[[35,35],6],[[31,31],6],[[30,30],6],[[30,-1],30,[[32,[30]]]],[[47,47],6],[[48,48],6],[[51,51],6],[[52,52],6],[[53,53],6],[[54,54],6],[[55,55],6],[[56,56],6],[[57,57],6],[[58,58],6],[[59,59],6],[[60,60],6],[[63,63],6],[[64,64],6],[[65,65],6],[[66,66],6],[[37,37],6],[[68,68],6],[[69,69],6],[[70,70],6],[[71,71],6],[[72,72],6],[[67,67],6],[[34,34],6],[[35,35,33],6],[[34,34,33],[[12,[6,36]]]],[[43,35,35,33],[[12,[35,36]]]],[[44,35,33],[[12,[35,36]]]],[[45,35,35,33],[[12,[35,36]]]],[[46,35,35,35,33],[[12,[35,36]]]],[[35,33],[[12,[35,36]]]],[[47,35,35,33],[[12,[35,36]]]],[[48,35,33],[[12,[35,36]]]],[[49,35,35,33],[[12,[35,36]]]],[[50,35,35,33],[[12,[35,36]]]],[[51,35,35,33],[[12,[35,36]]]],[[52,35,35,33],[[12,[35,36]]]],[[53,35,35,33],[[12,[35,36]]]],[[54,35,33],[[12,[35,36]]]],[[55,35,35,33],[[12,[35,36]]]],[[56,35,35,33],[[12,[35,36]]]],[[57,35,35,33],[[12,[35,36]]]],[[58,35,33],[[12,[35,36]]]],[[59,35,33],[[12,[35,36]]]],[[60,35,35,33],[[12,[35,36]]]],[[61,35,35,33],[[12,[35,36]]]],[[62,35,33],[[12,[35,36]]]],[[63,35,33],[[12,[35,36]]]],[[64,35,33],[[12,[35,36]]]],[[65,35,33],[[12,[35,36]]]],[[66,35,33],[[12,[35,36]]]],[[35,35],35],[[30,35],30],[41,37],[[38,7],8],[[33,7],8],[[33,7],8],[[36,7],8],[[36,7],8],[[35,7],8],[[35,7],8],[[31,7],8],[[31,7],8],[[30,7],8],[[30,7],8],[[47,7],8],[[47,7],8],[[48,7],8],[[48,7],8],[[49,7],8],[[49,7],8],[[50,7],8],[[50,7],8],[[51,7],8],[[51,7],8],[[52,7],8],[[52,7],8],[[53,7],8],[[53,7],8],[[54,7],8],[[54,7],8],[[55,7],8],[[55,7],8],[[56,7],8],[[56,7],8],[[57,7],8],[[57,7],8],[[58,7],8],[[58,7],8],[[59,7],8],[[59,7],8],[[60,7],8],[[60,7],8],[[61,7],8],[[61,7],8],[[62,7],8],[[62,7],8],[[63,7],8],[[63,7],8],[[64,7],8],[[64,7],8],[[65,7],8],[[65,7],8],[[66,7],8],[[66,7],8],[[37,7],8],[[37,7],8],[[68,7],8],[[68,7],8],[[69,7],8],[[69,7],8],[[70,7],8],[[70,7],8],[[71,7],8],[[71,7],8],[[72,7],8],[[72,7],8],[[67,7],8],[[67,7],8],[[34,7],8],[[34,7],8],[75,38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[1,36],[34,35],[-1,-1,[]],[72,35],[71,35],[[[2,[4,34]]],31],[[[2,[14,34]]],31],[[[2,[14,70]]],31],[-1,-1,[]],[[[2,[37,30]]],31],[[[21,[-1]]],31,[[32,[31]]]],[[[73,[31]]],31],[[[76,[-1,-2]]],31,[],[]],[[[2,[4,35]]],31],[[[2,[14,30]]],31],[[[2,[4,30]]],31],[[[2,[14,71]]],31],[[[2,[4,71]]],31],[[[2,[14,67,[13,[34]],30]]],31],[[[2,[14,35]]],31],[[[2,[4,67,30]]],31],[[[2,[14,67,30]]],31],[[[2,[14,67,34,30]]],31],[[[2,[4,70]]],31],[[[2,[4,67,34,30]]],31],[[[2,[4,72]]],31],[[[2,[4,67,[13,[34]],30]]],31],[[[2,[14,72]]],31],[35,30],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[6,67],[-1,-1,[]],[[71,[21,[[2,[4,[13,[34]]]]]]],72],[[30,-1],30,[[32,[30]]]],[[33,34],[[21,[[2,[4,35]]]]]],[71,[[39,[[2,[4,67,34]]]]]],[[33,34,14],[[13,[[2,[35,34]]]]]],[[37,30,34,33],[[12,[[77,[4,[2,[67,34]]]],36]]]],[71,30],[[37,30,30,33],[[12,[34,36]]]],[71,[[13,[14]]]],[71,14],[[30,33],[[12,[[13,[67]],36]]]],[[34,34,[77,[4,[2,[34,[13,[34]]]]]],[78,[4]],33],[[12,[2,36]]]],[72,14],[71,34],[[34,33],[[13,[67]]]],[[79,33],[[12,[5,36]]]],[[79,33],[[12,[5,36]]]],[[79,33,5],[[12,[5,36]]]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[-1,33,5],[[12,[5,36]]],[]],[[34,33,5],[[12,[5,36]]]],[[34,33],[[21,[[2,[4,[13,[34]]]]]]]],[[80,33],[[12,[34,36]]]],[[80,33],[[12,[34,36]]]],[[80,33,5],[[12,[34,36]]]],[[35,33,5],[[12,[34,36]]]],[[30,33,5],[[12,[34,36]]]],[[68,33,5],[[12,[34,36]]]],[[69,33,5],[[12,[34,36]]]],[[70,33,5],[[12,[34,36]]]],[[71,33,5],[[12,[34,36]]]],[[72,33,5],[[12,[34,36]]]],[[33,34,14],[[13,[34]]]],[[30,-1],30,[[32,[30]]]],[[30,-1],30,[[32,[31]]]],[[33,34,14],6],[[34,34,33],[[12,[6,36]]]],[38,6],[[38,-1],2,20],[[35,-1],2,20],[[31,-1],2,20],[[30,-1],2,20],[[47,-1],2,20],[[48,-1],2,20],[[51,-1],2,20],[[52,-1],2,20],[[53,-1],2,20],[[54,-1],2,20],[[55,-1],2,20],[[56,-1],2,20],[[57,-1],2,20],[[58,-1],2,20],[[59,-1],2,20],[[60,-1],2,20],[[63,-1],2,20],[[64,-1],2,20],[[65,-1],2,20],[[66,-1],2,20],[[37,-1],2,20],[[68,-1],2,20],[[69,-1],2,20],[[70,-1],2,20],[[71,-1],2,20],[[72,-1],2,20],[[67,-1],2,20],[[34,-1],2,20],[[30,-1],30,[[32,[30]]]],[[37,30,30,30,33],[[12,[30,36]]]],[[30,-1,-2],30,[[32,[30]]],[[32,[30]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[42,37],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[34,6],[38,6],[34,6],[34,6],[67,6],[38,6],[[37,30,34,33],[[12,[6,36]]]],[38,6],[[30,33],[[12,[6,36]]]],[[34,34,33],[[12,[6,36]]]],[67,6],[38,6],[34,6],[[34,33],[[12,[6,36]]]],[[34,[78,[4]],33],[[12,[6,36]]]],[[34,33],[[12,[6,36]]]],[34,6],[38,6],[[30,-1],30,[[32,[30]]]],[[14,34,34],34],[[-1,35,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,35]]]],-1],30,[[32,[30]]]],[[-1,71,-2],30,22,[[32,[30]]]],[[[76,[14,71]],-1],30,[[32,[30]]]],[[-1,34,-2],30,22,[[32,[30]]]],[[[21,[[2,[14,34]]]],-1],30,[[32,[30]]]],[[-1,-2,[13,[34]],-3,-4],30,22,[[32,[67]]],[[32,[30]]],[[32,[30]]]],[[[21,[[2,[14,67,[13,[34]],30]]]],-1],30,[[32,[30]]]],[38,[[13,[75]]]],[[30,-1],30,[[32,[30]]]],[-1,31,[[32,[[21,[31]]]]]],[[30,[39,[[2,[37,30]]]],33],[[12,[30,36]]]],[[-1,-2],31,22,[[32,[[21,[31]]]]]],[[35,[21,[34]]],35],[[72,[21,[34]],33],[[12,[71,36]]]],[[30,-1],30,[[32,[30]]]],[43,4],[43,4],[44,4],[44,4],[45,4],[45,4],[46,4],[46,4],0,0,[30,30],[[30,-1],30,[[32,[30]]]],[-1,50,45],[[4,[21,[34]],34],70],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],71,[[32,[30]]]],[[4,[21,[[2,[4,[13,[34]]]]]],[21,[[2,[4,67,34]]]],34,-1],72,[[32,[30]]]],[30,30],[[30,-1],30,[[32,[30]]]],[[43,43],[[13,[15]]]],[[44,44],[[13,[15]]]],[[45,45],[[13,[15]]]],[[46,46],[[13,[15]]]],[[38,38],[[13,[15]]]],[[47,47],[[13,[15]]]],[[48,48],[[13,[15]]]],[[51,51],[[13,[15]]]],[[52,52],[[13,[15]]]],[[53,53],[[13,[15]]]],[[54,54],[[13,[15]]]],[[55,55],[[13,[15]]]],[[56,56],[[13,[15]]]],[[57,57],[[13,[15]]]],[[58,58],[[13,[15]]]],[[59,59],[[13,[15]]]],[[60,60],[[13,[15]]]],[[63,63],[[13,[15]]]],[[64,64],[[13,[15]]]],[[65,65],[[13,[15]]]],[[66,66],[[13,[15]]]],[[67,67],[[13,[15]]]],[[34,33,[77,[[2,[34,[21,[34]]]],34]],6],[[12,[34,36]]]],[37,37],[[30,-1],30,[[32,[30]]]],[30,30],[30,30],[[[13,[4]],[21,[[2,[4,67,34]]]],34,-1],35,[[32,[30]]]],[[71,3],2],[[30,-1],30,[[32,[67]]]],[[30,-1],30,[[32,[30]]]],0,0,[[43,30,30,33],[[12,[34,36]]]],[[43,30,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[44,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[45,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[46,30,30,30,33],[[12,[34,36]]]],[[47,30,30,33],[[12,[34,36]]]],[[48,30,33],[[12,[34,36]]]],[[49,30,30,33],[[12,[34,36]]]],[[50,30,30,33],[[12,[34,36]]]],[[51,30,30,33],[[12,[34,36]]]],[[52,30,30,33],[[12,[34,36]]]],[[53,30,30,33],[[12,[34,36]]]],[[54,30,33],[[12,[34,36]]]],[[55,30,30,33],[[12,[34,36]]]],[[56,30,30,33],[[12,[34,36]]]],[[57,30,30,33],[[12,[34,36]]]],[[58,30,33],[[12,[34,36]]]],[[59,30,33],[[12,[34,36]]]],[[60,30,30,33],[[12,[34,36]]]],[[61,30,30,33],[[12,[34,36]]]],[[62,30,33],[[12,[34,36]]]],[[63,30,33],[[12,[34,36]]]],[[64,30,33],[[12,[34,36]]]],[[65,30,33],[[12,[34,36]]]],[[66,30,33],[[12,[34,36]]]],[[38,-1],12,24],[[35,-1],12,24],[[31,-1],12,24],[[30,-1],12,24],[[37,-1],12,24],[[68,-1],12,24],[[69,-1],12,24],[[70,-1],12,24],[[71,-1],12,24],[[72,-1],12,24],[[67,-1],12,24],[[34,-1],12,24],[[71,-1],2,22],[[81,33],[[12,[81,36]]]],[[81,33,5],[[12,[81,36]]]],[[35,33,5],[[12,[35,36]]]],[[34,33,5],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[35,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,34,-1,6],[[12,[34,36]]],[[83,[34,33],[[82,[[12,[6,36]]]]]]]],[[34,33,6],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[[34,33],[[12,[34,36]]]],[[34,33,6],[[12,[34,36]]]],[30,30],[[34,33],34],[[[76,[4,37]]],37],[[[76,[14,30]]],30],[[30,-1],30,[[32,[30]]]],[[80,14,34],2],[[35,14,34],2],[[30,14,34],2],[[68,14,34],2],[[69,14,34],2],[[70,14,34],2],[[71,14,34],2],[[72,14,34],2],[[34,14,34],34],[[80,[39,[4]],[39,[34]]],2],[[80,[39,[4]],[39,[34]]],2],[[-1,-2],37,[[32,[67]]],22],[[35,[21,[[2,[4,[13,[34]]]]]]],35],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[[30,33],[[12,[30,36]]]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[[[21,[37]]],37],[[84,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[43,30,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[44,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[45,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[46,30,30,30,33],[[12,[2,36]]]],[[35,33],[[12,[2,36]]]],[[31,33],[[12,[2,36]]]],[[30,33],[[12,[2,36]]]],[[37,30,30,33],[[12,[2,36]]]],[[68,33],[[12,[2,36]]]],[[69,33],[[12,[2,36]]]],[[70,33],[[12,[2,36]]]],[[71,33],[[12,[2,36]]]],[[72,33],[[12,[2,36]]]],[[34,33],[[12,[2,36]]]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[[30,-1],30,22],[-1,35,22],[-1,30,22],[[[39,[4]],4],[[13,[5]]]],[[30,-1],30,[[32,[30]]]],[[],37],[[35,-1],35,[[32,[31]]]],[[30,-1],30,[[32,[31]]]],[[71,-1],71,[[32,[31]]]],[[72,-1],72,[[32,[31]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[75,75],[[-1,-2],2,[],[]],[[75,75],15],0,[5,-1,[]],[5,-1,[]],[-1,[[12,[75]]],19],[5,2],[[75,75],6],0,[[75,7],8],[-1,-1,[]],[[75,14],4],[[75,-1],2,20],[[],5],[-1,-2,[],[]],0,0,0,[-1,[[12,[[12,[17,28]],4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[[-1,[13,[14]]],[[12,[30,4]]],22],[-1,[[12,[30,4]]],22],[-1,[[12,[[12,[18,29]],4]]],22],[[75,75],[[13,[15]]]],[[75,-1],12,24],[-1,-2,[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[85,85],[[-1,-2],2,[],[]],[[85,85],15],[5,-1,[]],[5,-1,[]],[-1,[[12,[85]]],19],[5,2],[[85,85],6],[[85,7],8],[[85,7],8],[-1,-1,[]],[[85,-1],2,20],[[],5],0,[-1,-2,[],[]],0,[[4,5,5],85],0,[[85,85],[[13,[15]]]],[[85,-1],12,24],[-1,-2,[],[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[],86],[87,87],[88,88],[89,89],[90,90],[91,91],[92,92],[86,86],[23,23],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[87,87],15],[[88,88],15],[[89,89],15],[[90,90],15],[[91,91],15],[[92,92],15],[[86,86],15],[[23,23],15],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[-1,[[12,[87]]],19],[-1,[[12,[88]]],19],[-1,[[12,[89]]],19],[-1,[[12,[90]]],19],[-1,[[12,[91]]],19],[-1,[[12,[92]]],19],[-1,[[12,[86]]],19],[-1,[[12,[23]]],19],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[[87,87],6],[[88,88],6],[[89,89],6],[[90,90],6],[[91,91],6],[[92,92],6],[[86,86],6],[[23,23],6],[[87,7],8],[[87,7],8],[[88,7],8],[[88,7],8],[[89,7],8],[[89,7],8],[[90,7],8],[[90,7],8],[[91,7],8],[[91,7],8],[[92,7],8],[[92,7],8],[[86,7],8],[[86,7],8],[[23,7],8],[[23,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[87,-1],2,20],[[88,-1],2,20],[[89,-1],2,20],[[90,-1],2,20],[[91,-1],2,20],[[92,-1],2,20],[[86,-1],2,20],[[23,-1],2,20],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[90,5],86],[[91,5],23],[[87,87],[[13,[15]]]],[[88,88],[[13,[15]]]],[[89,89],[[13,[15]]]],[[90,90],[[13,[15]]]],[[91,91],[[13,[15]]]],[[92,92],[[13,[15]]]],[[86,86],[[13,[15]]]],[[23,23],[[13,[15]]]],[[],86],[[87,-1],12,24],[[88,-1],12,24],[[89,-1],12,24],[[90,-1],12,24],[[91,-1],12,24],[[92,-1],12,24],[[86,-1],12,24],[[23,-1],12,24],[[],23],[[],23],[[],23],[[],86],[[],86],[[],86],[[],23],[[],23],[[],23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],0,0,[[93,18],[[12,[4,4]]]],[[93,94,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],[[93,29],[[12,[4,4]]]],[[93,95,[21,[94]],[21,[5]],5,5],[[12,[4,4]]]],0,[[96,5],4],[[96,94,[13,[5]]],4],[[96,86],[[12,[4,4]]]],[96,[[13,[4]]]],[96,14],[[96,94],4],[96,[[12,[4,4]]]],[96,[[12,[4,4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[96,[[13,[4]]]],[[96,[21,[97]]],[[13,[4]]]],[[96,6],[[13,[4]]]],[[96,23],[[12,[4,4]]]],[[96,95],[[12,[4,4]]]],[96,6],[[96,86],6],[[96,23],6],[96,14],0,[-1,-2,[],[]],[-1,-2,[],[]],[[98,5],4],[[],98],[5,-1,[]],[5,-1,[]],[5,2],[[98,94,[13,[5]]],4],[-1,-1,[]],[[98,86],[[12,[4,4]]]],[[],5],[-1,-2,[],[]],[98,14],[[98,94],4],[98,[[12,[4,4]]]],[98,[[12,[4,4]]]],[[98,[21,[97]]],[[13,[4]]]],[[98,6],[[13,[4]]]],[98,[[13,[4]]]],[[98,6],[[13,[4]]]],[[98,23],[[12,[4,4]]]],[[98,95],[[12,[4,4]]]],[98,6],[[98,86],6],[[98,23],6],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[98,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,[[99,85],2],[42,41],[41,42],[100,2],[100,2],[100,2],[100,2],[100,2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[18,18],[94,94],[29,29],[95,95],[99,99],[9,9],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[18,18],15],[[94,94],15],[100,[[12,[18,29]]]],[18,[[12,[18,29]]]],[29,[[12,[18,29]]]],[[100,14],2],[[],[[101,[99]]]],[[],[[102,[99]]]],[[],18],[[],29],[[],103],[[],99],[5,-1,[]],[5,-1,[]],[100,2],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,-1,[]],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[5,2],[100,2],[[18,18],6],[[94,94],6],[[29,29],6],[[95,95],6],[[9,9],6],0,[[104,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[100,85],[[12,[2,9]]]],[[103,85,[13,[[21,[42]]]]],[[12,[2,4]]]],[[99,85,[13,[[21,[42]]]]],[[12,[2,4]]]],0,[18,18],[29,29],[[18,7],8],[[94,7],8],[[94,7],8],[[29,7],8],[[95,7],8],[[95,7],8],[[103,7],8],[[99,7],8],[[9,7],8],[[9,7],8],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[18,29],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[104,86],[[12,[42,4]]]],[[100,86],2],[[103,86],[[12,[42,4]]]],[[99,86],[[12,[42,4]]]],[18,[[77,[97,[21,[94]]]]]],[29,[[77,[97,[21,[95]]]]]],[18,[[21,[94]]]],[29,[[21,[95]]]],[18,[[2,[[21,[94]],[77,[97,[21,[94]]]]]]]],[29,[[2,[[21,[95]],[77,[97,[21,[95]]]]]]]],[[18,-1],2,20],[[94,-1],2,20],[100,2],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,2],[[100,5],2],[[100,27],2],[-1,[[101,[-1]]],104],[-1,[[102,[-1]]],104],[-1,103,22],[[[21,[42]]],103],[[100,94],2],[[18,94],2],[[29,94],2],0,[103,4],[103,[[21,[42]]]],[[18,18],[[13,[15]]]],[[94,94],[[13,[15]]]],[[29,29],[[13,[15]]]],[[95,95],[[13,[15]]]],[[9,9],[[13,[15]]]],[104,[[12,[42,4]]]],[100,[[12,[2,9]]]],[103,[[12,[42,4]]]],[99,[[12,[42,4]]]],[[104,42],[[12,[2,4]]]],[100,[[12,[2,9]]]],[[103,42],[[12,[2,4]]]],[[99,42],[[12,[2,4]]]],[[104,42,23],[[12,[2,4]]]],[[100,23],2],[[103,42,23],[[12,[2,4]]]],[[99,42,23],[[12,[2,4]]]],[100,2],[100,2],[100,2],[[[101,[-1]],18],[[12,[-1,4]]],104],[[[102,[-1]],29],[[12,[-1,4]]],104],[100,2],[[100,41],[[12,[2,9]]]],[[100,[21,[41]]],[[12,[2,9]]]],[[100,42],2],[[100,[21,[42]]],2],[[100,95],[[12,[2,9]]]],[[18,95],[[12,[2,9]]]],[[29,95],[[12,[2,9]]]],[[100,5],2],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,4,[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,[[12,[-2]]],[],[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[-1,16,[]],[100,2]],"c":[],"p":[[6,"Error",10],[1,"tuple"],[10,"AssemblyProgram",10],[5,"String",2652],[1,"usize"],[1,"bool"],[5,"Formatter",2653],[8,"Result",2653],[6,"Error",2348],[6,"CoreOp",65],[6,"StandardOp",416],[6,"Result",2654],[6,"Option",2655],[1,"str"],[6,"Ordering",2656],[5,"TypeId",2657],[5,"CoreProgram",65],[5,"CoreProgram",2348],[10,"Deserializer",2658],[10,"Hasher",2659],[5,"Vec",2660],[10,"ToString",2652],[5,"Output",1986],[10,"Serializer",2661],[6,"Location",376],[5,"Globals",348],[1,"isize"],[5,"StandardProgram",416],[5,"StandardProgram",2348],[6,"Expr",566],[6,"Declaration",566],[10,"Into",2662],[5,"Env",566],[6,"Type",566],[6,"ConstExpr",566],[6,"Error",566],[6,"Pattern",566],[6,"Annotation",566],[1,"slice"],[1,"char"],[1,"f64"],[1,"i64"],[10,"AssignOp",566],[10,"UnaryOp",566],[10,"BinaryOp",566],[10,"TernaryOp",566],[5,"Add",566],[5,"Negate",566],[6,"Arithmetic",566],[5,"Assign",566],[5,"BitwiseAnd",566],[5,"BitwiseNand",566],[5,"BitwiseNor",566],[5,"BitwiseNot",566],[5,"BitwiseOr",566],[5,"BitwiseXor",566],[6,"Comparison",566],[5,"Get",566],[6,"Put",566],[5,"And",566],[5,"Or",566],[5,"Not",566],[5,"New",566],[5,"Delete",566],[5,"Tag",566],[5,"Data",566],[6,"Mutability",566],[5,"CoreBuiltin",566],[5,"StandardBuiltin",566],[5,"FFIProcedure",566],[5,"Procedure",566],[5,"PolyProcedure",566],[5,"Box",2663],[10,"Compile",566],[5,"SourceCodeLocation",1923],[5,"BTreeMap",2664],[5,"HashMap",2665],[5,"HashSet",2666],[10,"GetSize",566],[10,"GetType",566],[10,"Simplify",566],[17,"Output"],[10,"Fn",2667],[10,"TypeCheck",566],[5,"FFIBinding",1958],[5,"Input",1986],[6,"Axis",1986],[6,"Direction",1986],[6,"Color",1986],[6,"InputMode",1986],[6,"OutputMode",1986],[5,"Channel",1986],[10,"CompiledTarget",2292],[6,"CoreOp",2348],[6,"StandardOp",2348],[10,"Architecture",2292],[1,"i32"],[5,"C",2318],[5,"StandardDevice",2348],[10,"VirtualMachineProgram",2348],[5,"CoreInterpreter",2348],[5,"StandardInterpreter",2348],[5,"TestingDevice",2348],[10,"Device",2348],[15,"Compare",207],[15,"IsGreater",207],[15,"IsGreaterEqual",207],[15,"IsLess",207],[15,"IsLessEqual",207],[15,"IsEqual",207],[15,"IsNotEqual",207],[15,"GetAddress",207],[15,"Move",207],[15,"Copy",207],[15,"Index",207],[15,"Add",207],[15,"Sub",207],[15,"Mul",207],[15,"Div",207],[15,"Rem",207],[15,"DivRem",207],[15,"VecAdd",207],[15,"VecSub",207],[15,"VecMul",207],[15,"VecDiv",207],[15,"VecRem",207],[15,"And",207],[15,"Or",207],[15,"VecNot",207],[15,"VecAnd",207],[15,"VecOr",207],[15,"VecInc",207],[15,"VecDec",207],[15,"LeftShift",207],[15,"LogicalRightShift",207],[15,"ArithmeticRightShift",207],[15,"VecLeftShift",207],[15,"VecLogicalRightShift",207],[15,"VecArithmeticRightShift",207],[15,"VecGez",207],[15,"VecNeg",207],[15,"VecOffset",207],[15,"VecIndex",207],[15,"PopFrom",207],[15,"Array",207],[15,"Const",207],[15,"BitwiseNand",207],[15,"BitwiseXor",207],[15,"BitwiseOr",207],[15,"BitwiseNor",207],[15,"BitwiseAnd",207],[15,"VecBitwiseAnd",207],[15,"VecBitwiseOr",207],[15,"VecBitwiseXor",207],[15,"VecBitwiseNor",207],[15,"VecBitwiseNand",207],[15,"VecBitwiseNot",207],[15,"Global",207],[15,"PushTo",207],[15,"IsGreater",510],[15,"IsLess",510],[15,"Const",510],[15,"Pow",510],[15,"Add",510],[15,"Sub",510],[15,"Mul",510],[15,"Div",510],[15,"Rem",510],[15,"VecAdd",510],[15,"VecSub",510],[15,"VecMul",510],[15,"VecDiv",510],[15,"VecRem",510],[15,"VecNeg",510],[15,"VecPow",510],[15,"VecSin",510],[15,"VecCos",510],[15,"VecTan",510],[15,"VecASin",510],[15,"VecACos",510],[15,"VecATan",510],[15,"VecGez",510],[15,"FromImport",1911],[15,"MismatchedTypes",1913],[15,"MismatchedMutability",1913],[15,"UnexpectedConstParam",1913],[15,"NonExhaustivePatterns",1913]],"b":[[45,"impl-Display-for-Error"],[46,"impl-Debug-for-Error"],[173,"impl-Display-for-CoreProgram"],[174,"impl-Debug-for-CoreProgram"],[175,"impl-Display-for-CoreOp"],[176,"impl-Debug-for-CoreOp"],[359,"impl-Debug-for-Globals"],[360,"impl-Display-for-Globals"],[402,"impl-Display-for-Location"],[403,"impl-Debug-for-Location"],[480,"impl-Debug-for-StandardProgram"],[481,"impl-Display-for-StandardProgram"],[482,"impl-Display-for-StandardOp"],[483,"impl-Debug-for-StandardOp"],[1222,"impl-PartialEq-for-Expr"],[1223,"impl-Expr"],[1279,"impl-Display-for-Env"],[1280,"impl-Debug-for-Env"],[1281,"impl-Display-for-Error"],[1282,"impl-Debug-for-Error"],[1283,"impl-Debug-for-ConstExpr"],[1284,"impl-Display-for-ConstExpr"],[1285,"impl-Display-for-Declaration"],[1286,"impl-Debug-for-Declaration"],[1287,"impl-Display-for-Expr"],[1288,"impl-Debug-for-Expr"],[1289,"impl-Display-for-Add"],[1290,"impl-Debug-for-Add"],[1291,"impl-Display-for-Negate"],[1292,"impl-Debug-for-Negate"],[1293,"impl-Display-for-Arithmetic"],[1294,"impl-Debug-for-Arithmetic"],[1295,"impl-Display-for-Assign"],[1296,"impl-Debug-for-Assign"],[1297,"impl-Display-for-BitwiseAnd"],[1298,"impl-Debug-for-BitwiseAnd"],[1299,"impl-Debug-for-BitwiseNand"],[1300,"impl-Display-for-BitwiseNand"],[1301,"impl-Display-for-BitwiseNor"],[1302,"impl-Debug-for-BitwiseNor"],[1303,"impl-Debug-for-BitwiseNot"],[1304,"impl-Display-for-BitwiseNot"],[1305,"impl-Display-for-BitwiseOr"],[1306,"impl-Debug-for-BitwiseOr"],[1307,"impl-Debug-for-BitwiseXor"],[1308,"impl-Display-for-BitwiseXor"],[1309,"impl-Debug-for-Comparison"],[1310,"impl-Display-for-Comparison"],[1311,"impl-Debug-for-Get"],[1312,"impl-Display-for-Get"],[1313,"impl-Debug-for-Put"],[1314,"impl-Display-for-Put"],[1315,"impl-Display-for-And"],[1316,"impl-Debug-for-And"],[1317,"impl-Debug-for-Or"],[1318,"impl-Display-for-Or"],[1319,"impl-Debug-for-Not"],[1320,"impl-Display-for-Not"],[1321,"impl-Debug-for-New"],[1322,"impl-Display-for-New"],[1323,"impl-Debug-for-Delete"],[1324,"impl-Display-for-Delete"],[1325,"impl-Display-for-Tag"],[1326,"impl-Debug-for-Tag"],[1327,"impl-Display-for-Data"],[1328,"impl-Debug-for-Data"],[1329,"impl-Display-for-Pattern"],[1330,"impl-Debug-for-Pattern"],[1331,"impl-Debug-for-CoreBuiltin"],[1332,"impl-Display-for-CoreBuiltin"],[1333,"impl-Display-for-StandardBuiltin"],[1334,"impl-Debug-for-StandardBuiltin"],[1335,"impl-Debug-for-FFIProcedure"],[1336,"impl-Display-for-FFIProcedure"],[1337,"impl-Debug-for-Procedure"],[1338,"impl-Display-for-Procedure"],[1339,"impl-Debug-for-PolyProcedure"],[1340,"impl-Display-for-PolyProcedure"],[1341,"impl-Debug-for-Mutability"],[1342,"impl-Display-for-Mutability"],[1343,"impl-Debug-for-Type"],[1344,"impl-Display-for-Type"],[1350,"impl-From%3CType%3E-for-ConstExpr"],[1352,"impl-From%3CPolyProcedure%3E-for-ConstExpr"],[1353,"impl-From%3CProcedure%3E-for-ConstExpr"],[1354,"impl-From%3C(String,+Type)%3E-for-Declaration"],[1355,"impl-From%3C(%26str,+Type)%3E-for-Declaration"],[1356,"impl-From%3C(%26str,+FFIProcedure)%3E-for-Declaration"],[1358,"impl-From%3C(Pattern,+Expr)%3E-for-Declaration"],[1359,"impl-From%3CVec%3CT%3E%3E-for-Declaration"],[1360,"impl-From%3CBox%3CDeclaration%3E%3E-for-Declaration"],[1361,"impl-From%3CBTreeMap%3CK,+V%3E%3E-for-Declaration"],[1362,"impl-From%3C(String,+ConstExpr)%3E-for-Declaration"],[1363,"impl-From%3C(%26str,+Expr)%3E-for-Declaration"],[1364,"impl-From%3C(String,+Expr)%3E-for-Declaration"],[1365,"impl-From%3C(%26str,+Procedure)%3E-for-Declaration"],[1366,"impl-From%3C(String,+Procedure)%3E-for-Declaration"],[1367,"impl-From%3C(%26str,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1368,"impl-From%3C(%26str,+ConstExpr)%3E-for-Declaration"],[1369,"impl-From%3C(String,+Mutability,+Expr)%3E-for-Declaration"],[1370,"impl-From%3C(%26str,+Mutability,+Expr)%3E-for-Declaration"],[1371,"impl-From%3C(%26str,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1372,"impl-From%3C(String,+FFIProcedure)%3E-for-Declaration"],[1373,"impl-From%3C(String,+Mutability,+Type,+Expr)%3E-for-Declaration"],[1374,"impl-From%3C(String,+PolyProcedure)%3E-for-Declaration"],[1375,"impl-From%3C(String,+Mutability,+Option%3CType%3E,+Expr)%3E-for-Declaration"],[1376,"impl-From%3C(%26str,+PolyProcedure)%3E-for-Declaration"],[1969,"impl-Display-for-FFIBinding"],[1970,"impl-Debug-for-FFIBinding"],[2174,"impl-Debug-for-Axis"],[2175,"impl-Display-for-Axis"],[2176,"impl-Debug-for-Direction"],[2177,"impl-Display-for-Direction"],[2178,"impl-Debug-for-Color"],[2179,"impl-Display-for-Color"],[2180,"impl-Debug-for-InputMode"],[2181,"impl-Display-for-InputMode"],[2182,"impl-Display-for-OutputMode"],[2183,"impl-Debug-for-OutputMode"],[2184,"impl-Debug-for-Channel"],[2185,"impl-Display-for-Channel"],[2186,"impl-Debug-for-Input"],[2187,"impl-Display-for-Input"],[2188,"impl-Display-for-Output"],[2189,"impl-Debug-for-Output"],[2518,"impl-Debug-for-CoreOp"],[2519,"impl-Display-for-CoreOp"],[2521,"impl-Display-for-StandardOp"],[2522,"impl-Debug-for-StandardOp"],[2525,"impl-Debug-for-Error"],[2526,"impl-Display-for-Error"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/docs/src/sage/frontend/mod.rs.html b/docs/src/sage/frontend/mod.rs.html index 9e107254..d95f51e6 100644 --- a/docs/src/sage/frontend/mod.rs.html +++ b/docs/src/sage/frontend/mod.rs.html @@ -230,7 +230,7 @@ use crate::side_effects::Output; if include_std { let std_lib = parse_module("std", &without_comments(include_str!("std_lib.sg")))?; - expr = expr.with(std_lib) + expr = expr.hard_with(std_lib) } if include_builtins { let alloc = crate::lir::ConstExpr::StandardBuiltin(crate::lir::StandardBuiltin { diff --git a/docs/src/sage/frontend/parse.rs.html b/docs/src/sage/frontend/parse.rs.html index be93c3e1..351d6130 100644 --- a/docs/src/sage/frontend/parse.rs.html +++ b/docs/src/sage/frontend/parse.rs.html @@ -4921,6 +4921,31 @@ 4920 4921 4922 +4923 +4924 +4925 +4926 +4927 +4928 +4929 +4930 +4931 +4932 +4933 +4934 +4935 +4936 +4937 +4938 +4939 +4940 +4941 +4942 +4943 +4944 +4945 +4946 +4947

use log::{error, trace};
 use nom::{
     branch::alt,
@@ -7540,7 +7565,7 @@
                 Declaration::Type(
                     name.to_owned(),
                     Type::Poly(
-                        params.into_iter().map(|x| x.to_owned()).collect(),
+                        params,
                         Type::Struct(fields).into(),
                     ),
                 ),
@@ -7601,7 +7626,7 @@
                 Declaration::Type(
                     name.to_owned(),
                     Type::Poly(
-                        params.into_iter().map(|x| x.to_owned()).collect(),
+                        params,
                         Type::EnumUnion(fields).into(),
                     ),
                 ),
@@ -7872,12 +7897,19 @@
 
 fn parse_type_params<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
     input: &'a str,
-) -> IResult<&'a str, Vec<String>, E> {
+) -> IResult<&'a str, Vec<(String, Option<Type>)>, E> {
     let (input, _) = tag("<")(input)?;
     let (input, _) = whitespace(input)?;
-    let (input, mut params) = many0(terminated(parse_symbol, tag(",")))(input)?;
+    let (input, mut params) = many0(terminated(alt((
+        preceded(delimited(whitespace, tag("const"), whitespace), map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty)))),
+        map(parse_symbol, |x| (x, None))
+    )), preceded(whitespace, tag(","))))(input)?;
     let (input, _) = whitespace(input)?;
-    let (input, last_param) = opt(parse_symbol)(input)?;
+    let (input, last_param) = opt(alt((
+        preceded(delimited(whitespace, tag("const"), whitespace), map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty)))),
+        // map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty))),
+        map(parse_symbol, |x| (x, None))
+    )))(input)?;
     let (input, _) = whitespace(input)?;
     let (input, _) = tag(">")(input)?;
 
@@ -7885,7 +7917,7 @@
         params.push(last_param);
     }
 
-    Ok((input, params.into_iter().map(|x| x.to_string()).collect()))
+    Ok((input, params.into_iter().map(|(name, ty)| (name.to_string(), ty)).collect()))
 }
 
 fn parse_type_function<'a, E: ParseError<&'a str> + ContextError<&'a str>>(
@@ -7976,6 +8008,7 @@
         parse_type_function,
         map(parse_symbol, |x| Type::Symbol(x.to_string())),
         parse_type_group,
+        map(parse_const_atom, |x| Type::ConstParam(x.into()))
     ))(input)?;
 
     Ok((input, ty))
@@ -9016,9 +9049,26 @@
 #[cfg(test)]
 mod tests {
     fn compile_and_run(code: &str, input: &str) -> Result<String, String> {
-        let _ = rayon::ThreadPoolBuilder::new()
+        // let has_init = {*INIT.read().unwrap()};
+        // if !has_init {
+        //     let mut builder = env_logger::Builder::from_default_env();
+        //     builder.format_timestamp(None);
+        //     builder.filter(
+        //         None,
+        //         // LogLevel::Error if args.debug.is_none() => log::LevelFilter::Error,
+        //         // LogLevel::Warn if args.debug.is_none() => log::LevelFilter::Warn,
+        //         // LogLevel::Off if args.debug.is_none() => log::LevelFilter::Error,
+        //         // LogLevel::Info if args.debug.is_none() => log::LevelFilter::Info,
+        //         log::LevelFilter::Trace,
+        //         // log::LevelFilter::Info,
+        //     );
+        //     builder.init();
+        //     *INIT.write().unwrap() = true;
+        // }
+            
+        let _ = rayon::ThreadPoolBuilder::new()
             .num_threads(16)
-            .stack_size(2048 * 1024 * 1024)
+            .stack_size(512 * 1024 * 1024)
             .build_global();
         // Compiling most examples overflows the tiny stack for tests.
         // So, we spawn a new thread with a larger stack size.
@@ -9391,7 +9441,7 @@
         assert_parse_type(
             "fun<T>(Option<T>) -> Bool",
             Some(Type::Poly(
-                vec!["T".to_string()],
+                vec![("T".to_string(), None)],
                 Type::Proc(
                     vec![Type::Apply(
                         Box::new(Type::Symbol("Option".to_string())),
@@ -9406,7 +9456,7 @@
         assert_parse_type(
             "fun<T>(Option<T>, Int) -> Bool",
             Some(Type::Poly(
-                vec!["T".to_string()],
+                vec![("T".to_string(), None)],
                 Type::Proc(
                     vec![
                         Type::Apply(
diff --git a/docs/src/sage/lir/compile.rs.html b/docs/src/sage/lir/compile.rs.html
index 4eb108a6..cfb71322 100644
--- a/docs/src/sage/lir/compile.rs.html
+++ b/docs/src/sage/lir/compile.rs.html
@@ -1526,6 +1526,15 @@
 1525
 1526
 1527
+1528
+1529
+1530
+1531
+1532
+1533
+1534
+1535
+1536
 
//! # Compile
 //!
 //! This module contains the `Compile` trait, which allows an LIR expression to be compiled to one of the two variants of the assembly language.
@@ -2076,7 +2085,7 @@
             Self::EnumUnion(t, variant, val) => {
                 // Get the size of the tagged union.
                 let result_size = t.get_size(env)?;
-                let t = t.simplify_until_concrete(env)?;
+                let t = t.simplify_until_concrete(env, false)?;
                 if let Type::EnumUnion(fields) = t {
                     // Get the list of possible variant names.
                     let variants = fields.clone().into_keys().collect::<Vec<_>>();
@@ -2371,7 +2380,7 @@
                     // val_type.add_monomorphized_associated_consts(env)?;
 
                     // Push the address of the struct, tuple, or union onto the stack.
-                    match val_type.simplify_until_has_members(env)? {
+                    match val_type.simplify_until_has_members(env, false)? {
                         // If the value is a struct, tuple, or union:
                         Type::Struct(_) | Type::Tuple(_) | Type::Union(_) => {
                             // Compile a reference to the inner value with the expected mutability.
@@ -2456,7 +2465,7 @@
                     // val_type.add_monomorphized_associated_consts(env)?;
 
                     // Push the address of the struct, tuple, or union onto the stack.
-                    match val_type.simplify_until_has_members(env)? {
+                    match val_type.simplify_until_has_members(env, false)? {
                         // If the value is a struct, tuple, or union:
                         Type::Struct(_) | Type::Tuple(_) | Type::Union(_) => {
                             // Compile a reference to the inner value with the expected mutability.
@@ -2599,14 +2608,20 @@
         let ty = self.get_type(env)?;
         // Compile the constant expression.
         match self {
-            Self::Template(_, _) => {
+            Self::Any
+            | Self::Template(_, _) => {
                 // Cannot compile a template expression.
                 return Err(Error::UnsizedType(ty));
             }
 
-            Self::Type(_) => {
-                // Do nothing.
-            }
+            Self::Type(t) => {
+                match t.simplify(env)? {
+                    Type::ConstParam(cexpr) => cexpr.compile_expr(env, output)?,
+                    _ => {
+                        return Err(Error::UnsizedType(ty));
+                    }
+                }
+            }
             Self::Member(container, member) => {
                 let new_container = *container.clone();
                 debug!("Compiling (const) member access {member} on {new_container} in environment {env}");
@@ -2625,6 +2640,9 @@
                         }
                         fields[&name].clone().compile_expr(env, output)?
                     }
+                    (Self::Type(ty), member) if ty.is_const_param() => {
+                        ty.simplify_until_const_param(env, false)?.field(member).compile_expr(env, output)?
+                    }
                     (Self::Type(ty), Self::Symbol(name)) => {
                         if let Some((constant, _)) = env.get_associated_const(&ty, &name) {
                             debug!("Compiling associated constant {constant} in environment {env}");
@@ -2692,7 +2710,7 @@
                     }
 
                     let mut result = *result.clone();
-                    for (param, ty_arg) in params.into_iter().zip(ty_args) {
+                    for ((param, _), ty_arg) in params.into_iter().zip(ty_args) {
                         result.substitute(&param, &ty_arg);
                     }
                     result = result.eval(env)?;
@@ -2913,7 +2931,7 @@
             Self::EnumUnion(t, variant, val) => {
                 // Get the size of the tagged union.
                 let result_size = t.get_size(env)?;
-                let t = t.simplify_until_has_variants(env)?;
+                let t = t.simplify_until_has_variants(env, false)?;
 
                 // Get the inner list of variants and compile the expression using this information.
                 if let Type::EnumUnion(variants) = t.clone().simplify(env)? {
@@ -2987,7 +3005,7 @@
             Self::Of(enum_type, variant) => {
                 // Only try to simplify the type 50 times at most.
                 // This is to prevent infinite loops and to keep recursion under control.
-                match enum_type.simplify_until_has_variants(env)? {
+                match enum_type.simplify_until_has_variants(env, false)? {
                     // If the type is an enum, we can continue.
                     Type::Enum(variants) => {
                         // Get the index of the variant.
diff --git a/docs/src/sage/lir/env.rs.html b/docs/src/sage/lir/env.rs.html
index da0cb73e..631c7e50 100644
--- a/docs/src/sage/lir/env.rs.html
+++ b/docs/src/sage/lir/env.rs.html
@@ -1309,6 +1309,30 @@
 1308
 1309
 1310
+1311
+1312
+1313
+1314
+1315
+1316
+1317
+1318
+1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
+1329
+1330
+1331
+1332
+1333
+1334
 
//! # Environment
 //!
 //! This module defines the `Env` type, which is used to store the types, constants, and procedures
@@ -1564,10 +1588,13 @@
         for (other_ty, consts) in associated_constants.iter() {
             if matches!(ty.is_monomorph_of(other_ty, self), Ok(true)) {
                 debug!("Type {ty} is monomorph of {other_ty}");
+                for (name, (constant, ty)) in consts {
+                    debug!("   {name}: {ty} = {constant}")
+                }
                 let template = other_ty.clone();
 
                 let ty_params = template.get_template_params(self);
-                let ty_param_set = ty_params.clone().into_iter().collect::<HashSet<_>>();
+                let ty_param_set = ty_params.clone().into_iter().map(|x| x.0).collect::<HashSet<_>>();
                 let monomorph = ty.clone();
                 debug!("Monomorph of {template} is {monomorph}");
                 let mut symbols = HashMap::new();
@@ -1583,12 +1610,12 @@
                     debug!("Failed to get monomorph template args for {monomorph} of {template}");
                     continue;
                 }
-                for (symbol, ty) in &symbols {
-                    debug!("----> {symbol} == {ty}");
+                for (symbol, (ty, specifier)) in &symbols {
+                    debug!("----> {symbol} == {ty}: {specifier:?}");
                 }
                 let template_associated_consts = consts.clone();
                 let mut ty_args = Vec::new();
-                for ty_param in &ty_params {
+                for (ty_param, _) in &ty_params {
                     if let Some(arg) = symbols.get(ty_param) {
                         ty_args.push(arg.clone());
                     } else {
@@ -1596,13 +1623,13 @@
                     }
                 }
 
-                if ty_args.len() != ty_params.len() {
-                    debug!("Mismatched number of template arguments for {monomorph} of {template}");
-                    debug!("Expected {ty_params:?}, found {ty_args:?}");
-                    continue;
-                }
+                // if ty_args.len() != ty_params.len() {
+                //     error!("Mismatched number of template arguments for {monomorph} of {template}");
+                //     error!("Expected {ty_params:?}, found {ty_args:?}");
+                //     continue;
+                // }
 
-                debug!(
+                debug!(
                     "Associated constants for {monomorph} are {:?}",
                     template_associated_consts.keys().to_owned()
                 );
@@ -1611,8 +1638,8 @@
                     debug!("Found cached associated const (type) {name} of type {const_ty}");
                     // let result = const_ty.apply(ty_args.clone()).simplify_until_simple(self).ok()?;
                     // let result = const_ty.apply(ty_args.clone());
-                    let result = const_ty.apply(ty_args.clone());
-                    match result.simplify_until_simple(self) {
+                    let result = const_ty.apply(ty_args.clone().into_iter().map(|x|x.0).collect());
+                    match result.simplify_until_simple(self, false) {
                         Ok(result) => {
                             debug!("Found associated const (type) {name} of type {ty} = {result}");
                             return Some(result);
@@ -1625,7 +1652,7 @@
                             // continue;
                         }
                     }
-                    // info!("Found associated const (type) {name} of type {ty} = {result}");
+                    // debug!("Found associated const (type) {name} of type {ty} = {result}");
                     // return Some(result);
                 }
 
@@ -1633,11 +1660,15 @@
                 for template_const_name in template_associated_consts.keys() {
                     debug!("   {template_const_name} != {name}");
                 }
+            } else {
+                debug!("Type {ty} is not monomorph of {other_ty}");
             }
 
             if !ty.can_decay_to(other_ty, self).unwrap_or(false) {
-                trace!("Type {other_ty} does not equal {ty}");
+                debug!("Type {other_ty} does not equal {ty}");
                 continue;
+            } else {
+                debug!("Type {other_ty} equals {ty}");
             }
             if let Some((constant, expr_ty)) = consts.get(name) {
                 let constant = constant.clone();
@@ -1648,7 +1679,6 @@
                 return Some(expr_ty);
             }
         }
-        trace!("Could not find associated const {name} of type {ty} in {self}");
         drop(associated_constants);
 
         if let Type::Type(inner_ty) = ty {
@@ -1666,11 +1696,12 @@
                 return Some(ty);
             }
         }
+        error!("Could not find associated const {name} of type {ty} in {self}");
         None
     }
 
     pub fn get_associated_const(&self, ty: &Type, name: &str) -> Option<(ConstExpr, Type)> {
-        trace!(
+        debug!(
             "Getting associated const {name} of type {ty} in {self} with types {:?}",
             self.types
         );
@@ -1692,7 +1723,7 @@
                 let monomorph = ty.clone();
                 let mut symbols = HashMap::new();
                 let ty_params = template.get_template_params(self);
-                let ty_param_set = ty_params.clone().into_iter().collect::<HashSet<_>>();
+                let ty_param_set = ty_params.clone().into_iter().map(|x| x.0).collect::<HashSet<_>>();
                 if monomorph
                     .get_monomorph_template_args(
                         &template.strip_template(self),
@@ -1705,16 +1736,16 @@
                     debug!("Failed to get monomorph template args for {monomorph} of {template}");
                     continue;
                 }
-                for (symbol, ty) in &symbols {
-                    debug!("----> {symbol} == {ty}");
+                for (symbol, (ty, expected)) in &symbols {
+                    debug!("----> {symbol} == {ty}, {expected:?}");
                 }
                 let template_associated_consts = consts.clone();
                 let mut ty_args = Vec::new();
-                for ty_param in &ty_params {
-                    if let Some(arg) = symbols.get(ty_param) {
+                for (ty_param, _) in &ty_params {
+                    if let Some((arg, _)) = symbols.get(ty_param) {
                         ty_args.push(arg.clone());
                     } else {
-                        continue;
+                        debug!("Could not find symbol {ty_param}");
                     }
                 }
 
@@ -1727,7 +1758,7 @@
                 if let Some((const_expr, const_ty)) = template_associated_consts.get(name) {
                     debug!("Found cached associated const pair: {const_expr} with type {const_ty}");
                     let mut result_ty = const_ty.apply(ty_args.clone());
-                    result_ty = match result_ty.simplify_until_simple(self) {
+                    result_ty = match result_ty.simplify_until_simple(self, true) {
                         Ok(result) => {
                             debug!("Found associated const {name} of type {ty} = {result}");
                             result
@@ -1747,8 +1778,8 @@
                 debug!("Could not find associated const {name} of type {ty} in {template}");
                 // return self.get_associated_const(&monomorph, name);
             } else {
-                // info!("Type {ty} is not monomorph of {other_ty}");
-            }
+                debug!("Type {ty} is not monomorph of {other_ty}");
+            }
 
             if !ty.can_decay_to(other_ty, self).unwrap_or(false) {
                 trace!("Type {other_ty} does not equal {ty}");
@@ -1852,8 +1883,8 @@
     }
 
     pub(super) fn has_any_associated_const(&self, ty: &Type) -> bool {
-        trace!("Checking if type {ty} has any associated constants");
-        let associated_constants = self.associated_constants.read().unwrap();
+        // trace!("Checking if type {ty} has any associated constants");
+        let associated_constants = self.associated_constants.read().unwrap();
         if let Some(consts) = associated_constants.get(ty) {
             if !consts.is_empty() {
                 return true;
@@ -1865,8 +1896,8 @@
                 continue;
             }
             if !ty.can_decay_to(other_ty, self).unwrap_or(false) {
-                trace!("Type {other_ty} does not equal {ty}");
-                continue;
+                // trace!("Type {other_ty} does not equal {ty}");
+                continue;
             }
             trace!("Found eligible type {other_ty} for {ty}");
             if !consts.is_empty() {
@@ -1884,7 +1915,7 @@
     ) -> Result<(), Error> {
         debug!("Adding monomorphized associated constants of type {template} to {monomorph} with type arguments {ty_args:?} to environment");
 
-        let monomorph = if let Ok(simplified) = monomorph.simplify_until_simple(self) {
+        let monomorph = if let Ok(simplified) = monomorph.simplify_until_simple(self, false) {
             debug!("Simplified {monomorph} to {simplified}");
             simplified
         } else {
@@ -1951,7 +1982,7 @@
             // Strip off the template parameters from the type arguments.
             let mono_const = if let ConstExpr::Template(ty_params, cexpr) = const_expr {
                 let mut tmp = *cexpr.clone();
-                for (param, arg) in ty_params.iter().zip(ty_args.iter()) {
+                for ((param, _), arg) in ty_params.iter().zip(ty_args.iter()) {
                     tmp.substitute(param, arg);
                 }
                 tmp
@@ -1976,7 +2007,7 @@
         expr: ConstExpr,
     ) -> Result<(), Error> {
         let associated_const_name = associated_const_name.to_string();
-        trace!("Defining associated const {associated_const_name} as {expr} to type {ty}");
+        debug!("Defining associated const {associated_const_name} as {expr} to type {ty}");
         let expr_ty = expr.get_type(self)?;
         let mut associated_constants = self.associated_constants.write().unwrap();
         associated_constants
@@ -2084,7 +2115,7 @@
                     // if !self.types.contains_key(&name) {
                     self.define_const(&name, access.clone());
                     if let Ok(Type::Type(ty)) = access.get_type(self) {
-                        self.define_type(name, *ty);
+                        self.define_type(&name, *ty);
                     }
                 }
             }
@@ -2163,7 +2194,9 @@
 
                     for (name, associated_const) in impls {
                         let templated_const =
-                            associated_const.template(supplied_param_symbols.clone());
+                            // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect());
+                            // associated_const.template(template_params.clone());
+                            associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect());
                         self.add_associated_const(*template.clone(), name, templated_const)?;
                     }
                 } else {
@@ -2305,19 +2338,27 @@
     /// Define a type with a given name under this environment.
     pub(super) fn define_type(&mut self, name: impl ToString, ty: Type) {
         let name = name.to_string();
-
+        trace!("Defining type {name} as {ty}");
+        if ty.is_const_param() {
+            if let Ok(ty) = ty.clone().simplify_until_const_param(self, false) {
+                self.define_const(&name, ty);
+            }
+        }
         match &ty {
             Type::Symbol(sym) if sym == &name => {
                 trace!("Defining type {ty} to itself as {name}");
             }
             _ => {
-                trace!("Defining type {name} as {ty}");
                 Arc::make_mut(&mut self.consts).insert(name.clone(), ConstExpr::Type(ty.clone()));
-                Arc::make_mut(&mut self.types).insert(name, ty.clone());
+                Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone());
 
-                if let Ok(simplified) = ty.simplify_until_concrete(self) {
+                if let Ok(simplified) = ty.simplify_until_concrete(self, false) {
                     if let Ok(size) = simplified.get_size(self) {
-                        self.set_precalculated_size(simplified, size);
+                        self.set_precalculated_size(simplified.clone(), size);
+                    }
+                    if let Type::ConstParam(cexpr) = simplified {
+                        trace!("Found const param \"{name}\": {cexpr}");
+                        self.define_const(&name, *cexpr);
                     }
                 }
             }
@@ -2351,7 +2392,7 @@
         }
 
         for (_, ty) in types {
-            if let Ok(simplified) = ty.simplify_until_concrete(self) {
+            if let Ok(simplified) = ty.simplify_until_concrete(self, false) {
                 if let Ok(size) = simplified.get_size(self) {
                     self.set_precalculated_size(simplified, size);
                 } else {
@@ -2371,6 +2412,7 @@
     /// Define a constant with a given name under this environment.
     pub(super) fn define_const(&mut self, name: impl ToString, e: ConstExpr) {
         let name = name.to_string();
+        trace!("Defining constant {name} as {e}");
 
         /*
         Removed this code in favor of using Declaration::FromImport
@@ -2527,6 +2569,13 @@
         // so that the next variable is allocated directly after this variable.
         debug!("Defining variable {var} of type {ty} at {offset} in\n{self}");
         self.fp_offset += size;
+
+        let ty = match ty {
+            Type::Type(ty) => *ty,
+            Type::ConstParam(ty) => ty.get_type(self)?,
+            other => other
+        };
+        
         // Store the variable's type and offset in the environment.
         Arc::make_mut(&mut self.vars).insert(var, (mutability, ty, offset));
         // Return the offset of the variable from the frame pointer.
@@ -2586,8 +2635,7 @@
 
 impl Display for Env {
     fn fmt(&self, f: &mut Formatter) -> FmtResult {
-        // return Ok(());
-        writeln!(f, "Env")?;
+        writeln!(f, "Env")?;
         writeln!(f, "   Types:")?;
         for (name, ty) in self.types.iter() {
             writeln!(f, "      {}: {}", name, ty)?;
@@ -2595,11 +2643,11 @@
             if constants.is_empty() {
                 continue;
             }
-            // writeln!(f, "         Associated constants:")?;
-            // for (name, cexpr) in constants {
-            //     writeln!(f, "            {}: {}", name, cexpr)?;
-            // }
-        }
+            writeln!(f, "         Associated constants:")?;
+            for (name, cexpr) in constants {
+                writeln!(f, "            {}: {}", name, cexpr)?;
+            }
+        }
         // writeln!(f, "   Constants:")?;
         // for (i, (name, e)) in self.consts.iter().enumerate() {
         //     writeln!(f, "      {i}. {}: {}", name, e)?;
diff --git a/docs/src/sage/lir/error.rs.html b/docs/src/sage/lir/error.rs.html
index 15ea0bad..3a73f628 100644
--- a/docs/src/sage/lir/error.rs.html
+++ b/docs/src/sage/lir/error.rs.html
@@ -345,6 +345,13 @@
 344
 345
 346
+347
+348
+349
+350
+351
+352
+353
 
use super::{
     Annotation, AssignOp, BinaryOp, ConstExpr, Expr, Mutability, Pattern, PolyProcedure, TernaryOp,
     Type, UnaryOp,
@@ -364,7 +371,11 @@
     ),
 
     UnimplementedOperator(String),
-
+    /// An error caused by unexpectedly passing a constant parameter to a template.
+    UnexpectedConstParam {
+        found: Type,
+        expr: Expr
+    },
     /// An error caused by trying to assemble invalid code generated by the compiler.
     /// This should be taken seriously, unless the error is due to an invalid handwritten builtin.
     AssemblyError(crate::asm::Error),
@@ -505,6 +516,9 @@
 impl Display for Error {
     fn fmt(&self, f: &mut Formatter) -> FmtResult {
         match self {
+            Self::UnexpectedConstParam { found, expr } => {
+                write!(f, "unexpected constant parameter {found} in expression {expr}")
+            }
             Self::Annotated(err, _) => {
                 write!(f, "{err}")
             }
diff --git a/docs/src/sage/lir/expr/const_expr.rs.html b/docs/src/sage/lir/expr/const_expr.rs.html
index 95fb0085..bdb32d93 100644
--- a/docs/src/sage/lir/expr/const_expr.rs.html
+++ b/docs/src/sage/lir/expr/const_expr.rs.html
@@ -1150,6 +1150,139 @@
 1149
 1150
 1151
+1152
+1153
+1154
+1155
+1156
+1157
+1158
+1159
+1160
+1161
+1162
+1163
+1164
+1165
+1166
+1167
+1168
+1169
+1170
+1171
+1172
+1173
+1174
+1175
+1176
+1177
+1178
+1179
+1180
+1181
+1182
+1183
+1184
+1185
+1186
+1187
+1188
+1189
+1190
+1191
+1192
+1193
+1194
+1195
+1196
+1197
+1198
+1199
+1200
+1201
+1202
+1203
+1204
+1205
+1206
+1207
+1208
+1209
+1210
+1211
+1212
+1213
+1214
+1215
+1216
+1217
+1218
+1219
+1220
+1221
+1222
+1223
+1224
+1225
+1226
+1227
+1228
+1229
+1230
+1231
+1232
+1233
+1234
+1235
+1236
+1237
+1238
+1239
+1240
+1241
+1242
+1243
+1244
+1245
+1246
+1247
+1248
+1249
+1250
+1251
+1252
+1253
+1254
+1255
+1256
+1257
+1258
+1259
+1260
+1261
+1262
+1263
+1264
+1265
+1266
+1267
+1268
+1269
+1270
+1271
+1272
+1273
+1274
+1275
+1276
+1277
+1278
+1279
+1280
+1281
+1282
+1283
+1284
 
//! # Constant Expressions
 //!
 //! Constant expressions are expressions that can be evaluated at compile time.
@@ -1181,6 +1314,8 @@
     /// Bind a list of types in a constant expression.
     Declare(Box<Declaration>, Box<Self>),
 
+    /// The expression equal to any other expression.
+    Any,
     /// The unit, or "void" instance.
     None,
     /// The null pointer constant.
@@ -1238,7 +1373,7 @@
     /// Monomorphize a constant expression with some type arguments.
     Monomorphize(Box<Self>, Vec<Type>),
 
-    Template(Vec<String>, Box<Self>),
+    Template(Vec<(String, Option<Type>)>, Box<Self>),
 
     /// Get an attribute of a constant expression.
     Member(Box<Self>, Box<Self>),
@@ -1255,7 +1390,23 @@
         Self::Monomorphize(Box::new(self), ty_args)
     }
 
-    pub fn template(&self, params: Vec<String>) -> Self {
+    pub fn equals(&self, other: &Self, env: &Env) -> bool {
+        debug!("{self} == {other} in const?");
+        match (self, other) {
+            (Self::Any, _) | (_, Self::Any) => true,
+            (Self::Type(Type::Any), _) | (_, Self::Type(Type::Any)) => true,
+            (Self::Symbol(name), other) | (other, Self::Symbol(name)) => {
+                if let Some(c) = env.get_const(name) {
+                    c.equals(other, env)
+                } else {
+                    &Self::Symbol(name.clone()) == other
+                }
+            }
+            (a, b) => a == b,
+        }
+    }
+
+    pub fn template(&self, params: Vec<(String, Option<Type>)>) -> Self {
         match self {
             Self::Proc(proc) => Self::PolyProc(PolyProcedure::from_mono(proc.clone(), params)),
             Self::Declare(decls, inner) => inner.template(params).with(decls.clone()),
@@ -1381,7 +1532,7 @@
 
                 Self::Member(container, member) => {
                     let container_ty = container.get_type_checked(env, i)?;
-                    trace!("Member access on type: {container_ty}: {container} . {member}");
+                    debug!("Member access on type: {container_ty:?}: {container} . {member}");
                     Ok(match (*container.clone(), *member.clone()) {
                         (Self::Annotated(inner, metadata), member) => {
                             Self::Member(inner, member.into())
@@ -1448,7 +1599,23 @@
                             trace!("Found struct field: {container_ty} . {member}");
                             fields[&name].clone().eval_checked(env, i)?
                         }
+                        (Self::Type(ty), Self::Int(n)) => {
+                            warn!("Getting member {n} from {ty}");
+                            if ty.is_const_param() {
+                                let cexpr = ty.simplify_until_const_param(env, false)?;
+                                return cexpr.field(Self::Int(n)).eval_checked(env, i)
+                            } else {
+                                // return Err(Error::MemberNotFound((*container).into(), *member));
+                                return Ok(Self::Type(ty).field(Self::Int(n)));
+                            }
+                        }
                         (Self::Type(ty), Self::Symbol(name)) => {
+                            debug!("Getting member {name} from {ty}");
+                            if ty.is_const_param() {
+                                let cexpr = ty.simplify_until_const_param(env, false)?;
+                                return cexpr.eval_checked(env, i)?.field(Self::Symbol(name)).eval_checked(env, i)
+                            }
+
                             if let Some((constant, _)) = env.get_associated_const(&ty, &name) {
                                 constant.eval_checked(env, i)?
                             } else {
@@ -1462,7 +1629,7 @@
                                 error!(
                                     "Type member access not implemented for: {container_ty} . {member}, symbol {name} not defined"
                                 );
-                                return Err(Error::SymbolNotDefined(name));
+                                return Ok(Self::Type(ty).field(Self::Symbol(name)));
                             }
                         }
 
@@ -1477,7 +1644,8 @@
                             }
                             debug!("Member access not implemented for: {container_ty} . {member}");
                             return Err(Error::MemberNotFound((*container).into(), member));
-                        }
+                            // return container.eval_checked(env, i)?.field(member).eval(env)
+                        }
                         _ => {
                             if let Ok(Some((constant, _))) = member
                                 .clone()
@@ -1492,7 +1660,9 @@
                         }
                     })
                 }
-                Self::None
+                
+                Self::Any
+                | Self::None
                 | Self::Null
                 | Self::Cell(_)
                 | Self::Int(_)
@@ -1504,8 +1674,19 @@
                 | Self::StandardBuiltin(_)
                 | Self::FFIProcedure(_)
                 | Self::Proc(_)
-                | Self::PolyProc(_)
-                | Self::Type(_) => Ok(self),
+                | Self::PolyProc(_) => Ok(self),
+                Self::Type(ty) => {
+                    if ty.is_const_param() {
+                        let cexpr = ty.simplify_until_const_param(env, false)?;
+                        cexpr.eval_checked(env, i)
+                    } else {
+                        Ok(Self::Type(ty.clone()))
+                    }
+                    // match ty.clone().simplify(env)? {
+                    //     Type::ConstParam(cexpr) => ,
+                    //     ty => Ok(Self::Type(ty.clone()))
+                    // }
+                }
 
                 Self::Declare(bindings, expr) => {
                     debug!("Declaring compile time bindings: {bindings}");
@@ -1521,12 +1702,14 @@
                         }
                         let mut ret = ret.clone();
 
-                        for (param, ty_arg) in params.iter().zip(ty_args.iter()) {
+                        for ((param, _), ty_arg) in params.iter().zip(ty_args.iter()) {
                             ret.substitute(param, ty_arg);
                         }
                         *ret
                     }
-                    Self::PolyProc(proc) => Self::Proc(proc.monomorphize(ty_args.clone(), env)?),
+                    Self::PolyProc(proc) => {
+                        Self::Proc(proc.monomorphize(ty_args.clone(), env)?)
+                    },
                     Self::Declare(bindings, expr) => {
                         let mut new_env = env.clone();
                         new_env.add_compile_time_declaration(&bindings)?;
@@ -1538,6 +1721,7 @@
                         .monomorphize(ty_args.clone())
                         .eval_checked(env, i)
                         .map_err(|x| x.annotate(metadata))?,
+
                     _other => {
                         Self::Monomorphize(Box::new(expr.eval_checked(env, i)?), ty_args.clone())
                     }
@@ -1666,7 +1850,10 @@
             // If not, evaluate it and see if it's a symbol.
             other => match other.eval(env)? {
                 Self::Symbol(name) => Ok(name),
-                other => Err(Error::NonSymbol(other)),
+                other => {
+                    // error!("Could not convert {other} to symbol");
+                    Err(Error::NonSymbol(other))
+                },
             },
         }
     }
@@ -1682,15 +1869,40 @@
     fn get_type_checked(&self, env: &Env, i: usize) -> Result<Type, Error> {
         trace!("Getting type from constexpr: {self}");
         Ok(match self.clone() {
+            Self::Any => Type::Any,
             Self::Template(params, expr) => {
                 let mut new_env = env.clone();
-                for param in &params {
-                    new_env.define_type(param, Type::Symbol(param.clone()));
+                for (param, ty) in &params {
+                    if let Some(ty) = ty {
+                        new_env.define_type(param, ty.clone());
+                    } else {
+                        new_env.define_type(param, Type::Symbol(param.clone()));
+                    }
                 }
                 Type::Poly(params, expr.get_type_checked(&new_env, i)?.into())
             }
 
-            Self::Type(t) => Type::Type(t.into()),
+            Self::Type(t) => {
+                debug!("Getting type of type {t}");
+                let result = if t.is_const_param() {
+                    let cexpr = t.simplify_until_const_param(env, false)?;
+                    cexpr.get_type(env)?
+                } else {
+                    Type::Type(t.into())
+                };
+                // let result = match t.clone().simplify(env)? {
+                //     Type::ConstParam(cexpr) => cexpr.get_type(env)?,
+                //     t => Type::Type(t.into())
+                // };
+                // let result = if let Type::ConstParam(cexpr) = t.clone().simplify(env)? {
+                //     // Type::ConstParam(cexpr.eval(env)?.into())
+                //     cexpr.get_type(env)?
+                // } else {
+                //     Type::Type(t.clone().into())
+                // };
+                // debug!("Got type of type {t} = {result}");
+                result
+            }
 
             Self::Member(val, field) => {
                 // Get the field to access (as a symbol)
@@ -1700,10 +1912,11 @@
                 let as_int = field.clone().as_int(env);
 
                 let val_type = val.get_type_checked(env, i)?;
-                debug!("Got type of container access {val} . {field}\nContainer: {val_type}");
+                debug!("Got type of container access {val} . {field}\nContainer: {val_type:?}, is_const_param: {}", val_type.is_const_param());
                 // val_type.add_monomorphized_associated_consts(env)?;
                 // Get the type of the value to get the member of.
-                match &val_type.simplify_until_concrete(env)? {
+                let val_type = val_type.simplify_until_concrete(env, false)?;
+                match &val_type {
                     Type::Unit(_unit_name, inner_ty) => {
                         // Get the type of the field.
                         env.get_type_of_associated_const(inner_ty, &as_symbol?)
@@ -1712,7 +1925,7 @@
 
                     Type::Pointer(_found_mutability, t) => {
                         let val = &Expr::ConstExpr(*val);
-                        let t = t.clone().simplify_until_concrete(env)?;
+                        let t = t.clone().simplify_until_concrete(env, false)?;
                         match t.get_member_offset(&field, val, env) {
                             Ok((t, _)) => t,
                             Err(_) => {
@@ -1727,10 +1940,18 @@
                     }
 
                     Type::Type(ty) => {
-                        // Get the associated constant expression's type.
-                        env.get_type_of_associated_const(ty, &as_symbol?)
-                            .ok_or(Error::MemberNotFound((*val.clone()).into(), *field.clone()))?
-                    }
+                        debug!("Got type {ty}");
+                        if ty.is_const_param() {
+                            ty.simplify_until_const_param(env, false)?.eval(env)?.field(*field).get_type_checked(env, i)?
+                        } else {
+                            // Get the associated constant expression's type.
+                            if let Ok((ty, _)) = ty.get_member_offset(&field, &Expr::from(self.clone()), env) {
+                                return Ok(ty);
+                            }
+                            env.get_type_of_associated_const(ty, &as_symbol?)
+                                .ok_or(Error::MemberNotFound((*val.clone()).into(), *field.clone()))?
+                        }
+                    }
                     // If we're accessing a member of a tuple,
                     // we use the `as_int` interpretation of the field.
                     // This is because tuples are accesed by integer index.
@@ -1859,20 +2080,38 @@
                             .simplify_until_type_checks(env);
                     }
                     Self::Template(params, ret) => {
+                        debug!("Getting type of monomorphized template {self}");
                         if params.len() != ty_args.len() {
                             return Err(Error::InvalidMonomorphize(expr));
                         }
 
                         let mut ret = ret.clone();
-
-                        for (param, ty_arg) in params.iter().zip(ty_args.iter()) {
-                            ret.substitute(param, ty_arg);
+                        let mut new_env = env.clone();
+                        for ((param, ty), ty_arg) in params.iter().zip(ty_args.iter()) {
+                            if let Type::ConstParam(cexpr) = ty_arg {
+                                if let Some(expected_ty) = ty {
+                                    let expected = expected_ty.clone();
+                                    let found = cexpr.get_type_checked(env, i)?;
+                                    if !found.equals(expected_ty, env)? {
+                                        error!("Mismatch in expected type for constant parameter");
+                                        return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() })
+                                    }
+                                    ret.substitute(param, ty_arg)
+                                }
+                                ret.substitute(param, ty_arg);
+                                new_env.define_const(param, *cexpr.clone());
+                            } else {
+                                ret.substitute(param, ty_arg);
+                                new_env.define_type(param, ty_arg.clone());
+                            }
                         }
-                        ret.get_type_checked(env, i)?
-                            .simplify_until_type_checks(env)?
-                    }
+                        debug!("Result: {ret}");
+                        let ret = ret.get_type_checked(&new_env, i)?
+                            .simplify_until_poly(&new_env, false)?;
+                        ret
+                    }
                     _ => {
-                        // warn!("Monomorphizing non-template: {expr}");
+                        // debug!("Monomorphizing non-template: {expr}");
                         Type::Apply(Box::new(template_ty.clone()), ty_args.clone())
                     }
                 };
@@ -1962,49 +2201,49 @@
         })
     }
 
-    fn substitute(&mut self, name: &str, subsitution: &Type) {
+    fn substitute(&mut self, name: &str, substitution: &Type) {
         match self {
             Self::Type(t) => {
-                *t = t.substitute(name, subsitution);
+                *t = t.substitute(name, substitution);
             }
 
             Self::Template(params, ret) => {
-                if params.contains(&name.to_string()) {
+                if params.iter().map(|x| x.0.clone()).collect::<Vec<_>>().contains(&name.to_string()) {
                     return;
                 }
-                ret.substitute(name, subsitution);
+                ret.substitute(name, substitution);
             }
             Self::Member(container, member) => {
-                container.substitute(name, subsitution);
-                member.substitute(name, subsitution);
+                container.substitute(name, substitution);
+                member.substitute(name, substitution);
             }
             Self::Annotated(expr, _) => {
-                expr.substitute(name, subsitution);
+                expr.substitute(name, substitution);
             }
             Self::As(expr, cast_ty) => {
-                expr.substitute(name, subsitution);
-                *cast_ty = cast_ty.substitute(name, subsitution);
+                expr.substitute(name, substitution);
+                *cast_ty = cast_ty.substitute(name, substitution);
             }
             Self::Declare(bindings, expr) => {
-                bindings.substitute(name, subsitution);
-                expr.substitute(name, subsitution);
+                bindings.substitute(name, substitution);
+                expr.substitute(name, substitution);
             }
             Self::Monomorphize(expr, ty_args) => {
-                expr.substitute(name, subsitution);
+                expr.substitute(name, substitution);
                 for ty_arg in ty_args {
-                    *ty_arg = ty_arg.substitute(name, subsitution);
+                    *ty_arg = ty_arg.substitute(name, substitution);
                 }
             }
             Self::TypeOf(expr) => {
-                expr.substitute(name, subsitution);
+                expr.substitute(name, substitution);
             }
             Self::Null => {}
             Self::None => {}
             Self::SizeOfType(inner_ty) => {
-                *inner_ty = inner_ty.substitute(name, subsitution);
+                *inner_ty = inner_ty.substitute(name, substitution);
             }
             Self::SizeOfExpr(expr) => {
-                expr.substitute(name, subsitution);
+                expr.substitute(name, substitution);
             }
             Self::Cell(_) => {}
             Self::Int(_) => {}
@@ -2012,49 +2251,53 @@
             Self::Char(_) => {}
             Self::Bool(_) => {}
             Self::Of(enum_type, _) => {
-                *enum_type = enum_type.substitute(name, subsitution);
+                *enum_type = enum_type.substitute(name, substitution);
             }
             Self::Tuple(items) => {
                 for item in items {
-                    item.substitute(name, subsitution);
+                    item.substitute(name, substitution);
                 }
             }
             Self::Array(items) => {
                 for item in items {
-                    item.substitute(name, subsitution);
+                    item.substitute(name, substitution);
                 }
             }
             Self::Struct(fields) => {
                 for item in fields.values_mut() {
-                    item.substitute(name, subsitution);
+                    item.substitute(name, substitution);
                 }
             }
             Self::Union(inner, _, expr) => {
-                *inner = inner.substitute(name, subsitution);
-                expr.substitute(name, subsitution);
+                *inner = inner.substitute(name, substitution);
+                expr.substitute(name, substitution);
             }
             Self::EnumUnion(inner, _, expr) => {
-                *inner = inner.substitute(name, subsitution);
-                expr.substitute(name, subsitution);
+                *inner = inner.substitute(name, substitution);
+                expr.substitute(name, substitution);
             }
             Self::PolyProc(proc) => {
-                proc.substitute(name, subsitution);
+                proc.substitute(name, substitution);
             }
             Self::Proc(proc) => {
-                proc.substitute(name, subsitution);
+                proc.substitute(name, substitution);
             }
             Self::CoreBuiltin(builtin) => {
-                builtin.substitute(name, subsitution);
+                builtin.substitute(name, substitution);
             }
             Self::StandardBuiltin(builtin) => {
-                builtin.substitute(name, subsitution);
+                builtin.substitute(name, substitution);
             }
             Self::FFIProcedure(ffi_proc) => {
-                ffi_proc.substitute(name, subsitution);
+                ffi_proc.substitute(name, substitution);
             }
-            Self::Symbol(_) => {
+            Self::Symbol(symbol_name) if symbol_name == name => {
                 // A constant symbol cannot be substituted for a type variable.
-            }
+                debug!("Subbing {self} for {substitution}");
+                *self = ConstExpr::Type(substitution.clone());
+                debug!("Subbed into {self}");
+            }
+            _ => {}
         }
     }
 }
@@ -2062,10 +2305,14 @@
 impl fmt::Display for ConstExpr {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         match self {
+            Self::Any => write!(f, "any"),
             Self::Template(params, expr) => {
                 write!(f, "<")?;
-                for (i, param) in params.iter().enumerate() {
+                for (i, (param, ty)) in params.iter().enumerate() {
                     write!(f, "{param}")?;
+                    if let Some(ty) = ty {
+                        write!(f, ": {ty}")?;
+                    }
                     if i < params.len() - 1 {
                         write!(f, ", ")?
                     }
@@ -2296,9 +2543,27 @@
                 state.write_u8(28);
                 ty.hash(state);
             }
+            Self::Any => state.write_u8(29),
         }
     }
 }
 
 impl Eq for ConstExpr {}
-
\ No newline at end of file + +impl From<PolyProcedure> for ConstExpr { + fn from(value: PolyProcedure) -> Self { + Self::PolyProc(value) + } +} + +impl From<Procedure> for ConstExpr { + fn from(value: Procedure) -> Self { + Self::Proc(value) + } +} + +impl From<Type> for ConstExpr { + fn from(value: Type) -> Self { + Self::Type(value) + } +} \ No newline at end of file diff --git a/docs/src/sage/lir/expr/declaration.rs.html b/docs/src/sage/lir/expr/declaration.rs.html index 030490cb..120e6aa5 100644 --- a/docs/src/sage/lir/expr/declaration.rs.html +++ b/docs/src/sage/lir/expr/declaration.rs.html @@ -1010,6 +1010,8 @@ 1009 1010 1011 +1012 +1013
use super::{PolyProcedure, Procedure};
 use crate::{
     asm::{AssemblyProgram, CoreOp, Location, SP},
@@ -1583,7 +1585,9 @@
 
                     for (name, associated_const) in impls {
                         let templated_const =
-                            associated_const.template(supplied_param_symbols.clone());
+                            // associated_const.template(supplied_param_symbols.clone().into_iter().map(|x| (x, None)).collect());
+                            // associated_const.template(template_params.clone());
+                            associated_const.template(template_params.clone().into_iter().zip(supplied_param_symbols.clone().into_iter()).map(|((_, ty), param)| (param, ty)).collect());
                         new_env.add_associated_const(
                             *template.clone(),
                             name,
diff --git a/docs/src/sage/lir/expr/ops/arithmetic/mod.rs.html b/docs/src/sage/lir/expr/ops/arithmetic/mod.rs.html
index 5a75c766..6cf9aa79 100644
--- a/docs/src/sage/lir/expr/ops/arithmetic/mod.rs.html
+++ b/docs/src/sage/lir/expr/ops/arithmetic/mod.rs.html
@@ -397,6 +397,51 @@
 396
 397
 398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
 
//! # Arithmetic Operations
 //!
 //! This module implements several arithmetic operations:
@@ -431,6 +476,147 @@
 }
 
 impl BinaryOp for Arithmetic {
+    /// Compiles the operation on the given expressions.
+    fn compile(
+        &self,
+        lhs: &Expr,
+        rhs: &Expr,
+        env: &mut Env,
+        output: &mut dyn AssemblyProgram,
+    ) -> Result<(), Error> {
+        if let Expr::Annotated(lhs, metadata) = lhs {
+            return self
+                .compile(lhs, rhs, env, output)
+                .map_err(|err| err.annotate(metadata.clone()));
+        }
+        if let Expr::Annotated(rhs, metadata) = rhs {
+            return self
+                .compile(lhs, rhs, env, output)
+                .map_err(|err| err.annotate(metadata.clone()));
+        }
+
+        // trace!("Compiling binary op: {lhs} {self} {rhs} ({self:?})");
+        lhs.clone().compile_expr(env, output)?;
+        rhs.clone().compile_expr(env, output)?;
+        // self.compile_types(&, &rhs.get_type(env)?, env, output)?;
+        let lhs_expr = lhs;
+        let rhs_expr = rhs;
+        let lhs = &lhs_expr.get_type(env)?;
+        let rhs = &rhs_expr.get_type(env)?;
+
+        if let (Type::Array(_, _), Arithmetic::Multiply, Type::Int) = (lhs, self, rhs) {
+            if !rhs.equals(&Type::Int, env)? {
+                return Err(Error::MismatchedTypes { expected: Type::Int, found: rhs.clone(), expr: rhs_expr.clone() })
+            }
+
+            // Copy the loop RHS times.
+            // This will just evaluate the array, evaluate the int, and then repeatedly
+            // copy the array back onto the stack `rhs` times.
+            let arr_size = lhs.get_size(env)?;
+            // Copy the integer into a register.
+            output.op(CoreOp::Many(vec![
+                // Pop into B
+                CoreOp::Pop(Some(B), 1),
+                // Store the address of the array in A.
+                CoreOp::GetAddress {
+                    addr: SP.deref().offset(1 - arr_size as isize),
+                    dst: A,
+                },
+                // While B != 0
+                CoreOp::Dec(B),
+                CoreOp::While(B),
+                // Push the array back onto the stack, starting at A
+                CoreOp::Push(A.deref(), arr_size),
+                // Decrement B
+                CoreOp::Dec(B),
+                CoreOp::End,
+            ]));
+
+            return Ok(());
+        }
+
+        let src = SP.deref();
+        let dst = SP.deref().offset(-1);
+        let tmp = SP.deref().offset(1);
+        // Get the respective core operation for the current expression.
+        let core_op = match self {
+            Self::Add => CoreOp::Add { src, dst },
+            Self::Subtract => CoreOp::Sub { src, dst },
+            Self::Multiply => CoreOp::Mul { src, dst },
+            Self::Divide => CoreOp::Div { src, dst },
+            Self::Remainder => CoreOp::Rem { src, dst },
+            Self::Power => CoreOp::Many(vec![
+                // We can't use the `Pow` operation, because it's not supported by
+                // the core variant. So we have to do it with a loop.
+                CoreOp::Move {
+                    src: dst.clone(),
+                    dst: tmp.clone(),
+                },
+                CoreOp::Set(dst.clone(), 1),
+                CoreOp::While(src.clone()),
+                CoreOp::Mul { src: tmp, dst },
+                CoreOp::Dec(src),
+                CoreOp::End,
+            ]),
+        };
+        let src = SP.deref();
+        let dst = SP.deref().offset(-1);
+        // Get the respective standard operation for the current expression.
+        let std_op = match self {
+            Self::Add => StandardOp::Add { src, dst },
+            Self::Subtract => StandardOp::Sub { src, dst },
+            Self::Multiply => StandardOp::Mul { src, dst },
+            Self::Divide => StandardOp::Div { src, dst },
+            Self::Remainder => StandardOp::Rem { src, dst },
+            Self::Power => StandardOp::Pow { src, dst },
+        };
+        // Now, perform the correct assembly expressions based on the types of the two expressions.
+        match (lhs, rhs) {
+            // If a `Float` and a `Cell` are used, we just interpret the `Cell` as a `Float`.
+            (Type::Cell, Type::Float) | (Type::Float, Type::Cell) => {
+                output.std_op(std_op)?;
+            }
+            // Two floats are used as floats.
+            (Type::Float, Type::Float) => {
+                output.std_op(std_op)?;
+            }
+            // An integer used with a float is promoted, and returns a float.
+            (Type::Int, Type::Float) => {
+                output.std_op(StandardOp::ToFloat(SP.deref().offset(-1)))?;
+                output.std_op(std_op)?;
+            }
+            (Type::Float, Type::Int) => {
+                output.std_op(StandardOp::ToFloat(SP.deref()))?;
+                output.std_op(std_op)?;
+            }
+
+            // If cells and/or ints are used, we just use them as integers.
+            (Type::Int, Type::Int)
+            | (Type::Cell, Type::Cell)
+            | (Type::Cell, Type::Int)
+            | (Type::Int, Type::Cell) => {
+                output.op(core_op);
+            }
+
+            (Type::Unit(_name1, a_type), Type::Unit(_name2, b_type)) => {
+                return self.compile_types(a_type, b_type, env, output);
+            }
+
+            // Cannot do arithmetic on other pairs of types.
+            _ => {
+                return Err(Error::InvalidBinaryOpTypes(
+                    Box::new(*self),
+                    lhs.clone(),
+                    rhs.clone(),
+                ))
+            }
+        }
+        // Pop `b` off of the stack: we only needed it to evaluate
+        // the arithmetic and store the result to `a` on the stack.
+        output.op(CoreOp::Pop(None, 1));
+        Ok(())
+    }
+
     /// Can this binary operation be applied to the given types?
     fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result<bool, Error> {
         match (lhs, rhs) {
@@ -439,6 +625,7 @@
                 Ok(true)
             }
             (Type::Array(_, _), Type::Int) => Ok(matches!(self, Self::Multiply)),
+            (Type::Array(_, _), Type::Type(..)) => Ok(matches!(self, Self::Multiply)),
 
             (Type::Int | Type::Float | Type::Cell, Type::Cell)
             | (Type::Cell, Type::Int | Type::Float) => Ok(true),
@@ -474,8 +661,10 @@
                 .return_type(lhs, rhs, env)
                 .map_err(|e| e.annotate(metadata.clone()));
         }
+        let lhs_ty = lhs.get_type(env)?;
+        let rhs_ty = rhs.get_type(env)?;
 
-        Ok(match (lhs.get_type(env)?, rhs.get_type(env)?) {
+        let result = Ok(match (lhs_ty.discard_type_wrapper(), rhs_ty.discard_type_wrapper()) {
             (Type::Int, Type::Int) => Type::Int,
             (Type::Int, Type::Float) | (Type::Float, Type::Int) | (Type::Float, Type::Float) => {
                 Type::Float
@@ -483,19 +672,22 @@
             (Type::Int | Type::Float | Type::Cell, Type::Cell)
             | (Type::Cell, Type::Int | Type::Float) => Type::Cell,
 
-            (Type::Array(elem, size), Type::Int) => {
+            (Type::Array(elem, size), _other) => {
                 if let (Self::Multiply, Expr::ConstExpr(const_rhs)) = (self, rhs) {
                     let size = size.as_int(env)?;
-                    let n = const_rhs.clone().as_int(env)?;
-                    if n <= 0 {
-                        error!("Cannot multiply array {lhs} by {n} (not positive)");
-                        return Err(Error::InvalidBinaryOp(
-                            Box::new(*self),
-                            lhs.clone(),
-                            rhs.clone(),
-                        ));
+                    if let Ok(n) = const_rhs.clone().as_int(env) {
+                        if n <= 0 {
+                            error!("Cannot multiply array {lhs} by {n} (not positive)");
+                            return Err(Error::InvalidBinaryOp(
+                                Box::new(*self),
+                                lhs.clone(),
+                                rhs.clone(),
+                            ));
+                        }
+                        Type::Array(elem, Box::new(ConstExpr::Int(size * n)))
+                    } else {
+                        Type::Array(elem, Box::new(ConstExpr::Any))
                     }
-                    Type::Array(elem, Box::new(ConstExpr::Int(size * n)))
                 } else {
                     error!("Cannot multiply array {lhs} by {rhs} (not constant = {rhs:?})");
                     return Err(Error::InvalidBinaryOp(
@@ -519,6 +711,7 @@
             (Type::Unit(name1, a_type), Type::Unit(name2, b_type)) => {
                 // Make sure that the two units are the same.
                 if name1 != name2 {
+                    error!("{name1} is not {name2}");
                     return Err(Error::InvalidBinaryOp(
                         Box::new(*self),
                         lhs.clone(),
@@ -528,6 +721,7 @@
 
                 // Make sure that inner types are compatible.
                 if !a_type.equals(&b_type, env)? {
+                    error!("{a_type} is not {b_type}");
                     return Err(Error::InvalidBinaryOp(
                         Box::new(*self),
                         lhs.clone(),
@@ -537,14 +731,16 @@
 
                 Type::Unit(name1, a_type)
             }
-            _ => {
+            (a, b) => {
+                error!("Unhandled case {a} {self} {b}");
                 return Err(Error::InvalidBinaryOp(
                     Box::new(*self),
                     lhs.clone(),
                     rhs.clone(),
                 ))
             }
-        })
+        });
+        result
     }
 
     /// Evaluate this binary operation on the given constant values.
@@ -651,117 +847,11 @@
     /// Compile the binary operation.
     fn compile_types(
         &self,
-        lhs: &Type,
-        rhs: &Type,
-        env: &mut Env,
-        output: &mut dyn AssemblyProgram,
+        _lhs: &Type,
+        _rhs: &Type,
+        _env: &mut Env,
+        _output: &mut dyn AssemblyProgram,
     ) -> Result<(), Error> {
-        if let (Type::Array(_, _), Arithmetic::Multiply, Type::Int) = (lhs, self, rhs) {
-            // Copy the loop RHS times.
-            // This will just evaluate the array, evaluate the int, and then repeatedly
-            // copy the array back onto the stack `rhs` times.
-            let arr_size = lhs.get_size(env)?;
-            // Copy the integer into a register.
-            output.op(CoreOp::Many(vec![
-                // Pop into B
-                CoreOp::Pop(Some(B), 1),
-                // Store the address of the array in A.
-                CoreOp::GetAddress {
-                    addr: SP.deref().offset(1 - arr_size as isize),
-                    dst: A,
-                },
-                // While B != 0
-                CoreOp::Dec(B),
-                CoreOp::While(B),
-                // Push the array back onto the stack, starting at A
-                CoreOp::Push(A.deref(), arr_size),
-                // Decrement B
-                CoreOp::Dec(B),
-                CoreOp::End,
-            ]));
-
-            return Ok(());
-        }
-
-        let src = SP.deref();
-        let dst = SP.deref().offset(-1);
-        let tmp = SP.deref().offset(1);
-        // Get the respective core operation for the current expression.
-        let core_op = match self {
-            Self::Add => CoreOp::Add { src, dst },
-            Self::Subtract => CoreOp::Sub { src, dst },
-            Self::Multiply => CoreOp::Mul { src, dst },
-            Self::Divide => CoreOp::Div { src, dst },
-            Self::Remainder => CoreOp::Rem { src, dst },
-            Self::Power => CoreOp::Many(vec![
-                // We can't use the `Pow` operation, because it's not supported by
-                // the core variant. So we have to do it with a loop.
-                CoreOp::Move {
-                    src: dst.clone(),
-                    dst: tmp.clone(),
-                },
-                CoreOp::Set(dst.clone(), 1),
-                CoreOp::While(src.clone()),
-                CoreOp::Mul { src: tmp, dst },
-                CoreOp::Dec(src),
-                CoreOp::End,
-            ]),
-        };
-        let src = SP.deref();
-        let dst = SP.deref().offset(-1);
-        // Get the respective standard operation for the current expression.
-        let std_op = match self {
-            Self::Add => StandardOp::Add { src, dst },
-            Self::Subtract => StandardOp::Sub { src, dst },
-            Self::Multiply => StandardOp::Mul { src, dst },
-            Self::Divide => StandardOp::Div { src, dst },
-            Self::Remainder => StandardOp::Rem { src, dst },
-            Self::Power => StandardOp::Pow { src, dst },
-        };
-        // Now, perform the correct assembly expressions based on the types of the two expressions.
-        match (lhs, rhs) {
-            // If a `Float` and a `Cell` are used, we just interpret the `Cell` as a `Float`.
-            (Type::Cell, Type::Float) | (Type::Float, Type::Cell) => {
-                output.std_op(std_op)?;
-            }
-            // Two floats are used as floats.
-            (Type::Float, Type::Float) => {
-                output.std_op(std_op)?;
-            }
-            // An integer used with a float is promoted, and returns a float.
-            (Type::Int, Type::Float) => {
-                output.std_op(StandardOp::ToFloat(SP.deref().offset(-1)))?;
-                output.std_op(std_op)?;
-            }
-            (Type::Float, Type::Int) => {
-                output.std_op(StandardOp::ToFloat(SP.deref()))?;
-                output.std_op(std_op)?;
-            }
-
-            // If cells and/or ints are used, we just use them as integers.
-            (Type::Int, Type::Int)
-            | (Type::Cell, Type::Cell)
-            | (Type::Cell, Type::Int)
-            | (Type::Int, Type::Cell) => {
-                output.op(core_op);
-            }
-
-            (Type::Unit(_name1, a_type), Type::Unit(_name2, b_type)) => {
-                return self.compile_types(a_type, b_type, env, output);
-            }
-
-            // Cannot do arithmetic on other pairs of types.
-            _ => {
-                return Err(Error::InvalidBinaryOpTypes(
-                    Box::new(*self),
-                    lhs.clone(),
-                    rhs.clone(),
-                ))
-            }
-        }
-        // Pop `b` off of the stack: we only needed it to evaluate
-        // the arithmetic and store the result to `a` on the stack.
-        output.op(CoreOp::Pop(None, 1));
         Ok(())
     }
 
diff --git a/docs/src/sage/lir/expr/ops/comparison.rs.html b/docs/src/sage/lir/expr/ops/comparison.rs.html
index d204c26a..a254ef31 100644
--- a/docs/src/sage/lir/expr/ops/comparison.rs.html
+++ b/docs/src/sage/lir/expr/ops/comparison.rs.html
@@ -315,7 +315,7 @@
 impl BinaryOp for Comparison {
     /// Can this binary operation be applied to the given types?
     fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result<bool, Error> {
-        match (lhs, self, rhs) {
+        match (&lhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper(), self, &rhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper()) {
             (Type::Int, Self::LessThan, Type::Int)
             | (Type::Int, Self::LessThanOrEqual, Type::Int)
             | (Type::Int, Self::GreaterThan, Type::Int)
@@ -490,7 +490,7 @@
         let dst = SP.deref().offset(-1);
         let tmp = SP.deref().offset(1);
         // Now, perform the correct assembly expressions based on the types of the two expressions.
-        match (lhs, self, rhs) {
+        match (&lhs.clone().discard_type_wrapper(), self, &rhs.clone().discard_type_wrapper()) {
             // If a `Float` and a `Cell` are used, we just interpret the `Cell` as a `Float`.
             (Type::Cell, _, Type::Float) | (Type::Float, _, Type::Cell) => {
                 output.op(CoreOp::Move { src: dst, dst: tmp });
diff --git a/docs/src/sage/lir/expr/ops/io.rs.html b/docs/src/sage/lir/expr/ops/io.rs.html
index 62b562ef..c5f5f856 100644
--- a/docs/src/sage/lir/expr/ops/io.rs.html
+++ b/docs/src/sage/lir/expr/ops/io.rs.html
@@ -642,6 +642,7 @@
 641
 642
 643
+644
 
use super::*;
 
 use crate::{
@@ -651,13 +652,14 @@
 };
 use ::core::fmt::{Debug, Display, Formatter, Result as FmtResult};
 
+
 #[derive(Clone, Copy, PartialOrd, Ord, PartialEq, Eq, Hash)]
 pub struct Get;
 
 impl UnaryOp for Get {
     /// Can this unary operation be applied to the given type?
     fn can_apply(&self, ty: &Type, env: &Env) -> Result<bool, Error> {
-        ty.simplify_until_concrete(env).map(|ty| {
+        ty.simplify_until_concrete(env, false).map(|ty| {
             if let Type::Pointer(mutability, x) = ty {
                 match *x {
                     Type::Char | Type::Int | Type::Float => mutability.is_mutable(),
@@ -744,7 +746,7 @@
         env: &mut Env,
         output: &mut dyn AssemblyProgram,
     ) -> Result<(), Error> {
-        let t = &t.simplify_until_concrete(env)?;
+        let t = &t.simplify_until_concrete(env, false)?;
         match t {
             Type::Type(t) => {
                 for c in format!("{}", t).chars() {
@@ -1074,7 +1076,7 @@
         env: &mut Env,
         output: &mut dyn AssemblyProgram,
     ) -> Result<(), Error> {
-        let t = &t.simplify_until_concrete(env)?;
+        let t = &t.simplify_until_concrete(env, false)?;
         match t {
             Type::Cell => {
                 output.op(CoreOp::Put(addr, Output::stdout_int()));
@@ -1241,7 +1243,7 @@
         // Get the size of the type.
         let size = ty.get_size(env)? as isize;
 
-        let ty = &ty.simplify_until_concrete(env)?;
+        let ty = &ty.simplify_until_concrete(env, false)?;
 
         // Calculate the address of the expression on the stack.
         let addr = SP.deref().offset(-size + 1);
diff --git a/docs/src/sage/lir/expr/ops/mod.rs.html b/docs/src/sage/lir/expr/ops/mod.rs.html
index 3b351c7e..5bbb6d64 100644
--- a/docs/src/sage/lir/expr/ops/mod.rs.html
+++ b/docs/src/sage/lir/expr/ops/mod.rs.html
@@ -612,6 +612,7 @@
 611
 612
 613
+614
 
//! # Operations
 //!
 //! This module contains implementations of various
@@ -925,6 +926,7 @@
         self.compile_types(&lhs.get_type(env)?, &rhs.get_type(env)?, env, output)?;
         Ok(())
     }
+    
     /// Compiles the operation on the given types. (Generates the code for the operation.)
     fn compile_types(
         &self,
diff --git a/docs/src/sage/lir/expr/ops/tagged_union.rs.html b/docs/src/sage/lir/expr/ops/tagged_union.rs.html
index fb941a8b..00274918 100644
--- a/docs/src/sage/lir/expr/ops/tagged_union.rs.html
+++ b/docs/src/sage/lir/expr/ops/tagged_union.rs.html
@@ -186,12 +186,12 @@
     /// Can this unary operation be applied to the given type?
     fn can_apply(&self, ty: &Type, env: &Env) -> Result<bool, Error> {
         let ty = ty.clone().simplify(env)?;
-        Ok(ty.simplify_until_has_variants(env).is_ok())
+        Ok(ty.simplify_until_has_variants(env, false).is_ok())
     }
 
     /// Get the type of the result of applying this unary operation to the given type.
     fn return_type(&self, expr: &Expr, env: &Env) -> Result<Type, Error> {
-        let ty = expr.get_type(env)?.simplify_until_has_variants(env)?;
+        let ty = expr.get_type(env)?.simplify_until_has_variants(env, false)?;
 
         match ty {
             Type::EnumUnion(variants) => Ok(Type::Enum(variants.into_keys().collect())),
@@ -275,12 +275,12 @@
     /// Can this unary operation be applied to the given type?
     fn can_apply(&self, ty: &Type, env: &Env) -> Result<bool, Error> {
         let ty = ty.clone().simplify(env)?;
-        Ok(ty.simplify_until_has_variants(env).is_ok())
+        Ok(ty.simplify_until_has_variants(env, false).is_ok())
     }
 
     /// Get the type of the result of applying this unary operation to the given type.
     fn return_type(&self, expr: &Expr, env: &Env) -> Result<Type, Error> {
-        let ty = expr.get_type(env)?.simplify_until_has_variants(env)?;
+        let ty = expr.get_type(env)?.simplify_until_has_variants(env, false)?;
 
         match ty {
             Type::EnumUnion(variants) => Ok(Type::Union(variants)),
diff --git a/docs/src/sage/lir/expr/pattern.rs.html b/docs/src/sage/lir/expr/pattern.rs.html
index c0ad1e53..0bedce15 100644
--- a/docs/src/sage/lir/expr/pattern.rs.html
+++ b/docs/src/sage/lir/expr/pattern.rs.html
@@ -1164,7 +1164,7 @@
         env: &Env,
     ) -> Result<Type, Error> {
         // Get the type of the expression being matched.
-        let ty = expr.get_type(env)?.simplify_until_concrete(env)?;
+        let ty = expr.get_type(env)?.simplify_until_concrete(env, false)?;
         // Get the bindings for the pattern.
         let bindings = self.get_bindings(expr, &ty, env)?;
         // Create a new environment with the bindings.
@@ -1192,7 +1192,7 @@
         matching_expr_ty: &Type,
         env: &Env,
     ) -> Result<bool, Error> {
-        let matching_expr_ty = &matching_expr_ty.simplify_until_concrete(env)?;
+        let matching_expr_ty = &matching_expr_ty.simplify_until_concrete(env, false)?;
         match matching_expr_ty {
             Type::Bool => {
                 // If the type is a boolean, the patterns are exhaustive if they match both `true` and `false`.
@@ -1483,7 +1483,7 @@
     pub fn type_check(&self, matching_expr: &Expr, branch: &Expr, env: &Env) -> Result<(), Error> {
         trace!("Type checking pattern match: {} => {}", self, branch);
         // Get the type of the expression being matched.
-        let matching_ty = matching_expr.get_type(env)?.simplify_until_concrete(env)?;
+        let matching_ty = matching_expr.get_type(env)?.simplify_until_concrete(env, false)?;
         // Get the type of the branch as a result of the match.
         let expected = self.get_branch_result_type(matching_expr, branch, env)?;
         // Type-check the expression generated to match the pattern.
@@ -1592,7 +1592,7 @@
         // Create a new environment with the bindings
         let mut new_env = env.clone();
         // Get the type of the expression being matched
-        let match_type = expr.get_type(env)?.simplify_until_concrete(env)?;
+        let match_type = expr.get_type(env)?.simplify_until_concrete(env, false)?;
         // Define the variable in the new environment.
         new_env.define_var(var_name.clone(), Mutability::Immutable, match_type.clone())?;
         // Generate the expression which evaluates the `match` expression.
@@ -1664,7 +1664,7 @@
         env: &Env,
         mut origin: usize,
     ) -> Result<HashMap<String, (Mutability, Type, usize)>, Error> {
-        let ty = &ty.simplify_until_concrete(env)?;
+        let ty = &ty.simplify_until_concrete(env, false)?;
         Ok(match (self, ty) {
             // If the pattern is a tuple, and the type is a tuple, then
             // get the bindings for each element of the tuple.
@@ -1813,7 +1813,7 @@
     /// Does this pattern match the given expression?
     /// This function returns an expression which evaluates to true if the expression matches the pattern.
     fn matches(&self, expr: &Expr, ty: &Type, env: &Env) -> Result<Expr, Error> {
-        let ty = &ty.simplify_until_concrete(env)?;
+        let ty = &ty.simplify_until_concrete(env, false)?;
         Ok(match (self, ty) {
             // If the pattern is a variant, and the type is a EnumUnion,
             // check if the variant matches the pattern.
@@ -1973,7 +1973,7 @@
     /// then this will not work correctly. This function does not check the arguments.***
     pub fn declare_let_bind(&self, expr: &Expr, ty: &Type, env: &mut Env) -> Result<(), Error> {
         // Get the type of the expression being matched.
-        let ty = &ty.simplify_until_concrete(env)?;
+        let ty = &ty.simplify_until_concrete(env, false)?;
         // Get the variable bindings for the pattern.
         // This tells us the type and mutability of each variable.
         let bindings = self.get_bindings_with_offset(expr, ty, env, 0)?;
@@ -1999,7 +1999,7 @@
     /// added to the environment, and will be bound to the corresponding value in
     /// the expression which is being matched.
     fn bind(&self, expr: &Expr, ty: &Type, ret: &Expr, env: &Env) -> Result<Expr, Error> {
-        let ty = &ty.simplify_until_concrete(env)?;
+        let ty = &ty.simplify_until_concrete(env, false)?;
         Ok(match (self, ty) {
             // If the pattern is a variant, and the type is a tagged union,
             // bind the pattern to the corresponding variant type in the tagged union.
diff --git a/docs/src/sage/lir/expr/procedure/poly.rs.html b/docs/src/sage/lir/expr/procedure/poly.rs.html
index 9a1e84c3..0a701b66 100644
--- a/docs/src/sage/lir/expr/procedure/poly.rs.html
+++ b/docs/src/sage/lir/expr/procedure/poly.rs.html
@@ -300,6 +300,40 @@
 299
 300
 301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
 
//! # Poly-Procedure
 //!
 //! A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments.
@@ -314,7 +348,7 @@
 };
 use std::{hash::Hash, hash::Hasher};
 
-use log::{debug, error, trace};
+use log::{debug, error};
 use serde_derive::{Deserialize, Serialize};
 
 /// A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments.
@@ -325,7 +359,7 @@
     /// The name of the procedure.
     name: String,
     /// The type parameters of the procedure.
-    ty_params: Vec<String>,
+    ty_params: Vec<(String, Option<Type>)>,
     /// The arguments of the procedure.
     args: Vec<(String, Mutability, Type)>,
     /// The return type of the procedure.
@@ -354,7 +388,7 @@
     /// a return type, and the body of the procedure.
     pub fn new(
         name: String,
-        ty_params: Vec<String>,
+        ty_params: Vec<(String, Option<Type>)>,
         args: Vec<(String, Mutability, Type)>,
         ret: Type,
         body: impl Into<Expr>,
@@ -379,7 +413,7 @@
         }
     }
 
-    pub fn from_mono(mono: Procedure, ty_params: Vec<String>) -> Self {
+    pub fn from_mono(mono: Procedure, ty_params: Vec<(String, Option<Type>)>) -> Self {
         debug!(target: "mono", "Creating polymorphic procedure from monomorph {}", mono);
         let name = mono
             .get_common_name()
@@ -404,6 +438,10 @@
         &self.name
     }
 
+    fn type_param_names(&self) -> Vec<String> {
+        self.ty_params.clone().into_iter().map(|(ty, _)| ty).collect()
+    }
+
     /// Take some type arguments and produce a monomorphized version of the procedure.
     /// This monomorphized version can then be compiled directly. Additionally, the
     /// mono version of the procedure is memoized, so that it is only compiled once.
@@ -413,13 +451,28 @@
         // This is a helper function to distribute the defined type
         // arguments over the body and arguments of the function.
 
+        // for ((_name, ty_param), ty_arg) in self.ty_params.iter().zip(ty_args.iter()) {
+        //     if let Some(ty_param) = ty_param {
+        //         if !ty_param.equals(&ty_arg, env)? {
+        //             return Err(Error::MismatchedTypes { expected: ty_param.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) })
+        //         }
+        //     } else {
+        //         use crate::lir::Simplify;
+        //         if matches!(ty_arg.clone().simplify(env)?, Type::ConstParam(..)) {
+        //             return Err(Error::UnexpectedConstParam {
+        //                 found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into())
+        //             })
+        //         }
+        //     }
+        // }
+
         // Simplify all the type arguments until they are concrete
         let simplified_ty_args = ty_args
             .clone()
             .into_iter()
             .map(|ty| {
                 // Simplify the type until it is concrete
-                let concrete = ty.simplify_until_concrete(env)?;
+                let concrete = ty.simplify_until_concrete(env, true)?;
                 // concrete.add_monomorphized_associated_consts(env)?;
                 Ok(concrete)
             })
@@ -436,7 +489,7 @@
             );
             // Simplify the type until it is simple.
             // This reduces to the concrete version of the type application.
-            let concrete = ty.simplify_until_concrete(env)?;
+            let concrete = ty.simplify_until_concrete(env, true)?;
             // concrete.add_monomorphized_associated_consts(env)?;
             Ok(concrete)
         };
@@ -465,30 +518,29 @@
         drop(monomorphs);
         let mut monomorphs = self.monomorphs.write().unwrap();
 
+        debug!(target: "mono", "Memoizing monomorphized procedure {}", mangled_name);
+        let mut body = *self.body.clone();
+
+        // Substitute the type arguments into the body of the function.
+        body.substitute_types(&self.type_param_names(), &simplified_ty_args);
+
+        // Wrap the body in a let expression to bind the type arguments.
+        body = body.with(
+            self.type_param_names()
+                .iter()
+                .zip(simplified_ty_args.iter())
+                .map(|(a, b)| (a.clone(), b.clone()))
+                .collect::<Vec<_>>(),
+        );
+
+        let monomorph = Procedure::new(Some(mangled_name.clone()), args, ret, body);
+        monomorph.type_check(env)?;
         // If the monomorphized procedure has already been memoized, return it, otherwise memoize it.
         debug!(target: "mono", "Inserting entry for {}", mangled_name);
         let monomorph = monomorphs
             .entry(mangled_name.clone())
-            .or_insert_with(|| {
-                debug!(target: "mono", "Memoizing monomorphized procedure {}", mangled_name);
-                let mut body = *self.body.clone();
-
-                // Substitute the type arguments into the body of the function.
-                body.substitute_types(&self.ty_params, &simplified_ty_args);
-
-                // Wrap the body in a let expression to bind the type arguments.
-                body = body.with(
-                    self.ty_params
-                        .iter()
-                        .zip(simplified_ty_args.iter())
-                        .map(|(a, b)| (a.clone(), b.clone()))
-                        .collect::<Vec<_>>(),
-                );
-
-                Procedure::new(Some(mangled_name.clone()), args, ret, body)
-            })
+            .or_insert_with(|| monomorph)
             .clone();
-
         // Unlock the mutex to prevent a deadlock.
         drop(monomorphs);
         // Return the monomorphized procedure.
@@ -508,13 +560,19 @@
     }
 
     fn substitute(&mut self, name: &str, ty: &Type) {
-        if self.ty_params.contains(&name.to_string()) {
+        if self.type_param_names().contains(&name.to_string()) {
+            debug!("Not substituting {name} in {ty} because of symbol conflict");
             return;
         }
+        for (_, ty_arg) in &mut self.ty_params {
+            *ty_arg = ty_arg.as_mut().map(|ty_arg| ty_arg.substitute(name, ty));
+        }
+
         self.args
             .iter_mut()
             .for_each(|(_, _, t)| *t = t.substitute(name, ty));
         self.ret = self.ret.substitute(name, ty);
+        self.body.substitute(name, ty);
     }
 }
 
@@ -525,17 +583,21 @@
         }
 
         *self.has_type_checked.write().unwrap() = true;
-        trace!("Type checking {self}");
+        debug!("Type checking {self}");
         // Create a new scope for the procedure's body, and define the arguments for the scope.
         let mut new_env = env.new_scope();
+        
         // Define the type parameters of the procedure.
-        new_env.define_types(
-            self.ty_params
-                .clone()
-                .into_iter()
-                .map(|ty_param| (ty_param.clone(), Type::Unit(ty_param, Box::new(Type::None))))
-                .collect(),
-        );
+        for (name, ty) in &self.ty_params {
+            match ty {
+                Some(ty) => {
+                    new_env.define_type(name, ty.clone());
+                }
+                None => {
+                    new_env.define_type(name, Type::Unit(name.clone(), Box::new(Type::None)));
+                }
+            }
+        }
         // Define the arguments of the procedure.
         new_env.define_args(self.args.clone())?;
         new_env.set_expected_return_type(self.ret.clone());
@@ -547,7 +609,9 @@
         self.ret.type_check(&new_env)?;
 
         // Get the type of the procedure's body, and confirm that it matches the return type.
-        let body_type = self.body.get_type(&new_env)?;
+        debug!("Getting body type of {}", self.name);
+        let body_type = self.body.get_type(&new_env)?;
+        debug!("Got body type {body_type} of {}", self.name);
 
         if !body_type.can_decay_to(&self.ret, &new_env)? {
             error!(
@@ -562,7 +626,8 @@
             })
         } else {
             // Typecheck the procedure's body.
-            self.body.type_check(&new_env)
+            debug!("Typechecking body of {} = {}", self.name, self.body);
+            self.body.type_check(&new_env)
         }
     }
 }
@@ -570,8 +635,11 @@
 impl fmt::Display for PolyProcedure {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         write!(f, "proc[")?;
-        for (i, ty_param) in self.ty_params.iter().enumerate() {
+        for (i, (ty_param, ty)) in self.ty_params.iter().enumerate() {
             write!(f, "{}", ty_param)?;
+            if let Some(ty) = ty {
+                write!(f, ": {}", ty)?;
+            }
             if i < self.ty_params.len() - 1 {
                 write!(f, ", ")?;
             }
diff --git a/docs/src/sage/lir/types/check.rs.html b/docs/src/sage/lir/types/check.rs.html
index 7de141bd..49bfea31 100644
--- a/docs/src/sage/lir/types/check.rs.html
+++ b/docs/src/sage/lir/types/check.rs.html
@@ -1318,6 +1318,38 @@
 1317
 1318
 1319
+1320
+1321
+1322
+1323
+1324
+1325
+1326
+1327
+1328
+1329
+1330
+1331
+1332
+1333
+1334
+1335
+1336
+1337
+1338
+1339
+1340
+1341
+1342
+1343
+1344
+1345
+1346
+1347
+1348
+1349
+1350
+1351
 
//! # Type Checking
 //!
 //! This module contains the type checking logic for the Lower Intermediate Representation.
@@ -1360,6 +1392,7 @@
             | Self::Char
             | Self::Enum(_) => Ok(()),
 
+            Self::ConstParam(cexpr) => cexpr.type_check(env),
             Self::Type(t) => t.type_check(env),
 
             // Units are sound if their inner type is sound.
@@ -1389,11 +1422,16 @@
                 // Check the inner type and the length constant-expression.
                 t.type_check(env)?;
                 len.clone().type_check(env)?;
+
                 // Check that the length is non-negative.
-                if len.clone().as_int(env)? < 0 {
-                    // If it is negative, return an error.
-                    error!("Negative array length detected in type {self} in environment {env}");
-                    return Err(Error::NegativeArrayLength(Expr::ConstExpr(*len.clone())));
+                debug!("About to convert {len} to int");
+                match len.clone().as_int(env) {
+                    Ok(n) if n < 0 => {
+                        // If it is negative, return an error.
+                        error!("Negative array length detected in type {self} in environment {env}");
+                        return Err(Error::NegativeArrayLength(Expr::ConstExpr(*len.clone())));
+                    }
+                    _ => {}
                 }
                 // Otherwise, return success.
                 Ok(())
@@ -1449,7 +1487,7 @@
                     ty_params
                         .clone()
                         .into_iter()
-                        .map(|p| (p.clone(), Type::Unit(p, Box::new(Type::Any))))
+                        .map(|p| (p.0.clone(), Type::Unit(p.0, Box::new(Type::Any))))
                         .collect(),
                 );
                 // Check the template type.
@@ -1472,14 +1510,14 @@
                     .try_for_each(|t| t.type_check(env))?;
 
                 // Try to confirm that the polymorphic type is a template.
-                match poly.simplify_until_poly(env)? {
+                match poly.simplify_until_poly(env, true)? {
                     Type::Symbol(name) => {
                         // Get the type definition.
                         let ty = env
                             .get_type(&name)
                             .ok_or(Error::TypeNotDefined(name.clone()))?;
                         // Check that the type is a template.
-                        match ty.simplify_until_poly(env)? {
+                        match ty.simplify_until_poly(env, true)? {
                             Type::Poly(ty_params, _) => {
                                 // Check that the number of type arguments matches the number of type parameters.
                                 if ty_args.len() != ty_params.len() {
@@ -1805,7 +1843,7 @@
                         Err(Error::InvalidRefer(self.clone()))
                     }
                 }
-                Expr::ConstExpr(_cexpr) => Ok(()),
+                Expr::ConstExpr(cexpr) => cexpr.type_check(env),
                 Expr::Deref(inner) | Expr::Index(inner, _) => {
                     // Confirm that the inner expression can be referenced.
                     match inner.get_type(env)? {
@@ -1945,7 +1983,7 @@
                         f.type_check(env)?;
 
                         // Get the type of the function.
-                        let f_type = f.get_type(env)?.simplify_until_concrete(env)?;
+                        let f_type = f.get_type(env)?.simplify_until_concrete(env, true)?;
                         // Infer the types of the supplied arguments.
                         let mut found_arg_tys = vec![];
                         for arg in args {
@@ -2000,7 +2038,7 @@
                 }
 
                 // Get the type of the function.
-                let f_type = f.get_type(env)?.simplify_until_concrete(env)?;
+                let f_type = f.get_type(env)?.simplify_until_concrete(env, true)?;
                 // Infer the types of the supplied arguments.
                 let mut found_arg_tys = vec![];
                 for arg in args {
@@ -2029,6 +2067,8 @@
                                     found,
                                     expr: self.clone(),
                                 });
+                            } else {
+                                debug!("Found {found} can decay to {expected} in {self}")
                             }
                         }
                         Ok(())
@@ -2052,9 +2092,9 @@
                 let expected = env
                     .get_expected_return_type()
                     .cloned()
-                    .unwrap_or(Type::None);
+                    .unwrap_or(Type::None).simplify(env)?;
                 if !found.can_decay_to(&expected, env)? {
-                    error!("The found return type does not match expected type");
+                    error!("The found return type {found} does not match expected type {expected} in {env}");
                     return Err(Error::MismatchedTypes {
                         expected,
                         found,
@@ -2103,7 +2143,7 @@
             Self::Union(t, field, val) => {
                 // Typecheck the type.
                 t.type_check(env)?;
-                let t = t.simplify_until_union(env)?;
+                let t = t.simplify_until_union(env, true)?;
                 match t {
                     Type::Union(fields) => {
                         // Confirm that the variant is a valid variant.
@@ -2137,7 +2177,7 @@
             Self::EnumUnion(t, variant, val) => {
                 // Typecheck the type
                 t.type_check(env)?;
-                let t = t.simplify_until_union(env)?;
+                let t = t.simplify_until_union(env, true)?;
 
                 match t {
                     Type::EnumUnion(fields) => {
@@ -2196,7 +2236,7 @@
                 match e_type.type_check_member(field, e, env) {
                     Ok(_) => Ok(()),
                     Err(e) => {
-                        warn!("Type {e_type} doesn't have member {field} in environment {env}");
+                        debug!("Type {e_type} doesn't have member {field} in environment {env}");
                         match field
                             .clone()
                             .as_symbol(env)
@@ -2245,12 +2285,13 @@
 // Typecheck a constant expression.
 impl TypeCheck for ConstExpr {
     fn type_check(&self, env: &Env) -> Result<(), Error> {
+        debug!("Typechecking constant expression: {}", self);
         if env.has_type_checked_const(self) {
             return Ok(());
         }
 
-        debug!("Typechecking constant expression: {}", self);
         match self {
+            Self::Any => Ok(()),
             Self::Template(_ty_params, _template) => {
                 // Create a new environment with the type parameters defined.
                 // let mut new_env = env.clone();
@@ -2285,21 +2326,21 @@
                 match e_type.type_check_member(field, &Expr::ConstExpr(*e.clone()), env) {
                     Ok(_) => Ok(()),
                     Err(_err) => {
-                        warn!("Member {field} not found in type {e_type} in environment {env}");
+                        debug!("Member {field} not found in type {e_type} in environment {env}");
                         match field
                             .clone()
                             .as_symbol(env)
                             .map(|name| env.get_associated_const(&e_type, &name))
                         {
                             Ok(_) => {
-                                warn!("Associated constant {field} found in type {e_type} in environment {env}");
+                                debug!("Associated constant {field} found in type {e_type} in environment {env}");
                                 Ok(())
                             }
                             // Err(_) => Err(e),
                             Err(_) => {
                                 // Try to perform the member op as a regular member op.
-                                warn!("Associated constant {field} not found in type {e_type} in environment {env}");
-                                warn!("Falling back on regular member access");
+                                debug!("Associated constant {field} not found in type {e_type} in environment {env}");
+                                debug!("Falling back on regular member access");
                                 Expr::Member(Box::new(Expr::ConstExpr(*e.clone())), *field.clone())
                                     .type_check(env)
                             }
@@ -2343,13 +2384,36 @@
                 match **expr {
                     Self::Template(ref ty_params, ref template) => {
                         // Create a new environment with the type parameters defined.
-                        let mut new_env = env.clone();
-                        // Define the type parameters in the environment.
-                        new_env.define_types(
-                            ty_params.clone().into_iter().zip(ty_args.clone()).collect(),
-                        );
+                        // Define the type parameters in the environment.
+                        // new_env.define_types(
+                        //     ty_params.clone().into_iter().map(|x| x.0).zip(ty_args.clone()).collect(),
+                        // );
+
+                        let mut ret = template.clone();
+                        let mut new_env = env.clone();
+                        for ((param, ty), ty_arg) in ty_params.iter().zip(ty_args.iter()) {
+                            if let Type::ConstParam(cexpr) = ty_arg {
+                                if let Some(expected_ty) = ty {
+                                    let expected = expected_ty.clone();
+                                    let found = cexpr.get_type(env)?;
+                                    if !found.equals(expected_ty, env)? {
+                                        error!("Mismatch in expected type for constant parameter");
+                                        return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() })
+                                    }
+                                    ret.substitute(param, ty_arg)
+                                }
+                                ret.substitute(param, ty_arg);
+                                new_env.define_const(param, *cexpr.clone());
+                            } else {
+                                ret.substitute(param, ty_arg);
+                                new_env.define_type(param, ty_arg.clone());
+                            }
+                        }
+                        debug!("Result: {ret}");
+                        let ret = ret.get_type(&new_env)?
+                            .simplify_until_poly(&new_env, true)?;
                         // Check the template type.
-                        template.type_check(&new_env)
+                        ret.type_check(&new_env)
                         // Ok(())
                     }
                     Self::PolyProc(ref poly) => {
@@ -2441,7 +2505,7 @@
             // Typecheck a variant of an enum.
             Self::Of(t, variant) => {
                 let t = t
-                    .simplify_until_has_variants(env)
+                    .simplify_until_has_variants(env, true)
                     .map_err(|_| Error::VariantNotFound(t.clone(), variant.clone()))?;
 
                 match t {
@@ -2563,7 +2627,7 @@
             // Typecheck a union literal.
             Self::Union(t, field, val) => {
                 // Confirm the type supplied is a union.
-                let t = t.simplify_until_union(env)?;
+                let t = t.simplify_until_union(env, true)?;
 
                 match t {
                     Type::Union(fields) => {
@@ -2602,7 +2666,7 @@
             // Typecheck a tagged union literal.
             Self::EnumUnion(t, variant, val) => {
                 // Confirm the type supplied is a union.
-                let t = t.simplify_until_union(env)?;
+                let t = t.simplify_until_union(env, true)?;
                 match t {
                     Type::EnumUnion(fields) => {
                         // Confirm that the variant is a valid variant.
diff --git a/docs/src/sage/lir/types/inference.rs.html b/docs/src/sage/lir/types/inference.rs.html
index 795ece03..4b596aa2 100644
--- a/docs/src/sage/lir/types/inference.rs.html
+++ b/docs/src/sage/lir/types/inference.rs.html
@@ -793,7 +793,7 @@
                 // Get the type of the expression.
                 let t = expr
                     .get_type_checked(env, i)?
-                    .simplify_until_concrete(env)?;
+                    .simplify_until_concrete(env, false)?;
                 // If the type is a pointer, return the inner type of the pointer.
                 if let Type::Pointer(_, inner) = t {
                     // If the type *evaluates* to a pointer, return that inner type.
@@ -814,7 +814,7 @@
                 // Get the type of the function.
                 let ty = func
                     .get_type_checked(env, i)?
-                    .simplify_until_concrete(env)?;
+                    .simplify_until_concrete(env, false)?;
                 match ty {
                     Type::Proc(_, ret) => *ret,
                     _ => return Err(Error::ApplyNonProc(self.clone())),
@@ -874,7 +874,7 @@
                 // Get the type of the value to get the member of.
                 let val_type = val.get_type_checked(env, i)?;
                 // val_type.add_monomorphized_associated_consts(env)?;
-                let val_type = val_type.simplify_until_concrete(env)?;
+                let val_type = val_type.simplify_until_concrete(env, false)?;
                 // val_type.add_monomorphized_associated_consts(env)?;
                 match val_type {
                     Type::Type(ty) => {
diff --git a/docs/src/sage/lir/types/mod.rs.html b/docs/src/sage/lir/types/mod.rs.html
index 92ea5ee6..43b2df5d 100644
--- a/docs/src/sage/lir/types/mod.rs.html
+++ b/docs/src/sage/lir/types/mod.rs.html
@@ -2359,6 +2359,276 @@
 2358
 2359
 2360
+2361
+2362
+2363
+2364
+2365
+2366
+2367
+2368
+2369
+2370
+2371
+2372
+2373
+2374
+2375
+2376
+2377
+2378
+2379
+2380
+2381
+2382
+2383
+2384
+2385
+2386
+2387
+2388
+2389
+2390
+2391
+2392
+2393
+2394
+2395
+2396
+2397
+2398
+2399
+2400
+2401
+2402
+2403
+2404
+2405
+2406
+2407
+2408
+2409
+2410
+2411
+2412
+2413
+2414
+2415
+2416
+2417
+2418
+2419
+2420
+2421
+2422
+2423
+2424
+2425
+2426
+2427
+2428
+2429
+2430
+2431
+2432
+2433
+2434
+2435
+2436
+2437
+2438
+2439
+2440
+2441
+2442
+2443
+2444
+2445
+2446
+2447
+2448
+2449
+2450
+2451
+2452
+2453
+2454
+2455
+2456
+2457
+2458
+2459
+2460
+2461
+2462
+2463
+2464
+2465
+2466
+2467
+2468
+2469
+2470
+2471
+2472
+2473
+2474
+2475
+2476
+2477
+2478
+2479
+2480
+2481
+2482
+2483
+2484
+2485
+2486
+2487
+2488
+2489
+2490
+2491
+2492
+2493
+2494
+2495
+2496
+2497
+2498
+2499
+2500
+2501
+2502
+2503
+2504
+2505
+2506
+2507
+2508
+2509
+2510
+2511
+2512
+2513
+2514
+2515
+2516
+2517
+2518
+2519
+2520
+2521
+2522
+2523
+2524
+2525
+2526
+2527
+2528
+2529
+2530
+2531
+2532
+2533
+2534
+2535
+2536
+2537
+2538
+2539
+2540
+2541
+2542
+2543
+2544
+2545
+2546
+2547
+2548
+2549
+2550
+2551
+2552
+2553
+2554
+2555
+2556
+2557
+2558
+2559
+2560
+2561
+2562
+2563
+2564
+2565
+2566
+2567
+2568
+2569
+2570
+2571
+2572
+2573
+2574
+2575
+2576
+2577
+2578
+2579
+2580
+2581
+2582
+2583
+2584
+2585
+2586
+2587
+2588
+2589
+2590
+2591
+2592
+2593
+2594
+2595
+2596
+2597
+2598
+2599
+2600
+2601
+2602
+2603
+2604
+2605
+2606
+2607
+2608
+2609
+2610
+2611
+2612
+2613
+2614
+2615
+2616
+2617
+2618
+2619
+2620
+2621
+2622
+2623
+2624
+2625
+2626
+2627
+2628
+2629
+2630
 
//! # Types Module
 //!
 //! This module contains a collection of types and traits
@@ -2552,11 +2822,15 @@
     /// The type takes a list of symbols that are substituted with concrete types.
     /// The type is then simplified to a concrete type when combined with `Apply`.
     /// This type is used to implement generics.
-    Poly(Vec<String>, Box<Self>),
+    Poly(Vec<(String, Option<Type>)>, Box<Self>),
 
     /// A type that constructs a concrete type from a polymorphic type.
     /// This type is used to implement generics.
     Apply(Box<Self>, Vec<Self>),
+
+    /// A constant literal used in a type expression, like a template application
+    /// with a constant parameter.
+    ConstParam(Box<ConstExpr>),
 }
 
 lazy_static::lazy_static! {
@@ -2577,6 +2851,24 @@
         self.is_recursive_helper(&mut symbols, env)
     }
 
+    pub fn is_const_param(&self) -> bool {
+        // matches!(self, Type::ConstParam(..))
+        match self {
+            Type::ConstParam(..) => true,
+            Type::Struct(fields) => fields.iter().map(|(_name, ty)| ty).all(Self::is_const_param),
+            Type::Tuple(items) => items.iter().all(Self::is_const_param),
+            Type::Type(t) => t.is_const_param(),
+            _ => false,
+        }
+    }
+
+    pub(crate) fn discard_type_wrapper(self) -> Self {
+        match self {
+            Self::Type(ty) | Self::Unit(_, ty) => *ty,
+            other => other
+        }
+    }
+
     pub fn is_recursive_helper(
         &self,
         symbols: &mut HashSet<String>,
@@ -2626,7 +2918,7 @@
             }
 
             Self::Poly(params, t) => {
-                for param in params {
+                for (param, _) in params {
                     symbols.remove(param);
                 }
                 t.is_recursive_helper(symbols, env)
@@ -2678,7 +2970,9 @@
                 Ok(false)
             }
             Self::Enum(_) => Ok(false),
-            Self::None
+
+            Self::ConstParam(_)
+            | Self::None
             | Self::Int
             | Self::Float
             | Self::Cell
@@ -2714,6 +3008,7 @@
                     self.clone()
                 }
             }
+            Self::Pointer(mutability, ty) => Self::Pointer(*mutability, ty.strip_template(env).into()),
             _ => self.clone(),
         }
     }
@@ -2725,7 +3020,7 @@
     pub fn get_monomorph_template_args(
         &self,
         template: &Self,
-        matched_symbols: &mut HashMap<String, Self>,
+        matched_symbols: &mut HashMap<String, (Self, Option<Type>)>,
         param_symbols: &HashSet<String>,
         env: &Env,
     ) -> Result<(), Error> {
@@ -2783,9 +3078,22 @@
                 }
             }
 
-            (Self::Array(inner1, _), Self::Array(inner2, _)) => {
+            (Self::Array(inner1, cexpr1), Self::Array(inner2, cexpr2)) => {
                 inner1.get_monomorph_template_args(inner2, matched_symbols, param_symbols, env)?;
-            }
+
+                let ty1 = match &**cexpr1 {
+                    ConstExpr::Symbol(name) => Type::Symbol(name.clone()),
+                    ConstExpr::Type(ty) => ty.clone(),
+                    otherwise => Type::ConstParam(otherwise.clone().into())
+                };
+                let ty2 = match &**cexpr2 {
+                    ConstExpr::Symbol(name) => Type::Symbol(name.clone()),
+                    ConstExpr::Type(ty) => ty.clone(),
+                    _ => return Ok(())
+                };
+
+                ty1.get_monomorph_template_args(&ty2, matched_symbols, param_symbols, env)?
+            }
 
             (Self::Pointer(_, inner1), Self::Pointer(_, inner2)) => {
                 inner1.get_monomorph_template_args(inner2, matched_symbols, param_symbols, env)?;
@@ -2815,18 +3123,18 @@
             }
 
             (Self::Apply(template, args), Self::Poly(params, ret)) => {
-                for (param, arg) in params.iter().zip(args.iter()) {
+                for ((param, expected), arg) in params.iter().zip(args.iter()) {
                     // ret.get_monomorph_template_args(arg, symbols, env)?;
-                    matched_symbols.insert(param.clone(), arg.clone());
+                    matched_symbols.insert(param.clone(), (arg.clone(), expected.clone()));
                     debug!("Found match {}: {}", param, arg);
                 }
                 template.get_monomorph_template_args(ret, matched_symbols, param_symbols, env)?;
             }
 
             (Self::Apply(template, args), other) => {
-                if let Ok(Self::Poly(params, ret)) = template.simplify_until_poly(env) {
+                if let Ok(Self::Poly(params, ret)) = template.simplify_until_poly(env, false) {
                     let mut ret = *ret.clone();
-                    for (param, arg) in params.iter().zip(args.iter()) {
+                    for ((param, _), arg) in params.iter().zip(args.iter()) {
                         ret = ret.substitute(param, arg);
                     }
 
@@ -2836,7 +3144,7 @@
             (other, Self::Symbol(name)) => {
                 if param_symbols.contains(name) {
                     debug!("Found match {}: {}", name, other);
-                    matched_symbols.insert(name.clone(), other.clone());
+                    matched_symbols.insert(name.clone(), (other.clone(), None));
                 } else if let Some(t) = env.get_type(name) {
                     debug!("Symbol {name} is {t}");
                     other.get_monomorph_template_args(t, matched_symbols, param_symbols, env)?;
@@ -2851,7 +3159,7 @@
 
             (a, b) => {
                 if a != b {
-                    error!(
+                    debug!(
                         "get_monomorph_template_args: Couldn't match {} to {}",
                         self, template
                     );
@@ -2863,11 +3171,14 @@
     }
 
     pub fn is_monomorph_of(&self, template: &Self, env: &Env) -> Result<bool, Error> {
-        match (self, template) {
-            (Self::Apply(template1, _), template2) => template1.equals(template2, env),
+        debug!("{self} is mono of {template}?");
+        let result = match (self, template) {
+            (Self::Apply(template1, _), template2) => {
+                template1.equals(template2, env)
+            },
             (concrete, Self::Poly(params, result)) => {
                 let mut result = *result.clone();
-                for param in params {
+                for (param, _) in params {
                     result = result.substitute(param, &Type::Any);
                 }
                 concrete.equals(&result, env)
@@ -2886,8 +3197,25 @@
                 Ok(false)
             }
 
+            (Self::Pointer(mut1, ty1), Self::Pointer(mut2, ty2)) => {
+                Ok(mut1 == mut2 && ty1.is_monomorph_of(ty2, env)?)
+            }
+
+            (Self::Array(elem1, len1), Self::Array(elem2, len2)) => {
+                return Ok(elem1.is_monomorph_of(elem2, env)? && len1.get_type(env)?.equals(&len2.get_type(env)?, env)?)
+                // return Ok(elem1.is_monomorph_of(elem2, env)?)
+            }
+
+            (Self::ConstParam(cexpr), other) => cexpr.get_type(env)?.equals(other, env),
+
             _ => Ok(false),
+        };
+        if result.clone().is_ok_and(|x| x) {
+            debug!("{self} is monomorph of {template}");
+        } else {
+            debug!("{self} is NOT monomorph of {template}");
         }
+        result
     }
 
     pub fn add_monomorphized_associated_consts(&self, env: &Env) -> Result<(), Error> {
@@ -2896,11 +3224,11 @@
             Self::Apply(template, args) => {
                 let simplified_args = args
                     .iter()
-                    .map(|t| t.simplify_until_concrete(env))
+                    .map(|t| t.simplify_until_concrete(env, false))
                     .collect::<Result<Vec<_>, _>>()?;
 
                 let mut mono_ty = Self::Apply(template.clone(), simplified_args.clone());
-                mono_ty = mono_ty.simplify_until_concrete(env)?;
+                mono_ty = mono_ty.simplify_until_concrete(env, false)?;
                 // warn!("add_monomorphized_associated_consts: Adding monomorphized associated consts for {self} to {}", mono_ty);
 
                 env.add_monomorphized_associated_consts(*template, mono_ty, simplified_args)?;
@@ -2954,6 +3282,7 @@
                 // t.add_monomorphized_associated_consts(env)?;
             }
             Self::Let(_, _, _)
+            | Self::ConstParam(_)
             | Self::Any
             | Self::None
             | Self::Never
@@ -2967,26 +3296,26 @@
         Ok(())
     }
 
-    pub fn get_template_params(&self, env: &Env) -> Vec<String> {
+    pub fn get_template_params(&self, env: &Env) -> Vec<(String, Option<Type>)> {
         debug!("get_template_params: {}", self);
-        match self.simplify_until_poly(env) {
+        match self.simplify_until_poly(env, false) {
             Ok(Self::Poly(params, _)) => {
-                debug!(
-                    "get_template_params: {} params: {}",
-                    self,
-                    params.join(", ")
-                );
-                params.clone()
+                // debug!(
+                //     "get_template_params: {} params: {}",
+                //     self,
+                //     params.join(", ")
+                // );
+                params.clone()
             }
             Ok(Self::Symbol(name)) => {
                 if let Some(t) = env.get_type(&name) {
                     let result = t.get_template_params(env);
-                    debug!(
-                        "get_template_params: {} params: {}",
-                        name,
-                        result.join(", ")
-                    );
-                    result
+                    // debug!(
+                    //     "get_template_params: {} params: {}",
+                    //     name,
+                    //     result.join(", ")
+                    // );
+                    result
                 } else {
                     debug!("get_template_params: Couldn't find type {}", name);
                     vec![]
@@ -3024,6 +3353,7 @@
             | Self::Bool
             | Self::Any
             | Self::Never
+            | Self::ConstParam(_)
             | Self::Enum(_)
             | Self::Type(_) => true,
             Self::Unit(_, t) => t.is_simple(),
@@ -3043,7 +3373,7 @@
                         return false;
                     }
                     let mut ret = *ret.clone();
-                    for (param, arg) in params.iter().zip(args.iter()) {
+                    for ((param, _), arg) in params.iter().zip(args.iter()) {
                         if !arg.is_simple() {
                             return false;
                         }
@@ -3063,6 +3393,7 @@
     pub fn is_concrete(&self) -> bool {
         match self {
             Self::Poly(_, _) | Self::Symbol(_) | Self::Apply(_, _) | Self::Let(_, _, _) => false,
+
             Self::None
             | Self::Int
             | Self::Float
@@ -3071,6 +3402,7 @@
             | Self::Bool
             | Self::Any
             | Self::Never
+            | Self::ConstParam(_)
             | Self::Enum(_)
             | Self::EnumUnion(_)
             | Self::Struct(_)
@@ -3078,8 +3410,8 @@
             | Self::Proc(_, _)
             | Self::Tuple(_)
             | Self::Unit(_, _)
-            | Self::Type(_)
             | Self::Array(_, _)
+            | Self::Type(_)
             | Self::Pointer(_, _) => true,
         }
     }
@@ -3096,7 +3428,9 @@
             | Self::Any
             | Self::Never
             | Self::Enum(_)
+            | Self::ConstParam(_)
             | Self::Type(_) => true,
+            
             Self::Unit(_, t) => t.is_atomic(),
             Self::Tuple(inner) => inner.iter().all(|t| t.is_atomic()),
             Self::Array(inner, expr) => inner.is_atomic() && matches!(**expr, ConstExpr::Int(_)),
@@ -3112,7 +3446,7 @@
 
     /// Is first argument of function a reference?
     pub fn is_self_param_reference(&self, env: &Env) -> Result<bool, Error> {
-        Ok(match self.simplify_until_concrete(env)? {
+        Ok(match self.simplify_until_concrete(env, false)? {
             Self::Proc(args, _) => {
                 matches!(args.first(), Some(Self::Pointer(_, _)))
             }
@@ -3122,7 +3456,7 @@
 
     /// Get the first argument's mutability (if it is a pointer)
     pub fn get_self_param_mutability(&self, env: &Env) -> Option<Mutability> {
-        match self.simplify_until_concrete(env) {
+        match self.simplify_until_concrete(env, false) {
             Ok(Self::Proc(args, _)) => {
                 if let Some(Self::Pointer(mutability, _)) = args.first() {
                     Some(*mutability)
@@ -3135,7 +3469,7 @@
             Ok(Self::Apply(template, args)) => {
                 if let Self::Poly(ref params, ref inner) = *template {
                     let mut inner = *inner.clone();
-                    for (param, arg) in params.iter().zip(args.iter()) {
+                    for ((param, _), arg) in params.iter().zip(args.iter()) {
                         inner = inner.substitute(param, arg);
                     }
                     inner.get_self_param_mutability(env)
@@ -3151,7 +3485,7 @@
     /// Simplify until the type passes the type checker.
     pub fn simplify_until_type_checks(&self, env: &Env) -> Result<Self, Error> {
         self.clone()
-            .simplify_until_matches(env, Type::Any, |t, env| t.type_check(env).map(|_| true))
+            .simplify_until_matches(env, Type::Any, |t, env| t.type_check(env).map(|_| true), true)
     }
 
     fn possibly_has_members(&self) -> bool {
@@ -3170,10 +3504,10 @@
     }
 
     /// Simplify a type until you can get its members.
-    pub fn simplify_until_has_members(&self, env: &Env) -> Result<Self, Error> {
+    pub fn simplify_until_has_members(&self, env: &Env, checked: bool) -> Result<Self, Error> {
         let result = self
             .clone()
-            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.possibly_has_members()));
+            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.possibly_has_members()), checked);
 
         if result.is_err() {
             warn!("Couldn't simplify {} to a type with members", self);
@@ -3195,10 +3529,10 @@
     }
 
     /// Simplify a type until it's a union.
-    pub fn simplify_until_union(&self, env: &Env) -> Result<Self, Error> {
+    pub fn simplify_until_union(&self, env: &Env, checked: bool) -> Result<Self, Error> {
         let result = self
             .clone()
-            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_union()));
+            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_union()), checked);
         if result.is_err() {
             debug!("Couldn't simplify {} to a union", self);
         }
@@ -3218,10 +3552,10 @@
     }
 
     /// Simplify a type until you can get its variants.
-    pub fn simplify_until_has_variants(&self, env: &Env) -> Result<Self, Error> {
+    pub fn simplify_until_has_variants(&self, env: &Env, checked: bool) -> Result<Self, Error> {
         let result = self
             .clone()
-            .simplify_until_matches(env, Type::Enum(vec![]), |t, _| Ok(t.has_variants()));
+            .simplify_until_matches(env, Type::Enum(vec![]), |t, _| Ok(t.has_variants()), checked);
         if result.is_err() {
             debug!("Couldn't simplify {} to a type with variants", self);
         }
@@ -3240,19 +3574,19 @@
         false
     }
 
-    pub fn simplify_until_atomic(&self, env: &Env) -> Result<Self, Error> {
+    pub fn simplify_until_atomic(&self, env: &Env, checked: bool) -> Result<Self, Error> {
         let result = self
             .clone()
-            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_atomic()));
+            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_atomic()), checked);
         if result.is_err() {
             debug!("Couldn't simplify {} to an atomic type", self);
         }
         result
     }
-    pub fn simplify_until_simple(&self, env: &Env) -> Result<Self, Error> {
+    pub fn simplify_until_simple(&self, env: &Env, checked: bool) -> Result<Self, Error> {
         let result = self
             .clone()
-            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_simple()));
+            .simplify_until_matches(env, Type::Any, |t, _| Ok(t.is_simple()), checked);
         if result.is_err() {
             debug!("Couldn't simplify {} to a simple type", self);
         }
@@ -3260,11 +3594,12 @@
     }
 
     /// Simplify until the type is a polymorphic type.
-    pub fn simplify_until_poly(&self, env: &Env) -> Result<Self, Error> {
+    pub fn simplify_until_poly(&self, env: &Env, checked: bool) -> Result<Self, Error> {
         let result = self.clone().simplify_until_matches(
             env,
             Type::Poly(vec![], Box::new(Type::Any)),
             |t, _| Ok(t.is_polymorphic()),
+            checked
         );
         if result.is_err() {
             debug!("Couldn't simplify {} to a polymorphic type", self);
@@ -3273,16 +3608,76 @@
     }
 
     /// Simplify until the type is concrete.
-    pub fn simplify_until_concrete(&self, env: &Env) -> Result<Self, Error> {
+    pub fn simplify_until_concrete(&self, env: &Env, checked: bool) -> Result<Self, Error> {
         let result = self
             .clone()
-            .simplify_until_matches(env, Type::Any, |t, _env| Ok(t.is_concrete()));
+            .simplify_until_matches(env, Type::Any, |t, _env| Ok(t.is_concrete()), checked);
         if result.is_err() {
             debug!("Couldn't simplify {} to a concrete type", self);
         }
+        
         result
     }
 
+
+    /// Simplify until the type is concrete.
+    pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result<ConstExpr, Error> {
+        let mut simplified = self.clone().simplify(env)?;
+        for _ in 0..3 {
+            if let Self::ConstParam(cexpr) = simplified {
+                return Ok(*cexpr);
+            }
+            simplified = simplified.simplify(env)?;
+            simplified = match simplified {
+                Self::Tuple(items) => {
+                    let simple_items = items
+                        .into_iter()
+                        .map(|t| t.simplify(env))
+                        .collect::<Result<Vec<_>, Error>>()?;
+                    
+                    if simple_items.iter().all(Self::is_const_param) {
+                        Self::ConstParam(ConstExpr::Tuple(simple_items
+                            .into_iter()
+                            .map(|t| Ok(match t {
+                                Type::ConstParam(cexpr) => cexpr.eval(env)?,
+                                _ => unreachable!()
+                            }))
+                            .collect::<Result<_, Error>>()?).into())
+                    } else {
+                        Self::Tuple(simple_items)
+                    }
+                }
+                Self::Struct(fields) => {
+                    let simple_fields = fields
+                        .into_iter()
+                        .map(|(name, t)| Ok((name, t.simplify(env)?)))
+                        .collect::<Result<BTreeMap<_, _>, Error>>()?;
+                    
+                    if simple_fields.iter().map(|(_x, t)| t).all(Self::is_const_param) {
+                        Self::ConstParam(ConstExpr::Struct(simple_fields
+                            .into_iter()
+                            .map(|(name, t)| Ok(match t {
+                                Type::ConstParam(cexpr) => (name, cexpr.eval(env)?),
+                                _ => unreachable!()
+                            }))
+                            .collect::<Result<_, Error>>()?).into())
+                    } else {
+                        Self::Struct(simple_fields)
+                    }
+                }
+                other => other
+            };
+        }
+        // if result.is_err() {
+        //     debug!("Couldn't simplify {} to a constant param", self);
+        // }
+
+        match simplified {
+            Type::ConstParam(cexpr) => Ok(*cexpr),
+            result => panic!("Unexpected {result}")
+        }
+    }
+
     /// Simplify an expression until it matches a given function which "approves" of a type.
     /// This will perform template applications to simplify the type if possible as well.
     ///
@@ -3293,6 +3688,7 @@
         env: &Env,
         expected: Self,
         f: impl Fn(&Self, &Env) -> Result<bool, Error>,
+        checked: bool
     ) -> Result<Self, Error> {
         let mut simplified = self;
         // for _ in 0..Self::SIMPLIFY_RECURSION_LIMIT {
@@ -3300,7 +3696,7 @@
             if f(&simplified, env)? || simplified.is_atomic() {
                 return Ok(simplified);
             }
-            simplified = simplified.perform_template_applications(env, &mut HashMap::new())?
+            simplified = simplified.perform_template_applications(env, &mut HashMap::new(), checked)?
         }
         Err(Error::CouldntSimplify(simplified, expected))
     }
@@ -3331,7 +3727,7 @@
             }
             Self::Type(t) => t.contains_symbol(name),
             Self::Poly(ty_params, template) => {
-                if ty_params.contains(&name.to_string()) {
+                if ty_params.iter().map(|x| x.0.clone()).collect::<Vec<_>>().contains(&name.to_string()) {
                     // This type variable is shadowed by a template variable.
                     false
                 } else {
@@ -3351,6 +3747,12 @@
                 t.contains_symbol(name) || (typename != name && ret.contains_symbol(name))
             }
             Self::Symbol(typename) => typename == name,
+            Self::ConstParam(cexpr) => {
+                match &**cexpr {
+                    ConstExpr::Symbol(const_name) | ConstExpr::Type(Type::Symbol(const_name)) => name == const_name,
+                    _ => false
+                }
+            }
             Self::None
             | Self::Never
             | Self::Any
@@ -3377,7 +3779,8 @@
     /// Substitute all occurences of a symbol with another type.
     /// This will not traverse into let-bindings when the symbol is overshadowed.
     pub fn substitute(&self, name: &str, substitution: &Self) -> Self {
-        match self {
+        // warn!("Subbing {name} for {substitution} in {self}");
+        let result = match self {
             Self::Type(t) => Self::Type(Box::new(t.substitute(name, substitution))),
             Self::Let(typename, binding, ret) => Self::Let(
                 typename.clone(),
@@ -3397,13 +3800,13 @@
                 },
             ),
             Self::Poly(ty_params, template) => {
-                if ty_params.contains(&name.to_string()) {
+                if ty_params.iter().map(|x| x.0.clone()).collect::<Vec<_>>().contains(&name.to_string()) {
                     // This type variable is shadowed by a template variable.
                     self.clone()
                 } else {
                     // Does the inner symbol use this type variable?
                     Self::Poly(
-                        ty_params.clone(),
+                        ty_params.iter().map(|(x, ty)| (x.clone(), ty.as_ref().map(|ty| ty.substitute(name, substitution)))).collect(),
                         template.substitute(name, substitution).into(),
                     )
                 }
@@ -3425,6 +3828,11 @@
                 unit_name.clone(),
                 Box::new(inner.substitute(name, substitution)),
             ),
+            Self::ConstParam(cexpr) => {
+                let mut cexpr = cexpr.clone();
+                cexpr.substitute(name, substitution);
+                Self::ConstParam(cexpr)
+            },
             Self::None
             | Self::Never
             | Self::Any
@@ -3440,10 +3848,14 @@
                     .map(|field_t| field_t.substitute(name, substitution))
                     .collect(),
             ),
-            Self::Array(item_t, size) => Self::Array(
-                Box::new(item_t.substitute(name, substitution)),
-                size.clone(),
-            ),
+            Self::Array(item_t, size) => {
+                let mut size = size.clone();
+                size.substitute(name, substitution);
+                Self::Array(
+                    Box::new(item_t.substitute(name, substitution)),
+                    size,
+                )
+            },
             Self::Struct(fields) => Self::Struct(
                 fields
                     .iter()
@@ -3477,7 +3889,9 @@
             Self::Pointer(mutability, ptr) => {
                 Self::Pointer(*mutability, Box::new(ptr.substitute(name, substitution)))
             }
-        }
+        };
+        // warn!("Got back {result}");
+        result
     }
 
     /// Does this type have an element type matching the supplied type?
@@ -3500,8 +3914,8 @@
     /// For all cases right now, a decay does nothing; the representations of the types
     /// in the compiler are the same for all types of decay.
     pub fn can_decay_to(&self, desired: &Self, env: &Env) -> Result<bool, Error> {
-        trace!("Checking if {} can decay to {}", self, desired);
-        if self.equals(desired, env)? {
+        // trace!("Checking if {} can decay to {}", self, desired);
+        if self.equals(desired, env)? {
             return Ok(true);
         }
 
@@ -3510,7 +3924,13 @@
         // }
 
         match (self, desired) {
-            // (Self::Unit(_, inner), _) => inner.can_decay_to(desired, env),
+            // (Type::Type(ty), desired) => {
+            //     ty.can_decay_to(desired, env)
+            // }
+            // (ty, Type::Type(desired)) => {
+            //     ty.can_decay_to(desired, env)
+            // }
+            // (Self::Unit(_, inner), _) => inner.can_decay_to(desired, env),
             (Self::Unit(name1, t1), Self::Unit(name2, t2)) => {
                 if name1 == name2 {
                     t1.can_decay_to(t2, env)
@@ -3554,6 +3974,8 @@
                     return Ok(true);
                 }
 
+                debug!("Could not decay {self} into {desired}");
+
                 Ok(false)
             }
 
@@ -3575,19 +3997,19 @@
             }
 
             // Can an array decay to another array?
-            (Self::Array(found_elem_ty, _), Self::Array(desired_elem_ty, _)) => {
+            (Self::Array(found_elem_ty, found_len), Self::Array(desired_elem_ty, expected_len)) => {
                 // Check if the element types can decay, and if the sizes are equal.
                 if found_elem_ty.can_decay_to(desired_elem_ty, env)?
-                    && self.get_size(env)? == desired.get_size(env)?
-                {
+                    && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?, env)
+                {
                     trace!("{} can decay to {}", self, desired);
                     return Ok(true);
                 }
 
                 // Check if the element types are compatible, and if the sizes are equal.
                 if found_elem_ty.has_element_type(desired_elem_ty, env)?
-                    && self.get_size(env)? == desired.get_size(env)?
-                {
+                    && found_len.clone().eval(env)?.equals(&expected_len.clone().eval(env)?, env)
+                {
                     trace!("{} can decay to {}", self, desired);
                     return Ok(true);
                 }
@@ -3669,6 +4091,8 @@
         }
 
         let result = match (self, other) {
+            (Self::ConstParam(a), Self::ConstParam(b)) => Ok(a == b),
+
             (Self::Let(name, t, ret), other) | (other, Self::Let(name, t, ret)) => {
                 let mut new_env = env.clone();
                 new_env.define_type(name, *t.clone());
@@ -3790,6 +4214,7 @@
         &self,
         env: &Env,
         previous_applications: &mut HashMap<(Type, Vec<Type>), Type>,
+        checked: bool,
     ) -> Result<Self, Error> {
         let _before = self.to_string();
         trace!("Performing template applications on {}", self);
@@ -3800,10 +4225,10 @@
         Ok(match self.clone().simplify(env)? {
             Self::Apply(poly, ty_args) => {
                 let pair = (
-                    poly.perform_template_applications(env, previous_applications)?,
+                    poly.perform_template_applications(env, previous_applications, checked)?,
                     ty_args
                         .into_iter()
-                        .map(|t| t.perform_template_applications(env, previous_applications))
+                        .map(|t| t.perform_template_applications(env, previous_applications, checked))
                         .collect::<Result<Vec<_>, _>>()?,
                 );
                 if let Some(t) = previous_applications.get(&pair) {
@@ -3815,16 +4240,46 @@
                         Self::Poly(params, mono_ty) => {
                             let _poly = Self::Poly(params.clone(), mono_ty.clone());
                             let mut mono_ty = *mono_ty;
-                            for (param, ty_arg) in params.iter().zip(ty_args.iter()) {
-                                mono_ty = mono_ty.substitute(param, ty_arg);
+                            if !checked {
+                                for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) {
+                                    mono_ty = mono_ty.substitute(param, ty_arg);
+                                }
+                            } else {
+                                let mut new_env = env.clone();
+                                for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) {
+                                    new_env.define_type(param, ty_arg.clone());
+                                }
+                                for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) {
+                                    if let Some(expected_ty) = expected_ty {
+                                        if !expected_ty.equals(ty_arg, &new_env)? && !matches!(ty_arg, Type::Unit(name, inner) if param == name || **inner == Type::None) {
+                                            return Err(Error::MismatchedTypes { expected: expected_ty.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) })
+                                        }
+                                    }
+                                    mono_ty = mono_ty.substitute(param, ty_arg);
+                                }
                             }
                             mono_ty
                         }
                         Self::Symbol(s) => match env.get_type(s.as_str()).cloned() {
                             Some(Self::Poly(params, mono_ty)) => {
                                 let mut mono_ty = *mono_ty;
-                                for (param, ty_arg) in params.iter().zip(ty_args.iter()) {
-                                    mono_ty = mono_ty.substitute(param, ty_arg);
+                                if !checked {
+                                    for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) {
+                                        mono_ty = mono_ty.substitute(param, ty_arg);
+                                    }
+                                } else {
+                                    let mut new_env = env.clone();
+                                    for ((param, _expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) {
+                                        new_env.define_type(param, ty_arg.clone());
+                                    }
+                                    for ((param, expected_ty), ty_arg) in params.iter().zip(ty_args.iter()) {
+                                        if let Some(expected_ty) = expected_ty {
+                                            if !expected_ty.equals(ty_arg, &new_env)? && !matches!(ty_arg, Type::Unit(name, inner) if param == name || **inner == Type::None) {
+                                                return Err(Error::MismatchedTypes { expected: expected_ty.clone(), found: ty_arg.clone(), expr: Expr::ConstExpr(self.clone().into()) })
+                                            }
+                                        }
+                                        mono_ty = mono_ty.substitute(param, ty_arg);
+                                    }
                                 }
                                 mono_ty
                             }
@@ -3837,13 +4292,13 @@
             }
             Self::Pointer(mutability, inner) => Self::Pointer(
                 mutability,
-                Box::new(inner.perform_template_applications(env, previous_applications)?),
+                Box::new(inner.perform_template_applications(env, previous_applications, checked)?),
             ),
             Self::Proc(args, ret) => Self::Proc(
                 args.into_iter()
-                    .map(|t| t.perform_template_applications(env, previous_applications))
+                    .map(|t| t.perform_template_applications(env, previous_applications, checked))
                     .collect::<Result<Vec<_>, _>>()?,
-                Box::new(ret.perform_template_applications(env, previous_applications)?),
+                Box::new(ret.perform_template_applications(env, previous_applications, checked)?),
             ),
             Self::Struct(fields) if !self.is_recursive(env)? => Self::Struct(
                 fields
@@ -3851,7 +4306,7 @@
                     .map(|(name, t)| {
                         Ok((
                             name,
-                            t.perform_template_applications(env, previous_applications)?,
+                            t.perform_template_applications(env, previous_applications, checked)?,
                         ))
                     })
                     .collect::<Result<BTreeMap<_, _>, Error>>()?,
@@ -3862,7 +4317,7 @@
                     .map(|(name, t)| {
                         Ok((
                             name,
-                            t.perform_template_applications(env, previous_applications)?,
+                            t.perform_template_applications(env, previous_applications, checked)?,
                         ))
                     })
                     .collect::<Result<BTreeMap<_, _>, Error>>()?,
@@ -3874,21 +4329,26 @@
                     .map(|(name, t)| {
                         Ok((
                             name,
-                            t.perform_template_applications(env, previous_applications)?,
+                            t.perform_template_applications(env, previous_applications, checked)?,
                         ))
                     })
                     .collect::<Result<BTreeMap<_, _>, Error>>()?,
             ),
 
+            Self::Type(ty) if !self.is_recursive(env)? => {
+                ty.perform_template_applications(env, previous_applications, checked)?;
+                Self::Type(ty)
+            }
+
             Self::Tuple(items) if !self.is_recursive(env)? => Self::Tuple(
                 items
                     .into_iter()
-                    .map(|t| t.perform_template_applications(env, previous_applications))
+                    .map(|t| t.perform_template_applications(env, previous_applications, checked))
                     .collect::<Result<Vec<_>, _>>()?,
             ),
 
             Self::Array(item_t, size) if !self.is_recursive(env)? => Self::Array(
-                Box::new(item_t.perform_template_applications(env, previous_applications)?),
+                Box::new(item_t.perform_template_applications(env, previous_applications, checked)?),
                 size,
             ),
 
@@ -3916,9 +4376,9 @@
             );
             return Ok(false);
         }
-        trace!("Checking if {} equals {}", self, other);
+        // trace!("Checking if {} equals {}", self, other);
 
-        let i = i + 1;
+        let i = i + 1;
 
         Ok(match (self, other) {
             (Self::Any, _)
@@ -4046,8 +4506,8 @@
             }
             (Self::Array(t1, size1), Self::Array(t2, size2)) => {
                 t1.equals_checked(t2, compared_symbols, env, i)?
-                    && size1.clone().as_int(env)? == size2.clone().as_int(env)?
-            }
+                    && size1.clone().eval(env)?.equals(&size2.clone().eval(env)?, env)
+            }
             (Self::Struct(a), Self::Struct(b)) => {
                 if a.len() != b.len() {
                     return Ok(false);
@@ -4113,8 +4573,22 @@
 
                 // Create a new environment.
                 let mut new_env = env.clone();
-                for (name1, name2) in ty_params1.iter().zip(ty_params2.iter()) {
-                    // In the new environment, bind the two type parameters to the same type.
+                for ((name1, _ty1), (name2, _ty2)) in ty_params1.iter().zip(ty_params2.iter()) {
+                    // match (ty1, ty2) {
+                    //     (Some(ty1), Some(ty2)) => {
+                    //         if !ty1.equals_checked(&ty2, compared_symbols, &new_env, i)? {
+                    //             return Err(Error::MismatchedTypes { expected: ty1.clone(), found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) })
+                    //         }
+                    //     }
+                    //     (None, None) => {}
+                    //     (Some(ty1), None) => {
+                    //         return Err(Error::MismatchedTypes { expected: ty1.clone(), found: Self::Type(Type::Any.into()), expr: Expr::ConstExpr(self.clone().into()) })
+                    //     }
+                    //     (None, Some(ty2)) => {
+                    //         return Err(Error::UnexpectedConstParam { found: ty2.clone(), expr: Expr::ConstExpr(self.clone().into()) })
+                    //     }
+                    // }
+                    // In the new environment, bind the two type parameters to the same type.
                     let combined_name = format!("{name1}+{name2}");
                     let combined_ty = Self::Unit(combined_name, Box::new(Type::Any));
                     new_env.define_type(name1, combined_ty.clone());
@@ -4144,13 +4618,13 @@
                     true
                 } else if let Self::Poly(ty_params, template) = poly1.clone().simplify(env)? {
                     let mut template = *template.clone();
-                    for (param, arg) in ty_params.iter().zip(ty_args1.iter()) {
+                    for ((param, _), arg) in ty_params.iter().zip(ty_args1.iter()) {
                         template = template.substitute(param, arg);
                     }
                     template.equals_checked(other, compared_symbols, env, i)?
                 } else if let Self::Poly(ty_params, template) = poly2.clone().simplify(env)? {
                     let mut template = *template.clone();
-                    for (param, arg) in ty_params.iter().zip(ty_args2.iter()) {
+                    for ((param, _), arg) in ty_params.iter().zip(ty_args2.iter()) {
                         template = template.substitute(param, arg);
                     }
                     template.equals_checked(other, compared_symbols, env, i)?
@@ -4169,12 +4643,16 @@
 
             (Self::Apply(poly, ty_args), b) | (b, Self::Apply(poly, ty_args)) => {
                 Self::Apply(poly.clone(), ty_args.clone())
-                    .simplify_until_concrete(env)?
+                    .simplify_until_concrete(env, false)?
                     .equals_checked(b, compared_symbols, env, i)?
             }
 
-            _ => {
-                // trace!("{} is not equal to {}", a, b);
+            (Self::ConstParam(a), Self::ConstParam(b)) => a == b,
+            (Self::ConstParam(cexpr), other) | (other, Self::ConstParam(cexpr)) => {
+                cexpr.get_type(env)?.equals_checked(other, compared_symbols, env, i)?
+            },
+            (_a, _b) => {
+                // error!("{} is not equal to {}", a, b);
                 false
             }
         })
@@ -4248,7 +4726,7 @@
             Type::Unit(_unit_name, t) => t.get_member_offset(member, expr, env),
 
             Type::Apply(_, _) | Type::Poly(_, _) => {
-                let t = self.simplify_until_concrete(env)?;
+                let t = self.simplify_until_concrete(env, false)?;
                 t.get_member_offset(member, expr, env)
             }
 
@@ -4261,6 +4739,14 @@
                 }
             }
 
+            Type::Type(ty) => {
+                if ty.is_const_param() {
+                    ty.simplify_until_const_param(env, false)?.get_type(env)?.get_member_offset(member, expr, env)
+                } else {
+                    Err(Error::MemberNotFound(expr.clone(), member.clone()))
+                }
+            }
+
             _ => Err(Error::MemberNotFound(expr.clone(), member.clone())),
         }
     }
@@ -4274,12 +4760,19 @@
         trace!("Typechecking member \"{member}\" of {expr} in {env}");
         match self {
             Type::Type(ty) => {
-                let name = member.clone().as_symbol(env)?;
-
-                if env.has_associated_const(ty, &name) {
-                    Ok(())
+                if ty.type_check_member(member, expr, env).is_ok() {
+                    return Ok(())
+                }
+                if ty.is_const_param() {
+                    ty.simplify_until_const_param(env, true)?.get_type(env)?.type_check_member(member, expr, env)
                 } else {
-                    Err(Error::MemberNotFound(expr.clone(), member.clone()))
+                    let name = member.clone().as_symbol(env)?;
+        
+                    if env.has_associated_const(ty, &name) {
+                        Ok(())
+                    } else {
+                        Err(Error::MemberNotFound(expr.clone(), member.clone()))
+                    }
                 }
             }
 
@@ -4355,7 +4848,7 @@
             }
 
             Type::Apply(_, _) | Type::Poly(_, _) => {
-                let t = self.simplify_until_concrete(env)?;
+                let t = self.simplify_until_concrete(env, true)?;
                 trace!("Simplified {self} to {t}");
                 t.type_check_member(member, expr, env)
             }
@@ -4395,7 +4888,14 @@
 
         let _s = self.to_string();
         let result = match self {
-            Self::Type(t) => Self::Type(t),
+            Self::Type(t) => {
+                if t.is_const_param() {
+                    Self::ConstParam(t.simplify_until_const_param(env, false)?.into())
+                } else {
+                    Self::Type(t.into())
+                }
+            },
+            Self::ConstParam(cexpr) => Self::ConstParam(cexpr.eval(env)?.into()),
 
             Self::None
             | Self::Never
@@ -4405,8 +4905,15 @@
             | Self::Char
             | Self::Bool
             | Self::Cell
-            | Self::Enum(_)
-            | Self::Poly(_, _) => self.clone(),
+            | Self::Enum(_) => self.clone(),
+            Self::Poly(mut ty_params, body) => {
+                for (_name, ty) in &mut ty_params {
+                    if let Some(ty) = ty {
+                        *ty = ty.clone().simplify_checked(env, i)?;
+                    }
+                }
+                Self::Poly(ty_params, body)
+            }
             Self::Pointer(mutability, inner) => {
                 Self::Pointer(mutability, Box::new(inner.simplify_checked(env, i)?))
             }
@@ -4438,8 +4945,7 @@
 
             Self::Unit(unit_name, t) => {
                 Self::Unit(unit_name, Box::new(t.simplify_checked(env, i)?))
-                // self
-            }
+            }
 
             Self::Symbol(ref name) => {
                 if let Some(t) = env.get_type(name) {
@@ -4456,22 +4962,47 @@
                 Box::new(ret.simplify_checked(env, i)?),
             ),
 
-            Self::Tuple(items) => Self::Tuple(
-                items
-                    .into_iter()
-                    .flat_map(|t| t.simplify_checked(env, i))
-                    .collect(),
-            ),
             Self::Array(inner, size) => Self::Array(
                 Box::new(inner.simplify_checked(env, i)?),
                 Box::new(size.eval(env)?),
             ),
-            Self::Struct(fields) => Self::Struct(
-                fields
+
+            Self::Tuple(items) => {
+                let simple_items = items
                     .into_iter()
-                    .map(|(k, t)| Ok((k, t.simplify_checked(env, i)?)))
-                    .collect::<Result<BTreeMap<String, Type>, Error>>()?,
-            ),
+                    .map(|t| t.simplify_checked(env, i))
+                    .collect::<Result<Vec<_>, Error>>()?;
+                
+                if simple_items.iter().all(Self::is_const_param) {
+                    Self::ConstParam(ConstExpr::Tuple(simple_items
+                        .into_iter()
+                        .map(|t| Ok(match t {
+                            Type::ConstParam(cexpr) => cexpr.eval(env)?,
+                            _ => unreachable!()
+                        }))
+                        .collect::<Result<_, Error>>()?).into())
+                } else {
+                    Self::Tuple(simple_items)
+                }
+            }
+            Self::Struct(fields) => {
+                let simple_fields = fields
+                    .into_iter()
+                    .map(|(name, t)| Ok((name, t.simplify_checked(env, i)?)))
+                    .collect::<Result<BTreeMap<_, _>, Error>>()?;
+                
+                if simple_fields.iter().map(|(_x, t)| t).all(Self::is_const_param) {
+                    Self::ConstParam(ConstExpr::Struct(simple_fields
+                        .into_iter()
+                        .map(|(name, t)| Ok(match t {
+                            Type::ConstParam(cexpr) => (name, cexpr.eval(env)?),
+                            _ => unreachable!()
+                        }))
+                        .collect::<Result<_, Error>>()?).into())
+                } else {
+                    Self::Struct(simple_fields)
+                }
+            }
             Self::Union(types) => Self::Union(
                 types
                     .into_iter()
@@ -4504,13 +5035,15 @@
                 Self::Apply(Box::new(poly.simplify_checked(env, i)?), ty_args)
             }
         };
-        Ok(result)
+        // warn!("Simplified {_s} into {result}");
+        Ok(result)
     }
 }
 
 impl fmt::Display for Type {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         match self {
+            Self::ConstParam(t) => write!(f, "const param {t}"),
             Self::Type(t) => write!(f, "{t}"),
             Self::Any => write!(f, "Any"),
             Self::Never => write!(f, "Never"),
@@ -4530,8 +5063,11 @@
             Self::Array(ty, len) => write!(f, "[{ty} * {len}]"),
             Self::Poly(ty_params, template) => {
                 write!(f, "(")?;
-                for (i, param) in ty_params.iter().enumerate() {
+                for (i, (param, ty)) in ty_params.iter().enumerate() {
                     write!(f, "{param}")?;
+                    if let Some(ty) = ty {
+                        write!(f, ": {ty}")?;
+                    }
                     if i < ty_params.len() - 1 {
                         write!(f, ", ")?
                     }
@@ -4716,6 +5252,10 @@
                 state.write_u8(21);
                 t.hash(state);
             }
+            Self::ConstParam(cexpr) => {
+                state.write_u8(22);
+                cexpr.hash(state);
+            }
         }
     }
 }
diff --git a/docs/src/sage/lir/types/size.rs.html b/docs/src/sage/lir/types/size.rs.html
index 1b409639..53f191f3 100644
--- a/docs/src/sage/lir/types/size.rs.html
+++ b/docs/src/sage/lir/types/size.rs.html
@@ -194,6 +194,8 @@
 193
 194
 195
+196
+197
 
//! # Type Size
 //!
 //! This module contains the `GetSize` trait, which is used to calculate the size
@@ -255,6 +257,8 @@
         }
 
         let result = match self {
+            Self::ConstParam(cexpr) => cexpr.get_size_checked(env, i)?,
+
             // None or Never are not real types, so they have no size.
             // They are not represented with data. They have zero size.
             Self::Type(_) | Self::None | Self::Never => 0,
@@ -360,7 +364,7 @@
                     return Ok(size);
                 }
 
-                let result = self.clone().simplify_until_concrete(env)?;
+                let result = self.clone().simplify_until_concrete(env, false)?;
 
                 result.get_size_checked(env, i)?
             }
diff --git a/docs/trait.impl/core/clone/trait.Clone.js b/docs/trait.impl/core/clone/trait.Clone.js
index bae39c66..67edb617 100644
--- a/docs/trait.impl/core/clone/trait.Clone.js
+++ b/docs/trait.impl/core/clone/trait.Clone.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl Clone for Tag"],["impl Clone for Data"],["impl Clone for FFIProcedure"],["impl Clone for Declaration"],["impl Clone for Pattern"],["impl Clone for Arithmetic"],["impl Clone for CoreBuiltin"],["impl Clone for CoreOp"],["impl Clone for StandardProgram"],["impl Clone for Globals"],["impl Clone for StandardDevice"],["impl Clone for SourceCodeLocation"],["impl Clone for BitwiseNand"],["impl Clone for BitwiseNot"],["impl Clone for Assign"],["impl Clone for Error"],["impl Clone for And"],["impl Clone for New"],["impl Clone for Not"],["impl Clone for ConstExpr"],["impl Clone for StandardProgram"],["impl Clone for Put"],["impl Clone for Box<dyn TernaryOp>"],["impl Clone for Box<dyn BinaryOp>"],["impl Clone for CoreProgram"],["impl Clone for Delete"],["impl Clone for Input"],["impl Clone for Get"],["impl Clone for Env"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for Negate"],["impl Clone for BitwiseAnd"],["impl Clone for Procedure"],["impl Clone for Output"],["impl Clone for Box<dyn AssignOp>"],["impl Clone for Axis"],["impl Clone for StandardOp"],["impl Clone for BitwiseXor"],["impl Clone for FFIBinding"],["impl Clone for BitwiseNor"],["impl Clone for CoreOp"],["impl Clone for OutputMode"],["impl Clone for Direction"],["impl Clone for Channel"],["impl Clone for Mutability"],["impl Clone for Or"],["impl Clone for StandardBuiltin"],["impl Clone for CoreProgram"],["impl Clone for Color"],["impl Clone for Expr"],["impl Clone for Type"],["impl Clone for Box<dyn UnaryOp>"],["impl Clone for PolyProcedure"],["impl Clone for Add"],["impl Clone for InputMode"],["impl Clone for StandardOp"],["impl Clone for Annotation"],["impl Clone for Comparison"],["impl Clone for Location"],["impl Clone for BitwiseOr"]]
+"sage":[["impl Clone for Tag"],["impl Clone for Data"],["impl Clone for FFIProcedure"],["impl Clone for Declaration"],["impl Clone for Pattern"],["impl Clone for Arithmetic"],["impl Clone for CoreBuiltin"],["impl Clone for CoreOp"],["impl Clone for StandardProgram"],["impl Clone for Globals"],["impl Clone for StandardDevice"],["impl Clone for SourceCodeLocation"],["impl Clone for BitwiseNand"],["impl Clone for BitwiseNot"],["impl Clone for Assign"],["impl Clone for Error"],["impl Clone for And"],["impl Clone for New"],["impl Clone for Not"],["impl Clone for StandardProgram"],["impl Clone for Put"],["impl Clone for Box<dyn TernaryOp>"],["impl Clone for Box<dyn BinaryOp>"],["impl Clone for CoreProgram"],["impl Clone for Delete"],["impl Clone for Input"],["impl Clone for Get"],["impl Clone for Env"],["impl Clone for Error"],["impl Clone for Error"],["impl Clone for Negate"],["impl Clone for BitwiseAnd"],["impl Clone for Procedure"],["impl Clone for Output"],["impl Clone for Box<dyn AssignOp>"],["impl Clone for Axis"],["impl Clone for StandardOp"],["impl Clone for BitwiseXor"],["impl Clone for FFIBinding"],["impl Clone for BitwiseNor"],["impl Clone for CoreOp"],["impl Clone for OutputMode"],["impl Clone for Direction"],["impl Clone for Channel"],["impl Clone for Mutability"],["impl Clone for Or"],["impl Clone for StandardBuiltin"],["impl Clone for CoreProgram"],["impl Clone for Color"],["impl Clone for Expr"],["impl Clone for ConstExpr"],["impl Clone for Type"],["impl Clone for Box<dyn UnaryOp>"],["impl Clone for PolyProcedure"],["impl Clone for Add"],["impl Clone for InputMode"],["impl Clone for StandardOp"],["impl Clone for Annotation"],["impl Clone for Comparison"],["impl Clone for Location"],["impl Clone for BitwiseOr"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/trait.impl/core/cmp/trait.PartialEq.js b/docs/trait.impl/core/cmp/trait.PartialEq.js
index ea1e63c6..39cd4ba0 100644
--- a/docs/trait.impl/core/cmp/trait.PartialEq.js
+++ b/docs/trait.impl/core/cmp/trait.PartialEq.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl PartialEq for OutputMode"],["impl PartialEq for PolyProcedure"],["impl PartialEq for BitwiseXor"],["impl PartialEq for Delete"],["impl PartialEq for FFIBinding"],["impl PartialEq for StandardOp"],["impl PartialEq for Pattern"],["impl PartialEq for Tag"],["impl PartialEq for And"],["impl PartialEq for CoreOp"],["impl PartialEq for Get"],["impl PartialEq for CoreProgram"],["impl PartialEq for InputMode"],["impl PartialEq for Comparison"],["impl PartialEq for BitwiseNot"],["impl PartialEq for Annotation"],["impl PartialEq for Type"],["impl PartialEq for CoreProgram"],["impl PartialEq for Data"],["impl PartialEq for StandardProgram"],["impl PartialEq for dyn TernaryOp"],["impl PartialEq for Input"],["impl PartialEq for SourceCodeLocation"],["impl PartialEq for Add"],["impl PartialEq for Expr"],["impl PartialEq for Procedure"],["impl PartialEq for StandardProgram"],["impl PartialEq for BitwiseNor"],["impl PartialEq for BitwiseAnd"],["impl PartialEq for Channel"],["impl PartialEq for Mutability"],["impl PartialEq for FFIProcedure"],["impl PartialEq for dyn AssignOp"],["impl PartialEq for dyn UnaryOp"],["impl PartialEq for Negate"],["impl PartialEq for StandardBuiltin"],["impl PartialEq for CoreBuiltin"],["impl PartialEq for Error"],["impl PartialEq for BitwiseNand"],["impl PartialEq for ConstExpr"],["impl PartialEq for Output"],["impl PartialEq for Put"],["impl PartialEq for Declaration"],["impl PartialEq for Direction"],["impl PartialEq for dyn BinaryOp"],["impl PartialEq for New"],["impl PartialEq for StandardOp"],["impl PartialEq for CoreOp"],["impl PartialEq for Color"],["impl PartialEq for Location"],["impl PartialEq for Error"],["impl PartialEq for Axis"],["impl PartialEq for BitwiseOr"]]
+"sage":[["impl PartialEq for OutputMode"],["impl PartialEq for PolyProcedure"],["impl PartialEq for BitwiseXor"],["impl PartialEq for Delete"],["impl PartialEq for FFIBinding"],["impl PartialEq for StandardOp"],["impl PartialEq for Pattern"],["impl PartialEq for Tag"],["impl PartialEq for And"],["impl PartialEq for CoreOp"],["impl PartialEq for Get"],["impl PartialEq for CoreProgram"],["impl PartialEq for InputMode"],["impl PartialEq for Comparison"],["impl PartialEq for BitwiseNot"],["impl PartialEq for Annotation"],["impl PartialEq for Type"],["impl PartialEq for CoreProgram"],["impl PartialEq for Data"],["impl PartialEq for StandardProgram"],["impl PartialEq for dyn TernaryOp"],["impl PartialEq for Input"],["impl PartialEq for SourceCodeLocation"],["impl PartialEq for Add"],["impl PartialEq for Expr"],["impl PartialEq for Procedure"],["impl PartialEq for StandardProgram"],["impl PartialEq for BitwiseNor"],["impl PartialEq for BitwiseAnd"],["impl PartialEq for Channel"],["impl PartialEq for Mutability"],["impl PartialEq for FFIProcedure"],["impl PartialEq for dyn AssignOp"],["impl PartialEq for dyn UnaryOp"],["impl PartialEq for Negate"],["impl PartialEq for ConstExpr"],["impl PartialEq for StandardBuiltin"],["impl PartialEq for CoreBuiltin"],["impl PartialEq for Error"],["impl PartialEq for BitwiseNand"],["impl PartialEq for Output"],["impl PartialEq for Put"],["impl PartialEq for Declaration"],["impl PartialEq for Direction"],["impl PartialEq for dyn BinaryOp"],["impl PartialEq for New"],["impl PartialEq for StandardOp"],["impl PartialEq for CoreOp"],["impl PartialEq for Color"],["impl PartialEq for Location"],["impl PartialEq for Error"],["impl PartialEq for Axis"],["impl PartialEq for BitwiseOr"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/trait.impl/core/convert/trait.From.js b/docs/trait.impl/core/convert/trait.From.js
index f8d1eb70..43b34f5e 100644
--- a/docs/trait.impl/core/convert/trait.From.js
+++ b/docs/trait.impl/core/convert/trait.From.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"sage":[["impl From<Mutability> for bool"],["impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration"],["impl From<CoreProgram> for StandardProgram"],["impl From<(&str, Mutability, Expr)> for Declaration"],["impl From<ConstExpr> for Expr"],["impl From<(&str, FFIProcedure)> for Declaration"],["impl From<bool> for Mutability"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<(Pattern, Expr)> for Declaration"],["impl<T> From<Vec<T>> for Declaration
where\n T: Into<Declaration>,
"],["impl From<(String, ConstExpr)> for Declaration"],["impl From<(String, Procedure)> for Declaration"],["impl From<(String, PolyProcedure)> for Declaration"],["impl From<(String, Mutability, Expr)> for Declaration"],["impl From<CoreProgram> for StandardProgram"],["impl From<(String, Type)> for Declaration"],["impl From<(&str, ConstExpr)> for Declaration"],["impl From<(String, Expr)> for Declaration"],["impl From<(&str, Type)> for Declaration"],["impl From<(String, FFIProcedure)> for Declaration"],["impl From<(&str, Mutability, Type, Expr)> for Declaration"],["impl From<(&str, Expr)> for Declaration"],["impl From<SourceCodeLocation> for Annotation"],["impl From<(String, Mutability, Option<Type>, Expr)> for Declaration"],["impl<K, V> From<BTreeMap<K, V>> for Declaration"],["impl From<Box<Declaration>> for Declaration"],["impl From<(&str, Procedure)> for Declaration"],["impl From<(String, Mutability, Type, Expr)> for Declaration"],["impl From<(&str, PolyProcedure)> for Declaration"]] +"sage":[["impl From<Mutability> for bool"],["impl From<(&str, Mutability, Option<Type>, Expr)> for Declaration"],["impl From<CoreProgram> for StandardProgram"],["impl From<(&str, Mutability, Expr)> for Declaration"],["impl From<ConstExpr> for Expr"],["impl From<(&str, FFIProcedure)> for Declaration"],["impl From<bool> for Mutability"],["impl From<Error> for Error"],["impl From<Error> for Error"],["impl From<(Pattern, Expr)> for Declaration"],["impl<T> From<Vec<T>> for Declaration
where\n T: Into<Declaration>,
"],["impl From<(String, ConstExpr)> for Declaration"],["impl From<PolyProcedure> for ConstExpr"],["impl From<(String, Procedure)> for Declaration"],["impl From<(String, PolyProcedure)> for Declaration"],["impl From<(String, Mutability, Expr)> for Declaration"],["impl From<CoreProgram> for StandardProgram"],["impl From<(String, Type)> for Declaration"],["impl From<(&str, ConstExpr)> for Declaration"],["impl From<Procedure> for ConstExpr"],["impl From<(String, Expr)> for Declaration"],["impl From<(&str, Type)> for Declaration"],["impl From<(String, FFIProcedure)> for Declaration"],["impl From<(&str, Mutability, Type, Expr)> for Declaration"],["impl From<(&str, Expr)> for Declaration"],["impl From<SourceCodeLocation> for Annotation"],["impl From<(String, Mutability, Option<Type>, Expr)> for Declaration"],["impl From<Type> for ConstExpr"],["impl<K, V> From<BTreeMap<K, V>> for Declaration"],["impl From<Box<Declaration>> for Declaration"],["impl From<(&str, Procedure)> for Declaration"],["impl From<(String, Mutability, Type, Expr)> for Declaration"],["impl From<(&str, PolyProcedure)> for Declaration"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/fmt/trait.Debug.js b/docs/trait.impl/core/fmt/trait.Debug.js index c03598e8..e353e24b 100644 --- a/docs/trait.impl/core/fmt/trait.Debug.js +++ b/docs/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl Debug for Color"],["impl Debug for New"],["impl Debug for And"],["impl Debug for StandardOp"],["impl Debug for Channel"],["impl Debug for Negate"],["impl Debug for Tag"],["impl Debug for Get"],["impl Debug for Error"],["impl Debug for BitwiseNot"],["impl Debug for StandardProgram"],["impl Debug for BitwiseXor"],["impl Debug for Mutability"],["impl Debug for SourceCodeLocation"],["impl Debug for Comparison"],["impl Debug for TestingDevice"],["impl Debug for Error"],["impl Debug for Type"],["impl Debug for StandardBuiltin"],["impl Debug for BitwiseAnd"],["impl Debug for CoreBuiltin"],["impl Debug for Axis"],["impl Debug for Expr"],["impl Debug for CoreOp"],["impl Debug for Procedure"],["impl Debug for Data"],["impl Debug for Not"],["impl Debug for Input"],["impl Debug for Globals"],["impl Debug for Or"],["impl Debug for PolyProcedure"],["impl Debug for Assign"],["impl Debug for Declaration"],["impl Debug for FFIProcedure"],["impl Debug for BitwiseOr"],["impl Debug for BitwiseNand"],["impl Debug for ConstExpr"],["impl Debug for BitwiseNor"],["impl Debug for InputMode"],["impl Debug for CoreOp"],["impl Debug for StandardDevice"],["impl Debug for StandardOp"],["impl Debug for Location"],["impl Debug for FFIBinding"],["impl Debug for Add"],["impl Debug for Env"],["impl Debug for Output"],["impl Debug for Error"],["impl Debug for Delete"],["impl Debug for Put"],["impl Debug for Pattern"],["impl Debug for Arithmetic"],["impl Debug for Direction"],["impl Debug for OutputMode"],["impl Debug for Annotation"],["impl Debug for CoreProgram"]] +"sage":[["impl Debug for Color"],["impl Debug for New"],["impl Debug for And"],["impl Debug for StandardOp"],["impl Debug for Channel"],["impl Debug for Negate"],["impl Debug for Tag"],["impl Debug for ConstExpr"],["impl Debug for Get"],["impl Debug for Error"],["impl Debug for BitwiseNot"],["impl Debug for StandardProgram"],["impl Debug for BitwiseXor"],["impl Debug for Mutability"],["impl Debug for SourceCodeLocation"],["impl Debug for Comparison"],["impl Debug for TestingDevice"],["impl Debug for Error"],["impl Debug for Type"],["impl Debug for StandardBuiltin"],["impl Debug for BitwiseAnd"],["impl Debug for CoreBuiltin"],["impl Debug for Axis"],["impl Debug for Expr"],["impl Debug for CoreOp"],["impl Debug for Procedure"],["impl Debug for Data"],["impl Debug for Not"],["impl Debug for Input"],["impl Debug for Globals"],["impl Debug for Or"],["impl Debug for PolyProcedure"],["impl Debug for Assign"],["impl Debug for Declaration"],["impl Debug for FFIProcedure"],["impl Debug for BitwiseOr"],["impl Debug for BitwiseNand"],["impl Debug for BitwiseNor"],["impl Debug for InputMode"],["impl Debug for CoreOp"],["impl Debug for StandardDevice"],["impl Debug for StandardOp"],["impl Debug for Location"],["impl Debug for FFIBinding"],["impl Debug for Add"],["impl Debug for Env"],["impl Debug for Output"],["impl Debug for Error"],["impl Debug for Delete"],["impl Debug for Put"],["impl Debug for Pattern"],["impl Debug for Arithmetic"],["impl Debug for Direction"],["impl Debug for OutputMode"],["impl Debug for Annotation"],["impl Debug for CoreProgram"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js index 56ee39b7..38cf9af3 100644 --- a/docs/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/docs/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"sage":[["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for BitwiseNor"],["impl StructuralPartialEq for Data"],["impl StructuralPartialEq for FFIProcedure"],["impl StructuralPartialEq for BitwiseNot"],["impl StructuralPartialEq for BitwiseOr"],["impl StructuralPartialEq for Error"],["impl StructuralPartialEq for Type"],["impl StructuralPartialEq for CoreBuiltin"],["impl StructuralPartialEq for Negate"],["impl StructuralPartialEq for Error"],["impl StructuralPartialEq for Direction"],["impl StructuralPartialEq for And"],["impl StructuralPartialEq for FFIBinding"],["impl StructuralPartialEq for Color"],["impl StructuralPartialEq for Location"],["impl StructuralPartialEq for New"],["impl StructuralPartialEq for BitwiseXor"],["impl StructuralPartialEq for Delete"],["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for Tag"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for BitwiseAnd"],["impl StructuralPartialEq for Output"],["impl StructuralPartialEq for Comparison"],["impl StructuralPartialEq for Pattern"],["impl StructuralPartialEq for Add"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for StandardBuiltin"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for Get"],["impl StructuralPartialEq for Annotation"],["impl StructuralPartialEq for Declaration"],["impl StructuralPartialEq for BitwiseNand"],["impl StructuralPartialEq for ConstExpr"],["impl StructuralPartialEq for OutputMode"],["impl StructuralPartialEq for Input"],["impl StructuralPartialEq for InputMode"],["impl StructuralPartialEq for SourceCodeLocation"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for Channel"],["impl StructuralPartialEq for Axis"],["impl StructuralPartialEq for Put"]] +"sage":[["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for BitwiseNor"],["impl StructuralPartialEq for ConstExpr"],["impl StructuralPartialEq for Data"],["impl StructuralPartialEq for FFIProcedure"],["impl StructuralPartialEq for BitwiseNot"],["impl StructuralPartialEq for BitwiseOr"],["impl StructuralPartialEq for Error"],["impl StructuralPartialEq for Type"],["impl StructuralPartialEq for CoreBuiltin"],["impl StructuralPartialEq for Negate"],["impl StructuralPartialEq for Error"],["impl StructuralPartialEq for Direction"],["impl StructuralPartialEq for And"],["impl StructuralPartialEq for FFIBinding"],["impl StructuralPartialEq for Color"],["impl StructuralPartialEq for Location"],["impl StructuralPartialEq for New"],["impl StructuralPartialEq for BitwiseXor"],["impl StructuralPartialEq for Delete"],["impl StructuralPartialEq for CoreOp"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for Tag"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for BitwiseAnd"],["impl StructuralPartialEq for Output"],["impl StructuralPartialEq for Comparison"],["impl StructuralPartialEq for Pattern"],["impl StructuralPartialEq for Add"],["impl StructuralPartialEq for CoreProgram"],["impl StructuralPartialEq for StandardBuiltin"],["impl StructuralPartialEq for StandardProgram"],["impl StructuralPartialEq for Get"],["impl StructuralPartialEq for Annotation"],["impl StructuralPartialEq for Declaration"],["impl StructuralPartialEq for BitwiseNand"],["impl StructuralPartialEq for OutputMode"],["impl StructuralPartialEq for Input"],["impl StructuralPartialEq for InputMode"],["impl StructuralPartialEq for SourceCodeLocation"],["impl StructuralPartialEq for StandardOp"],["impl StructuralPartialEq for Channel"],["impl StructuralPartialEq for Axis"],["impl StructuralPartialEq for Put"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/examples/frontend/const-generics-member.sg b/examples/frontend/const-generics-member.sg index aec8cd41..9c304e8d 100644 --- a/examples/frontend/const-generics-member.sg +++ b/examples/frontend/const-generics-member.sg @@ -1,8 +1,8 @@ -fun test() { +fun test() { println(X.0); } -fun test2() { +fun test2() { println(X); println("x: ", X.x); println("y: ", X.y); @@ -28,7 +28,7 @@ impl Point { } } -fun test3() { +fun test3() { let mut p = P; p.move(1, 1); println(p) diff --git a/examples/frontend/matrix.sg b/examples/frontend/matrix.sg index 0bc5926c..7f7f4d5e 100644 --- a/examples/frontend/matrix.sg +++ b/examples/frontend/matrix.sg @@ -1,4 +1,4 @@ -struct Matrix { +struct Matrix { arr: [[T * Cols] * Rows] } @@ -11,7 +11,7 @@ impl Matrix { return &self.arr[row][col]; } - fun mul( + fun mul( &self, other: &Matrix, zero: T, @@ -31,23 +31,23 @@ impl Matrix { result } - fun set(&mut self, row: Int, col: Int) { + fun set(&mut self, row: Int, col: Int) { self.arr[row][col] = X; } - fun set_range(&mut self, row: Int) { + fun set_range(&mut self, row: Int) { for let mut i=0; i(&mut self, row: Int) { + fun set_row(&mut self, row: Int) { for let mut i=0; i(&mut self, col: Int) { + fun set_col(&mut self, col: Int) { for let mut i=0; i { +struct Matrix { arr: [[T * Cols] * Rows] } @@ -11,7 +11,7 @@ impl Matrix { return &self.arr[row][col]; } - fun mul( + fun mul( &self, other: &Matrix, zero: T, diff --git a/examples/frontend/typecheck-const-generics.sg b/examples/frontend/typecheck-const-generics.sg index 81d79352..c72b3f36 100644 --- a/examples/frontend/typecheck-const-generics.sg +++ b/examples/frontend/typecheck-const-generics.sg @@ -1,4 +1,4 @@ -struct Matrix { +struct Matrix { arr: [[T * Cols] * Rows] } @@ -11,7 +11,7 @@ impl Matrix { return &self.arr[row][col]; } - fun mul( + fun mul( &self, other: &Matrix, zero: T, @@ -31,23 +31,23 @@ impl Matrix { result } - fun set(&mut self, row: Int, col: Int) { + fun set(&mut self, row: Int, col: Int) { self.arr[row][col] = X; } - fun set_range(&mut self, row: Int) { + fun set_range(&mut self, row: Int) { for let mut i=0; i(&mut self, row: Int) { + fun set_row(&mut self, row: Int) { for let mut i=0; i(&mut self, col: Int) { + fun set_col(&mut self, col: Int) { for let mut i=0; i + ContextError<&'a str>>( let (input, _) = tag("<")(input)?; let (input, _) = whitespace(input)?; let (input, mut params) = many0(terminated(alt(( - map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty))), + preceded(delimited(whitespace, tag("const"), whitespace), map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty)))), map(parse_symbol, |x| (x, None)) - )), tag(",")))(input)?; + )), preceded(whitespace, tag(","))))(input)?; let (input, _) = whitespace(input)?; let (input, last_param) = opt(alt(( - map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty))), + preceded(delimited(whitespace, tag("const"), whitespace), map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty)))), + // map(pair(parse_symbol, delimited(terminated(whitespace, tag(":")), parse_type, whitespace)), |(name, ty)| (name, Some(ty))), map(parse_symbol, |x| (x, None)) )))(input)?; let (input, _) = whitespace(input)?; diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index ce5ffc2a..1b565a25 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -106,7 +106,7 @@ impl ConstExpr { } pub fn equals(&self, other: &Self, env: &Env) -> bool { - info!("{self} == {other} in const?"); + debug!("{self} == {other} in const?"); match (self, other) { (Self::Any, _) | (_, Self::Any) => true, (Self::Type(Type::Any), _) | (_, Self::Type(Type::Any)) => true, @@ -247,7 +247,7 @@ impl ConstExpr { Self::Member(container, member) => { let container_ty = container.get_type_checked(env, i)?; - info!("Member access on type: {container_ty:?}: {container} . {member}"); + debug!("Member access on type: {container_ty:?}: {container} . {member}"); Ok(match (*container.clone(), *member.clone()) { (Self::Annotated(inner, metadata), member) => { Self::Member(inner, member.into()) @@ -325,7 +325,7 @@ impl ConstExpr { } } (Self::Type(ty), Self::Symbol(name)) => { - info!("Getting member {name} from {ty}"); + debug!("Getting member {name} from {ty}"); if ty.is_const_param() { let cexpr = ty.simplify_until_const_param(env, false)?; return cexpr.eval_checked(env, i)?.field(Self::Symbol(name)).eval_checked(env, i) @@ -598,7 +598,7 @@ impl GetType for ConstExpr { } Self::Type(t) => { - info!("Getting type of type {t}"); + debug!("Getting type of type {t}"); let result = if t.is_const_param() { let cexpr = t.simplify_until_const_param(env, false)?; cexpr.get_type(env)? @@ -615,7 +615,7 @@ impl GetType for ConstExpr { // } else { // Type::Type(t.clone().into()) // }; - // info!("Got type of type {t} = {result}"); + // debug!("Got type of type {t} = {result}"); result } @@ -627,7 +627,7 @@ impl GetType for ConstExpr { let as_int = field.clone().as_int(env); let val_type = val.get_type_checked(env, i)?; - info!("Got type of container access {val} . {field}\nContainer: {val_type:?}, is_const_param: {}", val_type.is_const_param()); + debug!("Got type of container access {val} . {field}\nContainer: {val_type:?}, is_const_param: {}", val_type.is_const_param()); // val_type.add_monomorphized_associated_consts(env)?; // Get the type of the value to get the member of. let val_type = val_type.simplify_until_concrete(env, false)?; @@ -655,7 +655,7 @@ impl GetType for ConstExpr { } Type::Type(ty) => { - info!("Got type {ty}"); + debug!("Got type {ty}"); if ty.is_const_param() { ty.simplify_until_const_param(env, false)?.eval(env)?.field(*field).get_type_checked(env, i)? } else { diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index c9163d58..37cea4df 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -12,7 +12,7 @@ use std::{ }; use std::{hash::Hash, hash::Hasher}; -use log::{debug, error, info}; +use log::{debug, error}; use serde_derive::{Deserialize, Serialize}; /// A polymorphic procedure of LIR code which can be applied to a list of arguments with type arguments. @@ -247,7 +247,7 @@ impl TypeCheck for PolyProcedure { } *self.has_type_checked.write().unwrap() = true; - info!("Type checking {self}"); + debug!("Type checking {self}"); // Create a new scope for the procedure's body, and define the arguments for the scope. let mut new_env = env.new_scope(); @@ -273,9 +273,9 @@ impl TypeCheck for PolyProcedure { self.ret.type_check(&new_env)?; // Get the type of the procedure's body, and confirm that it matches the return type. - info!("Getting body type of {}", self.name); + debug!("Getting body type of {}", self.name); let body_type = self.body.get_type(&new_env)?; - info!("Got body type {body_type} of {}", self.name); + debug!("Got body type {body_type} of {}", self.name); if !body_type.can_decay_to(&self.ret, &new_env)? { error!( @@ -290,7 +290,7 @@ impl TypeCheck for PolyProcedure { }) } else { // Typecheck the procedure's body. - info!("Typechecking body of {} = {}", self.name, self.body); + debug!("Typechecking body of {} = {}", self.name, self.body); self.body.type_check(&new_env) } } diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index 91eec06d..f4f6125b 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -716,7 +716,7 @@ impl TypeCheck for Expr { expr: self.clone(), }); } else { - info!("Found {found} can decay to {expected} in {self}") + debug!("Found {found} can decay to {expected} in {self}") } } Ok(()) @@ -933,7 +933,7 @@ impl TypeCheck for Expr { // Typecheck a constant expression. impl TypeCheck for ConstExpr { fn type_check(&self, env: &Env) -> Result<(), Error> { - info!("Typechecking constant expression: {}", self); + debug!("Typechecking constant expression: {}", self); if env.has_type_checked_const(self) { return Ok(()); } @@ -974,7 +974,7 @@ impl TypeCheck for ConstExpr { match e_type.type_check_member(field, &Expr::ConstExpr(*e.clone()), env) { Ok(_) => Ok(()), Err(_err) => { - info!("Member {field} not found in type {e_type} in environment {env}"); + debug!("Member {field} not found in type {e_type} in environment {env}"); match field .clone() .as_symbol(env) diff --git a/tests/c_target.rs b/tests/c_target.rs index ad65a238..ca823697 100644 --- a/tests/c_target.rs +++ b/tests/c_target.rs @@ -25,7 +25,7 @@ fn test_c_target_frontend_examples() { builder.init(); rayon::ThreadPoolBuilder::new() - .num_threads(1) + .num_threads(16) .stack_size(512 * 1024 * 1024) .build_global() .unwrap(); From f699f27e2793a77a8c2804adf5fac8d35a131f93 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 04:24:12 -0400 Subject: [PATCH 11/29] Fixed example --- examples/frontend/matrix.sg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/frontend/matrix.sg b/examples/frontend/matrix.sg index 7f7f4d5e..6ca1c127 100644 --- a/examples/frontend/matrix.sg +++ b/examples/frontend/matrix.sg @@ -18,7 +18,7 @@ impl Matrix { add: fun(T, T) -> T, mul: fun(T, T) -> T ): Matrix { - let mut result = Matrix.new(0); + let mut result = Matrix.new(zero); for let mut j=0; j Date: Sat, 7 Sep 2024 05:58:30 -0400 Subject: [PATCH 12/29] Added better typechecking for polymorphic code --- src/lir/env.rs | 70 ++++++++++++++------------ src/lir/expr/const_expr.rs | 12 +++-- src/lir/expr/pattern.rs | 6 +-- src/lir/expr/procedure/poly.rs | 6 +++ src/lir/types/check.rs | 90 +++++++++++++++++++++++++--------- src/lir/types/inference.rs | 7 +++ src/lir/types/mod.rs | 4 +- src/lir/types/size.rs | 7 +++ 8 files changed, 139 insertions(+), 63 deletions(-) diff --git a/src/lir/env.rs b/src/lir/env.rs index 247dc103..bf5875cc 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -778,10 +778,10 @@ impl Env { let name = alias.clone().unwrap_or(name.clone()); // if !self.types.contains_key(&name) { - self.define_const(&name, access.clone()); if let Ok(Type::Type(ty)) = access.get_type(self) { self.define_type(&name, *ty); } + self.define_const(&name, access.clone()); } } Declaration::FromImportAll(module) => { @@ -791,10 +791,10 @@ impl Env { for name in fields.keys() { let access = module.clone().field(ConstExpr::Symbol(name.clone())); - self.define_const(name, access.clone()); if let Ok(Type::Type(ty)) = access.get_type(self) { self.define_type(name, *ty); } + self.define_const(name, access.clone()); } } else { error!("Invalid module type: {module_ty}"); @@ -957,7 +957,7 @@ impl Env { None => expr.get_type(self)?, }; // ty.add_monomorphized_associated_consts(self)?; - self.define_var(name, *mutability, ty)?; + self.define_var(name, *mutability, ty, false)?; } Declaration::VarPat(pat, expr) => { let ty = expr.get_type(self)?; @@ -1007,6 +1007,7 @@ impl Env { if ty.is_const_param() { if let Ok(ty) = ty.clone().simplify_until_const_param(self, false) { self.define_const(&name, ty); + return; } } match &ty { @@ -1038,35 +1039,36 @@ impl Env { /// typechecking errors if the environment does not already have a memoized size /// for the type of a subexpression. pub fn define_types(&mut self, types: Vec<(String, Type)>) { - for (name, ty) in &types { - match &ty { - Type::Symbol(sym) if sym == name => { - trace!("Defining type {ty} to itself as {name}"); - } - _ => { - if self.types.contains_key(name) { - debug!("Redefining type {name} in {self}"); - } else { - trace!("Defining type {name} as {ty}"); - Arc::make_mut(&mut self.consts) - .insert(name.clone(), ConstExpr::Type(ty.clone())); - Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone()); - } - } - } + for (name, ty) in types { + self.define_type(name, ty) + // match &ty { + // Type::Symbol(sym) if sym == name => { + // trace!("Defining type {ty} to itself as {name}"); + // } + // _ => { + // if self.types.contains_key(name) { + // debug!("Redefining type {name} in {self}"); + // } else { + // trace!("Defining type {name} as {ty}"); + // Arc::make_mut(&mut self.consts) + // .insert(name.clone(), ConstExpr::Type(ty.clone())); + // Arc::make_mut(&mut self.types).insert(name.clone(), ty.clone()); + // } + // } + // } } - for (_, ty) in types { - if let Ok(simplified) = ty.simplify_until_concrete(self, false) { - if let Ok(size) = simplified.get_size(self) { - self.set_precalculated_size(simplified, size); - } else { - debug!("Failed to memoize type size for {simplified}"); - } - } else { - debug!("Failed to simplify type {ty}"); - } - } + // for (_, ty) in types { + // if let Ok(simplified) = ty.simplify_until_concrete(self, false) { + // if let Ok(size) = simplified.get_size(self) { + // self.set_precalculated_size(simplified, size); + // } else { + // debug!("Failed to memoize type size for {simplified}"); + // } + // } else { + // debug!("Failed to simplify type {ty}"); + // } + // } } /// Get a type definition from this environment. @@ -1224,10 +1226,15 @@ impl Env { var: impl ToString, mutability: Mutability, ty: Type, + compiling: bool ) -> Result { let var = var.to_string(); // Get the size of the variable we're defining. - let size = ty.get_size(self)? as isize; + let size = if compiling { + ty.get_size(self)? + } else { + ty.get_size(self).unwrap_or(0) + } as isize; // Remember the offset of the variable under the current scope. let offset = self.fp_offset; // Increment the frame pointer offset by the size of the variable @@ -1301,6 +1308,7 @@ impl Env { impl Display for Env { fn fmt(&self, f: &mut Formatter) -> FmtResult { writeln!(f, "Env")?; + return Ok(()); writeln!(f, " Types:")?; for (name, ty) in self.types.iter() { writeln!(f, " {}: {}", name, ty)?; diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index 1b565a25..02cd66eb 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -803,18 +803,21 @@ impl GetType for ConstExpr { let mut ret = ret.clone(); let mut new_env = env.clone(); for ((param, ty), ty_arg) in params.iter().zip(ty_args.iter()) { - if let Type::ConstParam(cexpr) = ty_arg { + if ty_arg.is_const_param() { + let cexpr = ty_arg.simplify_until_const_param(env, false)?; + // if let Type::ConstParam(cexpr) = ty_arg { + // let cexpr = *cexpr.clone(); if let Some(expected_ty) = ty { let expected = expected_ty.clone(); let found = cexpr.get_type_checked(env, i)?; if !found.equals(expected_ty, env)? { error!("Mismatch in expected type for constant parameter"); - return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() }) + return Err(Error::MismatchedTypes { expected, found, expr: (cexpr.clone()).into() }) } ret.substitute(param, ty_arg) } ret.substitute(param, ty_arg); - new_env.define_const(param, *cexpr.clone()); + new_env.define_const(param, cexpr.clone()); } else { ret.substitute(param, ty_arg); new_env.define_type(param, ty_arg.clone()); @@ -1148,9 +1151,10 @@ impl Hash for ConstExpr { container.hash(state); member.hash(state); } - Self::Annotated(expr, _) => { + Self::Annotated(expr, metadata) => { state.write_u8(3); expr.hash(state); + metadata.hash(state); } Self::FFIProcedure(ffi_proc) => { state.write_u8(4); diff --git a/src/lir/expr/pattern.rs b/src/lir/expr/pattern.rs index 0a5c3ac4..5afb23bc 100644 --- a/src/lir/expr/pattern.rs +++ b/src/lir/expr/pattern.rs @@ -77,7 +77,7 @@ impl Pattern { let mut new_env = env.clone(); for (var, (mutabilty, ty)) in bindings { // Define the variables in the new environment. - new_env.define_var(var, mutabilty, ty)?; + new_env.define_var(var, mutabilty, ty, true)?; } // Get the type of the branch. @@ -500,7 +500,7 @@ impl Pattern { // Get the type of the expression being matched let match_type = expr.get_type(env)?.simplify_until_concrete(env, false)?; // Define the variable in the new environment. - new_env.define_var(var_name.clone(), Mutability::Immutable, match_type.clone())?; + new_env.define_var(var_name.clone(), Mutability::Immutable, match_type.clone(), true)?; // Generate the expression which evaluates the `match` expression. let match_expr = Pattern::match_pattern_helper(&Expr::var(&var_name), branches, &new_env)?; @@ -890,7 +890,7 @@ impl Pattern { bindings.sort_by_key(|(_, (_, _, offset))| *offset); // Define all the bindings in the environment. for (name, (mutability, ty, _)) in &bindings { - env.define_var(name, *mutability, ty.clone())?; + env.define_var(name, *mutability, ty.clone(), true)?; } Ok(()) } diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index 37cea4df..395bd8c2 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -77,6 +77,10 @@ impl PolyProcedure { } } + pub fn get_type_params(&self) -> &Vec<(String, Option)> { + &self.ty_params + } + pub fn from_mono(mono: Procedure, ty_params: Vec<(String, Option)>) -> Self { debug!(target: "mono", "Creating polymorphic procedure from monomorph {}", mono); let name = mono @@ -250,11 +254,13 @@ impl TypeCheck for PolyProcedure { debug!("Type checking {self}"); // Create a new scope for the procedure's body, and define the arguments for the scope. let mut new_env = env.new_scope(); + let mut new_env_save = env.new_scope(); // Define the type parameters of the procedure. for (name, ty) in &self.ty_params { match ty { Some(ty) => { + new_env.define_var(name, Mutability::Immutable, ty.clone(), false); new_env.define_type(name, ty.clone()); } None => { diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index f4f6125b..8edd2c8e 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -204,7 +204,7 @@ impl TypeCheck for Type { /// Check the type-soundness of a given expression. impl TypeCheck for Expr { fn type_check(&self, env: &Env) -> Result<(), Error> { - trace!("Type checking expression: {self}"); + error!("Type checking expression: {self}"); let ty = self.get_type(env)?; ty.type_check(env)?; @@ -318,7 +318,7 @@ impl TypeCheck for Expr { let bindings = pat.get_bindings(expr, &ty, env)?; // Define the bindings in the environment. for (name, (mutability, ty)) in bindings { - new_env.define_var(name, mutability, ty)?; + new_env.define_var(name, mutability, ty, true)?; } // Check the branch under the new environment. pat.type_check(expr, branch, env)?; @@ -513,8 +513,33 @@ impl TypeCheck for Expr { Type::Array(_, _) => { inner.refer(*expected_mutability).type_check(env)?; } + // Type::Type(ty) => match *ty { + // // If we are dereferencing/indexing a pointer, + // // confirm that the inner pointer has the expected mutability. + // Type::Pointer(found_mutability, _) => { + // if !found_mutability.can_decay_to(expected_mutability) { + // // If if doesn't, then return an error. + // error!("Expected mutability {expected_mutability} for expression {self}, but found mutability {found_mutability} in environment {env}"); + // return Err(Error::MismatchedMutability { + // expected: *expected_mutability, + // found: found_mutability, + // expr: self.clone(), + // }); + // } + // } + + // // If we are indexing an array, confirm that the inner array can be referenced with the expected mutability. + // Type::Array(_, _) => { + // inner.refer(*expected_mutability).type_check(env)?; + // } + // ty => { + // warn!("Unexpected deref of type {ty}"); + // } + // } - _ => {} + ty => { + warn!("Unexpected deref of type {ty}"); + } } e.type_check(env) @@ -580,7 +605,7 @@ impl TypeCheck for Expr { let ptr_type = ptr.get_type(env)?; let val_type = val.get_type(env)?; // Check that the pointer is a pointer. - if let Type::Pointer(mutability, ptr_elem_ty) = ptr_type { + if let Type::Pointer(mutability, ptr_elem_ty) = ptr_type.clone().discard_type_wrapper() { // Check that the type of the value is compatible // with the type of data stored at the pointer's // address. @@ -716,7 +741,7 @@ impl TypeCheck for Expr { expr: self.clone(), }); } else { - debug!("Found {found} can decay to {expected} in {self}") + info!("Found {found} can decay to {expected} in {self}") } } Ok(()) @@ -913,6 +938,10 @@ impl TypeCheck for Expr { // Confirm that the type is an array or pointer. match val_type { Type::Array(_, _) | Type::Pointer(_, _) => {} + // Type::Type(ty) => match *ty { + // Type::Array(_, _) | Type::Pointer(_, _) => {} + // _ => return Err(Error::InvalidIndex(self.clone())), + // } // If it isn't, return an error. _ => return Err(Error::InvalidIndex(self.clone())), } @@ -940,20 +969,31 @@ impl TypeCheck for ConstExpr { match self { Self::Any => Ok(()), - Self::Template(_ty_params, _template) => { + Self::Template(ty_params, template) => { // Create a new environment with the type parameters defined. - // let mut new_env = env.clone(); + let mut new_env = env.clone(); + for (name, ty) in ty_params { + if let Some(ty) = ty { + new_env.define_type(name, ty.clone()); + new_env.define_var(name, Mutability::Immutable, ty.clone(), false)?; + } else { + new_env.define_type(name, Type::Unit(name.clone(), Box::new(Type::None))) + } + } // // Define the type parameters in the environment. // new_env.define_types( // ty_params // .clone() // .into_iter() - // .map(|p| (p.clone(), Type::Unit(p, Box::new(Type::None)))) + // .map(|(p, ty)| (p.clone(), match ty { + // Some(ty) => ty.clone(), + // None => Type::Unit(p, Box::new(Type::None)) + // })) // .collect(), // ); // Check the template type. - // template.type_check(&new_env) - Ok(()) + template.type_check(&new_env) + // Ok(()) } Self::Annotated(expr, metadata) => expr @@ -1029,7 +1069,7 @@ impl TypeCheck for ConstExpr { debug!( "Monomorphizing {expr} with type arguments {ty_args:?} in environment {env}" ); - match **expr { + match expr.clone().eval(env)? { Self::Template(ref ty_params, ref template) => { // Create a new environment with the type parameters defined. // Define the type parameters in the environment. @@ -1040,18 +1080,21 @@ impl TypeCheck for ConstExpr { let mut ret = template.clone(); let mut new_env = env.clone(); for ((param, ty), ty_arg) in ty_params.iter().zip(ty_args.iter()) { - if let Type::ConstParam(cexpr) = ty_arg { + if ty_arg.is_const_param() { + let cexpr = ty_arg.simplify_until_const_param(env, true)?; + // if let Type::ConstParam(cexpr) = ty_arg { + // let cexpr = *cexpr.clone(); if let Some(expected_ty) = ty { let expected = expected_ty.clone(); let found = cexpr.get_type(env)?; if !found.equals(expected_ty, env)? { error!("Mismatch in expected type for constant parameter"); - return Err(Error::MismatchedTypes { expected, found, expr: (*cexpr.clone()).into() }) + return Err(Error::MismatchedTypes { expected, found, expr: (cexpr.clone()).into() }) } ret.substitute(param, ty_arg) } ret.substitute(param, ty_arg); - new_env.define_const(param, *cexpr.clone()); + new_env.define_const(param, cexpr.clone()); } else { ret.substitute(param, ty_arg); new_env.define_type(param, ty_arg.clone()); @@ -1067,16 +1110,17 @@ impl TypeCheck for ConstExpr { Self::PolyProc(ref poly) => { // poly.monomorphize(ty_args.clone(), env)?.type_check(env) // Create a new environment with the type parameters defined. - // let mut new_env = env.clone(); + let mut new_env = env.clone(); // // Define the type parameters in the environment. - // new_env.define_types( - // poly.ty_params - // .clone() - // .into_iter() - // .zip(ty_args.clone()) - // .collect(), - // ); - // Check the template type. + new_env.define_types( + poly.get_type_params() + .clone() + .into_iter() + .map(|(name, _)| name) + .zip(ty_args.clone()) + .collect(), + ); + // // Check the template type. poly.type_check(env) // Ok(()) } diff --git a/src/lir/types/inference.rs b/src/lir/types/inference.rs index 8aabc9cd..aac3518e 100644 --- a/src/lir/types/inference.rs +++ b/src/lir/types/inference.rs @@ -414,6 +414,13 @@ impl GetType for Expr { // Only arrays and pointers can be indexed. Type::Array(item, _) => *item, Type::Pointer(_, item) => *item, + Type::Type(ty) => { + match *ty { + Type::Array(item, _) => *item, + Type::Pointer(_, item) => *item, + _ => return Err(Error::InvalidIndex(self.clone())), + } + } // If we're accessing an index of a type that is not an array or pointer, // we cannot access an index. diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 3970c642..1ae97f3c 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -2036,7 +2036,7 @@ impl Type { expr: &Expr, env: &Env, ) -> Result<(Type, usize), Error> { - trace!("Getting offset of member {member} in expression {self} in the environment {env}"); + info!("Getting offset of member {member} in expression {self} in the environment {env}"); match self { Type::Pointer(_, t) => t.get_member_offset(member, expr, env), Type::Struct(members) => { @@ -2413,7 +2413,7 @@ impl fmt::Display for Type { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { Self::ConstParam(t) => write!(f, "const param {t}"), - Self::Type(t) => write!(f, "{t}"), + Self::Type(t) => write!(f, "type {t}"), Self::Any => write!(f, "Any"), Self::Never => write!(f, "Never"), Self::Pointer(mutability, ty) => { diff --git a/src/lir/types/size.rs b/src/lir/types/size.rs index abc5812c..98787d3e 100644 --- a/src/lir/types/size.rs +++ b/src/lir/types/size.rs @@ -58,6 +58,11 @@ impl GetSize for Type { }); } + if self.is_const_param() { + let cexpr = self.clone().simplify_until_const_param(env, false)?; + return cexpr.get_size_checked(env, i) + } + let result = match self { Self::ConstParam(cexpr) => cexpr.get_size_checked(env, i)?, @@ -115,6 +120,8 @@ impl GetSize for Type { // Array types are the size of their element type times the size of // the array. Self::Array(elem, size) => { + error!("ABOUT TO GET ARRAY LEN {self}"); + elem.get_size_checked(env, i)? * size.clone().as_int(env)? as usize } // Struct types are the sum of the sizes of their fields. From 37bb81956ebb87ee390163a9d03bd5774b1612a4 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 06:47:52 -0400 Subject: [PATCH 13/29] Trying to optimize templates --- src/lir/compile.rs | 6 +++--- src/lir/env.rs | 12 +++++++----- src/lir/expr/const_expr.rs | 5 ++--- src/lir/expr/declaration.rs | 8 ++++---- src/lir/expr/procedure/poly.rs | 3 +-- src/lir/types/check.rs | 9 ++++----- src/lir/types/inference.rs | 16 ++++++++-------- src/lir/types/mod.rs | 26 ++++++++++++++++++++++++-- src/lir/types/size.rs | 10 ++++------ src/vm/std.rs | 1 - 10 files changed, 57 insertions(+), 39 deletions(-) diff --git a/src/lir/compile.rs b/src/lir/compile.rs index 40609e8b..7322b0c4 100644 --- a/src/lir/compile.rs +++ b/src/lir/compile.rs @@ -1117,7 +1117,7 @@ impl Compile for ConstExpr { } (Self::Declare(bindings, expr), field) => { let mut new_env = env.clone(); - new_env.add_declaration(&bindings)?; + new_env.add_declaration(&bindings, true)?; expr.field(field).compile_expr(&mut new_env, output)?; } (a, b) => { @@ -1137,7 +1137,7 @@ impl Compile for ConstExpr { Self::Declare(bindings, body) => { debug!("Compiling declaration {bindings} with body {body} in environment {env}"); let mut new_env = env.clone(); - new_env.add_declaration(&bindings)?; + new_env.add_declaration(&bindings, true)?; body.compile_expr(&mut new_env, output)?; } Self::Monomorphize(expr, ty_args) => match expr.eval(env)? { @@ -1183,7 +1183,7 @@ impl Compile for ConstExpr { } Self::Declare(bindings, expr) => { let mut new_env = env.clone(); - new_env.add_declaration(&bindings)?; + new_env.add_declaration(&bindings, true)?; expr.monomorphize(ty_args) .compile_expr(&mut new_env, output)?; } diff --git a/src/lir/env.rs b/src/lir/env.rs index bf5875cc..75287fa2 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -684,9 +684,9 @@ impl Env { } /// Add all the declarations to this environment. - pub(super) fn add_declaration(&mut self, declaration: &Declaration) -> Result<(), Error> { + pub(super) fn add_declaration(&mut self, declaration: &Declaration, compiling: bool) -> Result<(), Error> { self.add_compile_time_declaration(declaration)?; - self.add_local_variable_declaration(declaration)?; + self.add_local_variable_declaration(declaration, compiling)?; Ok(()) } @@ -918,6 +918,7 @@ impl Env { pub(super) fn add_local_variable_declaration( &mut self, declaration: &Declaration, + compiling: bool ) -> Result<(), Error> { trace!("Adding local declaration {declaration}"); match declaration { @@ -957,7 +958,7 @@ impl Env { None => expr.get_type(self)?, }; // ty.add_monomorphized_associated_consts(self)?; - self.define_var(name, *mutability, ty, false)?; + self.define_var(name, *mutability, ty, compiling)?; } Declaration::VarPat(pat, expr) => { let ty = expr.get_type(self)?; @@ -966,7 +967,7 @@ impl Env { } Declaration::Many(decls) => { for decl in decls.iter() { - self.add_local_variable_declaration(decl)?; + self.add_local_variable_declaration(decl, compiling)?; } } } @@ -1233,7 +1234,8 @@ impl Env { let size = if compiling { ty.get_size(self)? } else { - ty.get_size(self).unwrap_or(0) + // ty.get_size(self).unwrap_or(0) + 0 } as isize; // Remember the offset of the variable under the current scope. let offset = self.fp_offset; diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index 02cd66eb..21672e10 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -814,7 +814,6 @@ impl GetType for ConstExpr { error!("Mismatch in expected type for constant parameter"); return Err(Error::MismatchedTypes { expected, found, expr: (cexpr.clone()).into() }) } - ret.substitute(param, ty_arg) } ret.substitute(param, ty_arg); new_env.define_const(param, cexpr.clone()); @@ -1151,10 +1150,10 @@ impl Hash for ConstExpr { container.hash(state); member.hash(state); } - Self::Annotated(expr, metadata) => { + Self::Annotated(expr, _metadata) => { state.write_u8(3); expr.hash(state); - metadata.hash(state); + // metadata.hash(state); } Self::FFIProcedure(ffi_proc) => { state.write_u8(4); diff --git a/src/lir/expr/declaration.rs b/src/lir/expr/declaration.rs index 96972bed..845e82da 100644 --- a/src/lir/expr/declaration.rs +++ b/src/lir/expr/declaration.rs @@ -235,7 +235,7 @@ impl Declaration { expr.clone().compile_expr(env, output)?; // Add the variable to the environment, so that it can be used in the body. - env.add_local_variable_declaration(self)?; + env.add_local_variable_declaration(self, true)?; // Log the instructions for the declaration. output.log_instructions_after(name, &log_message, current_instruction); } @@ -608,7 +608,7 @@ impl TypeCheck for Declaration { Self::Many(decls) => { let mut new_env = env.clone(); // Add all the compile-time declarations to the environment. - new_env.add_declaration(&self.clone())?; + new_env.add_declaration(&self.clone(), false)?; // Get all the compile time declarations so we can type check them in parallel. let (comp_time_decls, run_time_decls): (Vec<_>, Vec<_>) = decls @@ -628,7 +628,7 @@ impl TypeCheck for Declaration { // .map(|decl| decl.type_check(&new_env)) .try_for_each(|decl| { decl.type_check(&new_env)?; - new_env.add_declaration(decl) + new_env.add_declaration(decl, false) })?; /* @@ -675,7 +675,7 @@ impl TypeCheck for Declaration { // Add all the compile-time declarations to the environment. // new_env.add_compile_time_declaration(&Self::Many(decls.clone()))?; - new_env.add_declaration(&Self::Many(decls.clone()))?; + new_env.add_declaration(&Self::Many(decls.clone()), false)?; trace!("Typechecking module {}", name); // Get all the compile time declarations so we can type check them in parallel. let (comp_time_decls, _run_time_decls): (Vec<_>, Vec<_>) = decls diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index 395bd8c2..57628c5b 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -254,13 +254,12 @@ impl TypeCheck for PolyProcedure { debug!("Type checking {self}"); // Create a new scope for the procedure's body, and define the arguments for the scope. let mut new_env = env.new_scope(); - let mut new_env_save = env.new_scope(); // Define the type parameters of the procedure. for (name, ty) in &self.ty_params { match ty { Some(ty) => { - new_env.define_var(name, Mutability::Immutable, ty.clone(), false); + new_env.define_var(name, Mutability::Immutable, ty.clone(), false)?; new_env.define_type(name, ty.clone()); } None => { diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index 8edd2c8e..04b23df4 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -204,7 +204,7 @@ impl TypeCheck for Type { /// Check the type-soundness of a given expression. impl TypeCheck for Expr { fn type_check(&self, env: &Env) -> Result<(), Error> { - error!("Type checking expression: {self}"); + trace!("Type checking expression: {self}"); let ty = self.get_type(env)?; ty.type_check(env)?; @@ -221,7 +221,7 @@ impl TypeCheck for Expr { // Check the declaration. declaration.type_check(&new_env)?; // Add the declarations to the environment. - new_env.add_declaration(declaration)?; + new_env.add_declaration(declaration, false)?; // Check the body with the declarations defined. body.type_check(&new_env) } @@ -318,7 +318,7 @@ impl TypeCheck for Expr { let bindings = pat.get_bindings(expr, &ty, env)?; // Define the bindings in the environment. for (name, (mutability, ty)) in bindings { - new_env.define_var(name, mutability, ty, true)?; + new_env.define_var(name, mutability, ty, false)?; } // Check the branch under the new environment. pat.type_check(expr, branch, env)?; @@ -1069,7 +1069,7 @@ impl TypeCheck for ConstExpr { debug!( "Monomorphizing {expr} with type arguments {ty_args:?} in environment {env}" ); - match expr.clone().eval(env)? { + match *expr.clone() { Self::Template(ref ty_params, ref template) => { // Create a new environment with the type parameters defined. // Define the type parameters in the environment. @@ -1091,7 +1091,6 @@ impl TypeCheck for ConstExpr { error!("Mismatch in expected type for constant parameter"); return Err(Error::MismatchedTypes { expected, found, expr: (cexpr.clone()).into() }) } - ret.substitute(param, ty_arg) } ret.substitute(param, ty_arg); new_env.define_const(param, cexpr.clone()); diff --git a/src/lir/types/inference.rs b/src/lir/types/inference.rs index aac3518e..d7e1ff1b 100644 --- a/src/lir/types/inference.rs +++ b/src/lir/types/inference.rs @@ -57,7 +57,7 @@ impl GetType for Expr { // Create a new environment with the declarations. let mut new_env = env.clone(); // Add the declarations to the environment. - new_env.add_declaration(declaration)?; + new_env.add_declaration(declaration, false)?; // Get the type of the body in the new environment. body.get_type_checked(&new_env, i)? } @@ -414,13 +414,13 @@ impl GetType for Expr { // Only arrays and pointers can be indexed. Type::Array(item, _) => *item, Type::Pointer(_, item) => *item, - Type::Type(ty) => { - match *ty { - Type::Array(item, _) => *item, - Type::Pointer(_, item) => *item, - _ => return Err(Error::InvalidIndex(self.clone())), - } - } + // Type::Type(ty) => { + // match *ty { + // Type::Array(item, _) => *item, + // Type::Pointer(_, item) => *item, + // _ => return Err(Error::InvalidIndex(self.clone())), + // } + // } // If we're accessing an index of a type that is not an array or pointer, // we cannot access an index. diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 1ae97f3c..46ca6a57 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -989,14 +989,36 @@ impl Type { } + // /// Simplify until the type is concrete. + // pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result { + // let mut simplified = self.clone(); + // for _ in 0..4 { + // if let Self::ConstParam(cexpr) = simplified { + // return Ok(*cexpr); + // } + // simplified = simplified.simplify(env)?; + // } + // // if result.is_err() { + // // debug!("Couldn't simplify {} to a constant param", self); + // // } + + // match simplified { + // Type::ConstParam(cexpr) => Ok(*cexpr), + // result => panic!("Unexpected {result}") + // } + // } + /// Simplify until the type is concrete. pub fn simplify_until_const_param(&self, env: &Env, _checked: bool) -> Result { - let mut simplified = self.clone().simplify(env)?; + let mut simplified = self.clone(); for _ in 0..3 { if let Self::ConstParam(cexpr) = simplified { return Ok(*cexpr); } simplified = simplified.simplify(env)?; + if let Self::ConstParam(cexpr) = simplified { + return Ok(*cexpr); + } simplified = match simplified { Self::Tuple(items) => { let simple_items = items @@ -1460,7 +1482,7 @@ impl Type { } let result = match (self, other) { - (Self::ConstParam(a), Self::ConstParam(b)) => Ok(a == b), + (Self::ConstParam(a), Self::ConstParam(b)) => Ok(a.equals(b, env)), (Self::Let(name, t, ret), other) | (other, Self::Let(name, t, ret)) => { let mut new_env = env.clone(); diff --git a/src/lir/types/size.rs b/src/lir/types/size.rs index 98787d3e..0cc7d5ad 100644 --- a/src/lir/types/size.rs +++ b/src/lir/types/size.rs @@ -58,10 +58,10 @@ impl GetSize for Type { }); } - if self.is_const_param() { - let cexpr = self.clone().simplify_until_const_param(env, false)?; - return cexpr.get_size_checked(env, i) - } + // if self.is_const_param() { + // let cexpr = self.clone().simplify_until_const_param(env, false)?; + // return cexpr.get_size_checked(env, i) + // } let result = match self { Self::ConstParam(cexpr) => cexpr.get_size_checked(env, i)?, @@ -120,8 +120,6 @@ impl GetSize for Type { // Array types are the size of their element type times the size of // the array. Self::Array(elem, size) => { - error!("ABOUT TO GET ARRAY LEN {self}"); - elem.get_size_checked(env, i)? * size.clone().as_int(env)? as usize } // Struct types are the sum of the sizes of their fields. diff --git a/src/vm/std.rs b/src/vm/std.rs index dda758a5..08ae3c30 100644 --- a/src/vm/std.rs +++ b/src/vm/std.rs @@ -83,7 +83,6 @@ impl VirtualMachineProgram for StandardProgram { self.0.pop(); self.op(CoreOp::Set(vec![(n[0] >= 0) as i64])) } - (_, op) => { self.0.push(StandardOp::CoreOp(op)); } From c08866743f26df37b7b1d63c38d7efc5789bbfe6 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 16:44:57 -0400 Subject: [PATCH 14/29] Changed log info to debug, added time reporting for parsing --- Cargo.toml | 2 +- src/frontend/mod.rs | 3 +++ src/lir/types/check.rs | 2 +- src/lir/types/mod.rs | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 765c5812..c070dd14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ rayon = "1.10" ## ERROR REPORTING ####################################### codespan-reporting = "0.11" -log = {version = "0.4", features = ["release_max_level_error"] } +log = {version = "0.4", features = ["release_max_level_info"] } env_logger = "0.11" ####################################### diff --git a/src/frontend/mod.rs b/src/frontend/mod.rs index b74ed754..34e3dda6 100644 --- a/src/frontend/mod.rs +++ b/src/frontend/mod.rs @@ -16,7 +16,10 @@ pub fn parse( include_builtins: bool, include_std: bool, ) -> Result { + let start_time = std::time::Instant::now(); let mut expr = parse_source(&without_comments(input), filename.map(|x| x.to_owned()))?; + use log::info; + info!("Parsed {} in {}ms", filename.unwrap_or("input"), start_time.elapsed().as_millis()); use crate::side_effects::Output; if include_std { let std_lib = parse_module("std", &without_comments(include_str!("std_lib.sg")))?; diff --git a/src/lir/types/check.rs b/src/lir/types/check.rs index 04b23df4..a19b2e6e 100644 --- a/src/lir/types/check.rs +++ b/src/lir/types/check.rs @@ -741,7 +741,7 @@ impl TypeCheck for Expr { expr: self.clone(), }); } else { - info!("Found {found} can decay to {expected} in {self}") + debug!("Found {found} can decay to {expected} in {self}") } } Ok(()) diff --git a/src/lir/types/mod.rs b/src/lir/types/mod.rs index 46ca6a57..49f0c07e 100644 --- a/src/lir/types/mod.rs +++ b/src/lir/types/mod.rs @@ -2058,7 +2058,7 @@ impl Type { expr: &Expr, env: &Env, ) -> Result<(Type, usize), Error> { - info!("Getting offset of member {member} in expression {self} in the environment {env}"); + debug!("Getting offset of member {member} in expression {self} in the environment {env}"); match self { Type::Pointer(_, t) => t.get_member_offset(member, expr, env), Type::Struct(members) => { From e9a20bae5cb7347c6e223f9158eb8082f2af22e0 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 17:32:23 -0400 Subject: [PATCH 15/29] Massively optimized parser --- Cargo.toml | 4 +- src/frontend/parse.rs | 139 ++++++++++++++++++++++++++---------------- src/lir/compile.rs | 48 ++++++++------- src/lir/types/size.rs | 8 +-- 4 files changed, 121 insertions(+), 78 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c070dd14..0b735db4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,5 +87,5 @@ harness = false [dev-dependencies] criterion = "0.5" -[profile.release] -debug = true +# [profile.release] +# debug = true diff --git a/src/frontend/parse.rs b/src/frontend/parse.rs index 312d3921..53ed333b 100644 --- a/src/frontend/parse.rs +++ b/src/frontend/parse.rs @@ -2,8 +2,8 @@ use log::{error, trace}; use nom::{ branch::alt, bytes::complete::{is_not, tag, take_while, take_while1, take_while_m_n}, - character::complete::{char, digit1, hex_digit1, multispace1, oct_digit1}, - combinator::{all_consuming, cut, map, map_opt, opt, recognize, verify}, + character::complete::{char, digit1, hex_digit1, multispace1, oct_digit1, one_of}, + combinator::{all_consuming, consumed, cut, map, map_opt, opt, recognize, verify}, error::{context, ContextError, ParseError}, multi::{fold_many0, many0, many0_count, many1}, sequence::{delimited, pair, preceded, terminated}, @@ -1493,33 +1493,63 @@ fn parse_impl_method<'a, E: ParseError<&'a str> + ContextError<&'a str>>( let (input, template_args) = cut(opt(parse_type_params))(input)?; trace!("Parsed template args: {template_args:#?}"); // Get the function parameters with mutability - let (input, (params, ret)) = parse_method_params(input, ty)?; - trace!("Parsed method parameters: {params:#?}, {ret:#?}"); - let (input, _) = whitespace(input)?; - let (input, body) = cut(parse_block)(input)?; - // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body)))) - if let Some(args) = template_args { - Ok(( - input, - ( - name.to_owned(), - ConstExpr::PolyProc(PolyProcedure::new( + if let Ok((input, (params, ret))) = parse_method_params::(input, ty) { + trace!("Parsed method parameters: {params:#?}, {ret:#?}"); + let (input, _) = whitespace(input)?; + let (input, body) = cut(parse_block)(input)?; + // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body)))) + if let Some(args) = template_args { + Ok(( + input, + ( name.to_owned(), - args.into_iter().map(|x| x.to_owned()).collect(), - params, - ret, - body, - )), - ), - )) + ConstExpr::PolyProc(PolyProcedure::new( + name.to_owned(), + args.into_iter().map(|x| x.to_owned()).collect(), + params, + ret, + body, + )), + ), + )) + } else { + Ok(( + input, + ( + name.to_owned(), + ConstExpr::Proc(Procedure::new(Some(name.to_owned()), params, ret, body)), + ), + )) + } } else { - Ok(( - input, - ( - name.to_owned(), - ConstExpr::Proc(Procedure::new(Some(name.to_owned()), params, ret, body)), - ), - )) + let (input, (params, ret)) = parse_fun_params(input)?; + trace!("Parsed method parameters: {params:#?}, {ret:#?}"); + let (input, _) = whitespace(input)?; + let (input, body) = cut(parse_block)(input)?; + // Ok((input, Statement::Declaration(Declaration::Proc(name.to_owned(), Procedure::new(Some(name.to_owned()), params, ret, body)))) + if let Some(args) = template_args { + Ok(( + input, + ( + name.to_owned(), + ConstExpr::PolyProc(PolyProcedure::new( + name.to_owned(), + args.into_iter().map(|x| x.to_owned()).collect(), + params, + ret, + body, + )), + ), + )) + } else { + Ok(( + input, + ( + name.to_owned(), + ConstExpr::Proc(Procedure::new(Some(name.to_owned()), params, ret, body)), + ), + )) + } } } @@ -3012,19 +3042,23 @@ fn parse_type_apply<'a, E: ParseError<&'a str> + ContextError<&'a str>>( ) -> IResult<&'a str, Type, E> { let (input, ty) = parse_type_atom(input)?; let (input, _) = whitespace(input)?; - let (input, _) = tag("<")(input)?; - let (input, _) = whitespace(input)?; - let (input, mut args) = many0(terminated(parse_type, tag(",")))(input)?; - let (input, _) = whitespace(input)?; - let (input, last_arg) = opt(parse_type)(input)?; - let (input, _) = whitespace(input)?; - let (input, _) = tag(">")(input)?; - if let Some(last_arg) = last_arg { - args.push(last_arg); + if let Ok((input, _)) = tag::<&str, &str, E>("<")(input) { + let (input, _) = whitespace(input)?; + let (input, mut args) = many0(terminated(parse_type, tag(",")))(input)?; + let (input, _) = whitespace(input)?; + let (input, last_arg) = opt(parse_type)(input)?; + let (input, _) = whitespace(input)?; + let (input, _) = tag(">")(input)?; + + if let Some(last_arg) = last_arg { + args.push(last_arg); + } + + Ok((input, Type::Apply(Box::new(ty), args))) + } else { + return Ok((input, ty)) } - - Ok((input, Type::Apply(Box::new(ty), args))) } fn parse_type_primitive<'a, E: ParseError<&'a str> + ContextError<&'a str>>( @@ -3534,19 +3568,22 @@ fn parse_const_monomorph<'a, E: ParseError<&'a str> + ContextError<&'a str>>( ) -> IResult<&'a str, ConstExpr, E> { let (input, expr) = parse_const_term(input)?; let (input, _) = whitespace(input)?; - let (input, _) = tag("<")(input)?; - let (input, _) = whitespace(input)?; - let (input, mut tys) = many0(terminated(parse_type, tag(",")))(input)?; - let (input, _) = whitespace(input)?; - let (input, last_ty) = opt(parse_type)(input)?; - let (input, _) = whitespace(input)?; - let (input, _) = tag(">")(input)?; - - if let Some(last_ty) = last_ty { - tys.push(last_ty); + if let Ok((input, _)) = tag::<&str, &str, E>("<")(input) { + let (input, _) = whitespace(input)?; + let (input, mut tys) = many0(terminated(parse_type, tag(",")))(input)?; + let (input, _) = whitespace(input)?; + let (input, last_ty) = opt(parse_type)(input)?; + let (input, _) = whitespace(input)?; + let (input, _) = tag(">")(input)?; + + if let Some(last_ty) = last_ty { + tys.push(last_ty); + } + + Ok((input, expr.monomorphize(tys))) + } else { + Ok((input, expr)) } - - Ok((input, expr.monomorphize(tys))) } fn parse_const_variant<'a, E: ParseError<&'a str> + ContextError<&'a str>>( @@ -3613,6 +3650,7 @@ fn parse_const_atom<'a, E: ParseError<&'a str> + ContextError<&'a str>>( parse_const_sizeof_expr, parse_const_sizeof_type, parse_const_tuple, + parse_const_group, parse_const_bool, parse_const_null, parse_const_none, @@ -3630,7 +3668,6 @@ fn parse_const_atom<'a, E: ParseError<&'a str> + ContextError<&'a str>>( }), parse_const_array, parse_const_struct, - parse_const_group, map(parse_symbol, |x| ConstExpr::Symbol(x.to_string())), ))(input) } diff --git a/src/lir/compile.rs b/src/lir/compile.rs index 7322b0c4..f6dcc785 100644 --- a/src/lir/compile.rs +++ b/src/lir/compile.rs @@ -38,28 +38,34 @@ pub trait Compile: TypeCheck + std::fmt::Debug + std::fmt::Display { // First, type check the expression. self.type_check(&Env::default())?; // Then, attempt to compile the expression into a core assembly program. - let mut core_asm = CoreProgram::default(); - info!("Compiling..."); - // If the expression cannot be compiled into a core assembly program, - // then compile it into a standard assembly program. - if let Err(err) = self - .clone() - // Compile the expression into the core assembly program. - .compile_expr(&mut Env::default(), &mut core_asm) - { - warn!("Failed to compile into core assembly program: {err}, falling back on standard assembly"); - let mut std_asm = StandardProgram::default(); - // Compile the expression into the standard assembly program. - self.compile_expr(&mut Env::default(), &mut std_asm)?; - info!("Compiled to standard assembly successfully"); - // Return the fallback standard assembly program. - Ok(Err(std_asm)) - } else { - info!("Compiled to core assembly successfully"); - // Return the successfully compiled core assembly program. - Ok(Ok(core_asm)) - } + + // let mut core_asm = CoreProgram::default(); + // // If the expression cannot be compiled into a core assembly program, + // // then compile it into a standard assembly program. + // if let Err(err) = self + // .clone() + // // Compile the expression into the core assembly program. + // .compile_expr(&mut Env::default(), &mut core_asm) + // { + // warn!("Failed to compile into core assembly program: {err}, falling back on standard assembly"); + // let mut std_asm = StandardProgram::default(); + // // Compile the expression into the standard assembly program. + // self.compile_expr(&mut Env::default(), &mut std_asm)?; + // info!("Compiled to standard assembly successfully"); + // // Return the fallback standard assembly program. + // Ok(Err(std_asm)) + // } else { + // info!("Compiled to core assembly successfully"); + // // Return the successfully compiled core assembly program. + // Ok(Ok(core_asm)) + // } + let mut std_asm = StandardProgram::default(); + // Compile the expression into the standard assembly program. + self.compile_expr(&mut Env::default(), &mut std_asm)?; + info!("Compiled to standard assembly successfully"); + // Return the fallback standard assembly program. + Ok(Err(std_asm)) } // Compile a specific expression into an assembly program. fn compile_expr(self, env: &mut Env, output: &mut dyn AssemblyProgram) -> Result<(), Error>; diff --git a/src/lir/types/size.rs b/src/lir/types/size.rs index 0cc7d5ad..b3e4eaca 100644 --- a/src/lir/types/size.rs +++ b/src/lir/types/size.rs @@ -58,10 +58,10 @@ impl GetSize for Type { }); } - // if self.is_const_param() { - // let cexpr = self.clone().simplify_until_const_param(env, false)?; - // return cexpr.get_size_checked(env, i) - // } + if self.is_const_param() { + let cexpr = self.clone().simplify_until_const_param(env, false)?; + return cexpr.get_size_checked(env, i) + } let result = match self { Self::ConstParam(cexpr) => cexpr.get_size_checked(env, i)?, From 09f2d8a6a06c347c137589179725137f3033589e Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 17:49:06 -0400 Subject: [PATCH 16/29] Added optimization to monomorphization --- src/lir/compile.rs | 48 +++++++++++++++------------------- src/lir/expr/const_expr.rs | 2 -- src/lir/expr/ops/comparison.rs | 2 +- src/lir/expr/procedure/poly.rs | 2 +- 4 files changed, 23 insertions(+), 31 deletions(-) diff --git a/src/lir/compile.rs b/src/lir/compile.rs index f6dcc785..7322b0c4 100644 --- a/src/lir/compile.rs +++ b/src/lir/compile.rs @@ -38,34 +38,28 @@ pub trait Compile: TypeCheck + std::fmt::Debug + std::fmt::Display { // First, type check the expression. self.type_check(&Env::default())?; // Then, attempt to compile the expression into a core assembly program. + let mut core_asm = CoreProgram::default(); + info!("Compiling..."); - - // let mut core_asm = CoreProgram::default(); - // // If the expression cannot be compiled into a core assembly program, - // // then compile it into a standard assembly program. - // if let Err(err) = self - // .clone() - // // Compile the expression into the core assembly program. - // .compile_expr(&mut Env::default(), &mut core_asm) - // { - // warn!("Failed to compile into core assembly program: {err}, falling back on standard assembly"); - // let mut std_asm = StandardProgram::default(); - // // Compile the expression into the standard assembly program. - // self.compile_expr(&mut Env::default(), &mut std_asm)?; - // info!("Compiled to standard assembly successfully"); - // // Return the fallback standard assembly program. - // Ok(Err(std_asm)) - // } else { - // info!("Compiled to core assembly successfully"); - // // Return the successfully compiled core assembly program. - // Ok(Ok(core_asm)) - // } - let mut std_asm = StandardProgram::default(); - // Compile the expression into the standard assembly program. - self.compile_expr(&mut Env::default(), &mut std_asm)?; - info!("Compiled to standard assembly successfully"); - // Return the fallback standard assembly program. - Ok(Err(std_asm)) + // If the expression cannot be compiled into a core assembly program, + // then compile it into a standard assembly program. + if let Err(err) = self + .clone() + // Compile the expression into the core assembly program. + .compile_expr(&mut Env::default(), &mut core_asm) + { + warn!("Failed to compile into core assembly program: {err}, falling back on standard assembly"); + let mut std_asm = StandardProgram::default(); + // Compile the expression into the standard assembly program. + self.compile_expr(&mut Env::default(), &mut std_asm)?; + info!("Compiled to standard assembly successfully"); + // Return the fallback standard assembly program. + Ok(Err(std_asm)) + } else { + info!("Compiled to core assembly successfully"); + // Return the successfully compiled core assembly program. + Ok(Ok(core_asm)) + } } // Compile a specific expression into an assembly program. fn compile_expr(self, env: &mut Env, output: &mut dyn AssemblyProgram) -> Result<(), Error>; diff --git a/src/lir/expr/const_expr.rs b/src/lir/expr/const_expr.rs index 21672e10..a5b7453c 100644 --- a/src/lir/expr/const_expr.rs +++ b/src/lir/expr/const_expr.rs @@ -1010,9 +1010,7 @@ impl GetType for ConstExpr { } Self::Symbol(symbol_name) if symbol_name == name => { // A constant symbol cannot be substituted for a type variable. - debug!("Subbing {self} for {substitution}"); *self = ConstExpr::Type(substitution.clone()); - debug!("Subbed into {self}"); } _ => {} } diff --git a/src/lir/expr/ops/comparison.rs b/src/lir/expr/ops/comparison.rs index 4c3f7676..eff743c2 100644 --- a/src/lir/expr/ops/comparison.rs +++ b/src/lir/expr/ops/comparison.rs @@ -23,7 +23,7 @@ pub enum Comparison { impl BinaryOp for Comparison { /// Can this binary operation be applied to the given types? fn can_apply(&self, lhs: &Type, rhs: &Type, env: &Env) -> Result { - match (&lhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper(), self, &rhs.clone().simplify_until_concrete(env, false)?.discard_type_wrapper()) { + match (&lhs.clone().discard_type_wrapper(), self, &rhs.clone().discard_type_wrapper()) { (Type::Int, Self::LessThan, Type::Int) | (Type::Int, Self::LessThanOrEqual, Type::Int) | (Type::Int, Self::GreaterThan, Type::Int) diff --git a/src/lir/expr/procedure/poly.rs b/src/lir/expr/procedure/poly.rs index 57628c5b..e1f4517a 100644 --- a/src/lir/expr/procedure/poly.rs +++ b/src/lir/expr/procedure/poly.rs @@ -202,7 +202,7 @@ impl PolyProcedure { ); let monomorph = Procedure::new(Some(mangled_name.clone()), args, ret, body); - monomorph.type_check(env)?; + // If the monomorphized procedure has already been memoized, return it, otherwise memoize it. debug!(target: "mono", "Inserting entry for {}", mangled_name); let monomorph = monomorphs From 09b4d77dd968ec75f4c2179106601747f8d8246e Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 17:58:12 -0400 Subject: [PATCH 17/29] Removed warnings --- src/frontend/parse.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/parse.rs b/src/frontend/parse.rs index 53ed333b..10583d29 100644 --- a/src/frontend/parse.rs +++ b/src/frontend/parse.rs @@ -2,8 +2,8 @@ use log::{error, trace}; use nom::{ branch::alt, bytes::complete::{is_not, tag, take_while, take_while1, take_while_m_n}, - character::complete::{char, digit1, hex_digit1, multispace1, oct_digit1, one_of}, - combinator::{all_consuming, consumed, cut, map, map_opt, opt, recognize, verify}, + character::complete::{char, digit1, hex_digit1, multispace1, oct_digit1}, + combinator::{all_consuming, cut, map, map_opt, opt, recognize, verify}, error::{context, ContextError, ParseError}, multi::{fold_many0, many0, many0_count, many1}, sequence::{delimited, pair, preceded, terminated}, From a17ad01dcea654fe131b2bc7ec23c5432736f3c0 Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 17:58:38 -0400 Subject: [PATCH 18/29] Removed warnings --- src/lir/env.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/lir/env.rs b/src/lir/env.rs index 75287fa2..c6b406fc 100644 --- a/src/lir/env.rs +++ b/src/lir/env.rs @@ -1310,7 +1310,6 @@ impl Env { impl Display for Env { fn fmt(&self, f: &mut Formatter) -> FmtResult { writeln!(f, "Env")?; - return Ok(()); writeln!(f, " Types:")?; for (name, ty) in self.types.iter() { writeln!(f, " {}: {}", name, ty)?; @@ -1318,10 +1317,10 @@ impl Display for Env { if constants.is_empty() { continue; } - writeln!(f, " Associated constants:")?; - for (name, cexpr) in constants { - writeln!(f, " {}: {}", name, cexpr)?; - } + // writeln!(f, " Associated constants:")?; + // for (name, cexpr) in constants { + // writeln!(f, " {}: {}", name, cexpr)?; + // } } // writeln!(f, " Constants:")?; // for (i, (name, e)) in self.consts.iter().enumerate() { From 4e98083c1bfa29b68502883e4d003f1748cb60bf Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Sat, 7 Sep 2024 18:39:23 -0400 Subject: [PATCH 19/29] Fixed bug where procedure argument types needed to be sized during type checkign --- docs/sage/asm/core/struct.CoreProgram.html | 4 +- docs/sage/asm/enum.Error.html | 4 +- docs/sage/asm/std/enum.StandardOp.html | 4 +- docs/sage/asm/std/struct.StandardProgram.html | 4 +- docs/sage/lir/enum.Arithmetic.html | 2 +- docs/sage/lir/enum.ConstExpr.html | 12 +- docs/sage/lir/enum.Declaration.html | 12 +- docs/sage/lir/enum.Error.html | 2 +- docs/sage/lir/enum.Expr.html | 14 +- docs/sage/lir/enum.Mutability.html | 4 +- docs/sage/lir/enum.Pattern.html | 4 +- docs/sage/lir/enum.Type.html | 34 ++-- docs/sage/lir/struct.And.html | 2 +- docs/sage/lir/struct.Assign.html | 2 +- docs/sage/lir/struct.BitwiseAnd.html | 2 +- docs/sage/lir/struct.BitwiseNor.html | 2 +- docs/sage/lir/struct.BitwiseNot.html | 2 +- docs/sage/lir/struct.CoreBuiltin.html | 8 +- docs/sage/lir/struct.Data.html | 2 +- docs/sage/lir/struct.Env.html | 11 +- docs/sage/lir/struct.FFIProcedure.html | 8 +- docs/sage/lir/struct.Get.html | 2 +- docs/sage/lir/struct.New.html | 2 +- docs/sage/lir/struct.Not.html | 2 +- docs/sage/lir/struct.Or.html | 2 +- docs/sage/lir/struct.PolyProcedure.html | 22 +-- docs/sage/lir/struct.Procedure.html | 8 +- docs/sage/lir/struct.StandardBuiltin.html | 4 +- docs/sage/lir/trait.GetSize.html | 4 +- docs/sage/lir/trait.GetType.html | 4 +- docs/sage/lir/trait.Simplify.html | 2 +- docs/sage/lir/trait.TypeCheck.html | 4 +- docs/sage/side_effects/io/enum.Axis.html | 4 +- docs/sage/side_effects/io/enum.Direction.html | 4 +- docs/sage/side_effects/io/struct.Channel.html | 4 +- docs/sage/side_effects/io/struct.Input.html | 4 +- docs/sage/vm/enum.CoreOp.html | 2 +- docs/sage/vm/enum.StandardOp.html | 8 +- docs/sage/vm/struct.CoreProgram.html | 2 +- docs/sage/vm/struct.StandardProgram.html | 16 +- docs/sage/vm/trait.VirtualMachineProgram.html | 2 +- docs/sage/web/index.html | 133 ++++++++++++++ docs/sage/web/web_bg.wasm | Bin 2350220 -> 2355888 bytes docs/search-index.js | 2 +- docs/src/sage/frontend/parse.rs.html | 172 +++++++++++++----- docs/src/sage/lir/compile.rs.html | 6 +- docs/src/sage/lir/env.rs.html | 160 +++++++++------- docs/src/sage/lir/expr/const_expr.rs.html | 22 ++- docs/src/sage/lir/expr/declaration.rs.html | 8 +- docs/src/sage/lir/expr/ops/comparison.rs.html | 2 +- docs/src/sage/lir/expr/pattern.rs.html | 6 +- docs/src/sage/lir/expr/procedure/mono.rs.html | 4 +- docs/src/sage/lir/expr/procedure/poly.rs.html | 14 +- docs/src/sage/lir/types/check.rs.html | 142 ++++++++++++--- docs/src/sage/lir/types/inference.rs.html | 18 +- docs/src/sage/lir/types/mod.rs.html | 54 +++++- docs/src/sage/lir/types/size.rs.html | 10 + docs/src/sage/vm/std.rs.html | 2 - docs/trait.impl/core/clone/trait.Clone.js | 2 +- docs/trait.impl/core/cmp/trait.Eq.js | 2 +- docs/trait.impl/core/cmp/trait.Ord.js | 2 +- docs/trait.impl/core/cmp/trait.PartialEq.js | 2 +- docs/trait.impl/core/cmp/trait.PartialOrd.js | 2 +- docs/trait.impl/core/convert/trait.From.js | 2 +- docs/trait.impl/core/default/trait.Default.js | 2 +- docs/trait.impl/core/fmt/trait.Debug.js | 2 +- docs/trait.impl/core/fmt/trait.Display.js | 2 +- docs/trait.impl/core/hash/trait.Hash.js | 2 +- docs/trait.impl/core/marker/trait.Copy.js | 2 +- docs/trait.impl/core/marker/trait.Send.js | 2 +- .../core/marker/trait.StructuralEq.js | 2 +- .../core/marker/trait.StructuralPartialEq.js | 2 +- docs/trait.impl/serde/de/trait.Deserialize.js | 2 +- docs/trait.impl/serde/ser/trait.Serialize.js | 2 +- examples/frontend/array.sg | 52 ++++++ examples/test-output/array.txt | 3 + examples/web/index.html | 133 ++++++++++++++ src/frontend/mod.rs | 3 - src/lir/env.rs | 35 ++-- src/lir/expr/procedure/mono.rs | 4 +- src/lir/expr/procedure/poly.rs | 2 +- 81 files changed, 931 insertions(+), 329 deletions(-) create mode 100644 examples/frontend/array.sg create mode 100644 examples/test-output/array.txt diff --git a/docs/sage/asm/core/struct.CoreProgram.html b/docs/sage/asm/core/struct.CoreProgram.html index df8e8398..94bdba4d 100644 --- a/docs/sage/asm/core/struct.CoreProgram.html +++ b/docs/sage/asm/core/struct.CoreProgram.html @@ -21,9 +21,9 @@ The message is a message to be logged before the instructions. This tells some context about the instructions being logged. The i is the instruction number to start logging at. -This will log all instructions until the end of the program.
source§

impl Clone for CoreProgram

source§

fn clone(&self) -> CoreProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CoreProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for CoreProgram

A default program is an empty program.

+This will log all instructions until the end of the program.
source§

impl Clone for CoreProgram

source§

fn clone(&self) -> CoreProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CoreProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for CoreProgram

A default program is an empty program.

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for CoreProgram

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for CoreProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl Hash for CoreProgram

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for CoreProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl Hash for CoreProgram

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for CoreProgram

source§

fn cmp(&self, other: &CoreProgram) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/docs/sage/asm/enum.Error.html b/docs/sage/asm/enum.Error.html index b79216d4..62ff6b3c 100644 --- a/docs/sage/asm/enum.Error.html +++ b/docs/sage/asm/enum.Error.html @@ -14,8 +14,8 @@
§

Unmatched(CoreOp, usize)

The given instruction did not have a matching “end”. This is used for If, Else, While, For, and Fn statements.

§

Unexpected(CoreOp, usize)

The given instruction was not expected, or cannot be used in this context.

-

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

Create an IR error from an assembly error.

-
source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Error

source§

fn eq(&self, other: &Error) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl From<Error> for Error

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

Create an IR error from an assembly error.

+
source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Error

source§

fn eq(&self, other: &Error) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Error

source§

fn partial_cmp(&self, other: &Error) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= diff --git a/docs/sage/asm/std/enum.StandardOp.html b/docs/sage/asm/std/enum.StandardOp.html index ef174310..303ccd74 100644 --- a/docs/sage/asm/std/enum.StandardOp.html +++ b/docs/sage/asm/std/enum.StandardOp.html @@ -186,8 +186,8 @@
§

VecACos

Fields

§size: usize

Perform a SIMD floating point inverse cosine operation.

§

VecATan

Fields

§size: usize

Perform a SIMD floating point inverse tangent operation.

§

VecGez

Fields

§size: usize

Perform a SIMD floating point greater than or equal to zero operation.

-

Trait Implementations§

source§

impl Clone for StandardOp

source§

fn clone(&self) -> StandardOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for StandardOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for StandardOp

source§

fn eq(&self, other: &StandardOp) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for StandardOp

source§

fn clone(&self) -> StandardOp

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for StandardOp

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for StandardOp

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for StandardOp

source§

fn eq(&self, other: &StandardOp) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for StandardOp

source§

fn partial_cmp(&self, other: &StandardOp) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= diff --git a/docs/sage/asm/std/struct.StandardProgram.html b/docs/sage/asm/std/struct.StandardProgram.html index 69e7b96d..b503f5de 100644 --- a/docs/sage/asm/std/struct.StandardProgram.html +++ b/docs/sage/asm/std/struct.StandardProgram.html @@ -24,9 +24,9 @@ The message is a message to be logged before the instructions. This tells some context about the instructions being logged. The i is the instruction number to start logging at. -This will log all instructions until the end of the program.
source§

impl Clone for StandardProgram

source§

fn clone(&self) -> StandardProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for StandardProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for StandardProgram

A default program is an empty program.

+This will log all instructions until the end of the program.
source§

impl Clone for StandardProgram

source§

fn clone(&self) -> StandardProgram

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for StandardProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for StandardProgram

A default program is an empty program.

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for StandardProgram

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for StandardProgram

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<CoreProgram> for StandardProgram

source§

fn from(core: CoreProgram) -> Self

Converts to this type from the input type.
source§

impl PartialEq for StandardProgram

source§

fn eq(&self, other: &StandardProgram) -> bool

This method tests for self and other values to be equal, and is used + __D: Deserializer<'de>,