public void Deconstruct(out Scir address) { address = Address; }
public Store(Type type, Scir address, Scir value) : base(type) { Address = address; Value = value; }
public void Deconstruct(out Scir value) { value = Value; }
public Load(Type type, Scir address) : base(type) { Address = address; }
public void Deconstruct(out BinaryOp op, out Scir left, out Scir right) { op = Op; left = Left; right = Right; }
public Cast(Type type, Scir value) : base(type) { Value = value; }
public BinaryOperation(Type type, BinaryOp op, Scir left, Scir right) : base(type) { Op = op; Left = left; Right = right; }
public void Deconstruct(out UnaryOp op, out Scir value) { op = Op; value = Value; }
public UnaryOperation(Type type, UnaryOp op, Scir value) : base(type) { Op = op; Value = value; }
public void Deconstruct(out Scir address, out Scir value) { address = Address; value = Value; }
public void Stmt(Scir stmt) => throw new NotImplementedException();