mod namespace; pub use namespace::*; use super::Id; pub struct Fn { pub body: Body, } pub struct Body { pub statements: Vec, } pub struct Statement { ty: StatementTy, } pub enum StatementTy { Define { target: VarId, val: VarId }, Assign { target: VarId, val: VarId }, Call { target: VarId, args: Vec }, } pub struct Var { const_: bool, ty: TypeId, } pub enum Type { Unsigned(u8), Signed(u8), Infer, } pub type VarId = u32; pub type TypeId = u32;