🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

MIND Language

by @star-ga

Write and generate statically typed, tensor-oriented MIND language source files with full autodiff support and Rust-like syntax for ML and scientific computing.

Versionv1.0.2
Downloads535
Installs2
TERMINAL
clawhub install mind

πŸ“– About This Skill

Write MIND Code

Write correct .mind source files for the MIND programming language β€” a statically typed, tensor-oriented language that compiles to LLVM IR via MLIR.

When to Use

Activate when the user asks to:

  • Write, generate, or create .mind files
  • Implement algorithms, models, or solvers in MIND
  • Port code from Python/Rust/C to MIND
  • Explain MIND syntax or semantics
  • Language Overview

    MIND is a Rust-inspired language designed for numerical computing, ML, and scientific applications. It compiles through MLIR to native code with full autodiff support.

    Key characteristics:

  • Statically typed with type inference
  • First-class tensor types with compile-time shape checking
  • Reverse-mode automatic differentiation via diff types and backward()
  • Rust-like syntax: fn, let, struct, enum, trait, match
  • No garbage collector β€” deterministic memory
  • Keywords

    fn  let  type  struct  trait  if  else  match  while  for
    return  defer  import  export  where  true  false
    

    Primitive Types

    | Type | Description | |------|-------------| | i32 | 32-bit signed integer | | i64 | 64-bit signed integer | | f32 | 32-bit IEEE 754 float | | f64 | 64-bit IEEE 754 float | | bool | Boolean (true / false) | | unit | Unit type (void equivalent) |

    Tensor Types

    Tensors are the core primitive. Shape is part of the type:

    let x: tensor;        // 3D tensor
    let scalar: tensor;               // Rank-0 scalar
    let batch: tensor; // Symbolic batch dim
    

    Function signatures:

    fn layer(x: diff tensor) -> diff tensor
    

    > Note: The EBNF grammar uses Tensor (uppercase, comma-separated). Surface .mind files use the shorthand tensor (lowercase, bracket dims). Both are accepted; prefer the lowercase form.

    Differentiable Types

    Prefix diff marks tensors that participate in automatic differentiation:

    let x: diff tensor = 3.0;
    let y = x * x;
    let grad = backward(y, x);  // dy/dx = 2x = 6.0
    

    The backward(loss, parameter) intrinsic computes gradients via reverse-mode autodiff.

    Composite Types

    Structs

    struct Model {
        layers: i32,
        learning_rate: f32,
    }
    

    Enums

    enum Action {
        Read,
        Write,
        Delete,
        Execute,
    }
    

    Enums can have explicit discriminants:

    enum DenyCode {
        InvalidInput = 1,
        SuspiciousJustification = 2,
        DefaultDeny = 255,
    }
    

    Traits

    trait Solver {
        fn solve(self, x: tensor) -> tensor;
    }
    

    Type Aliases and Generics

    type Matrix = Tensor;
    type Vector = Tensor;
    

    Functions

    fn add(a: i32, b: i32) -> i32 {
        return a + b;
    }
    

    Implicit return (last expression without semicolon):

    fn square(x: i32) -> i32 {
        x * x
    }
    

    Anonymous functions:

    fn(x: f64) -> f64 { x * x }
    

    Control Flow

    If expressions (return values)

    let y = if x > 0 { 1 } else { -1 };
    

    While loops

    let mut i = 0;
    while i < n {
        // ...
        i += 1;
    }
    

    For loops

    for i in 0..n {
        grid[i] = start + (i as f64) * step;
    }
    

    Match (exhaustive pattern matching)

    match action {
        Action::Read => Effect { tag: EffectTag::Allow, code: 0 },
        Action::Write => check_write_permission(req),
        _ => Effect { tag: EffectTag::Deny, code: DenyCode::DefaultDeny as u32 },
    }
    

    Statements

    Let bindings

    let x = 42;                    // Type inferred
    let y: f64 = 3.14;            // Explicit type
    let (a, b) = (1, 2);          // Destructuring
    let _ = unused_result();       // Wildcard
    

    Return

    return Effect { tag: EffectTag::Deny, code: 1 };
    

    Defer

    defer { cleanup_resources(); }
    

    Operators

    Precedence (highest to lowest)

    | Prec | Operators | Description | |------|-----------|-------------| | 1 | () [] . | Grouping, indexing, field access | | 2 | - ! | Unary negation, logical NOT | | 3 | * / % | Multiplication, division, modulo | | 4 | + - | Addition, subtraction | | 5 | == != < > <= >= | Comparison | | 6 | && | Logical AND | | 7 | \|\| | Logical OR | | 8 | = += -= *= /= := | Assignment (right-to-left) |

    Other operators

  • -> return type annotation
  • => match arm
  • :: path separator (imports, enum variants)
  • @ attribute/annotation
  • ^ differentiable literal suffix
  • as type cast
  • Imports and Exports

    import std.tensor;
    import std.math;

    export my_function;

    Path syntax uses :: for nested modules:

    import std::tensor::zeros;
    

    Standard Library

    std.tensor

  • tensor.zeros[dtype, shape] β€” zero-filled tensor
  • tensor.ones[dtype, shape] β€” one-filled tensor
  • reshape(x, shape) β€” reshape tensor
  • matmul(a, b) β€” matrix multiplication
  • conv2d(x, w, stride, padding) β€” 2D convolution
  • maxpool2d(x, kernel, stride) β€” max pooling
  • sum(x) / sum(x, axis=N) β€” reduction
  • mean(x) / mean(x, axis=N) β€” mean reduction
  • transpose(x, perm) β€” transpose
  • expand_dims(x, axis) / squeeze(x, axis) β€” shape ops
  • gather(x, indices, axis) β€” gather elements
  • random_normal(shape, stddev) β€” random initialization
  • std.math

  • sqrt(x), exp(x), log(x), abs(x)
  • sin(x), cos(x), tanh(x)
  • Constants: PI, E
  • Activation functions

  • relu(x) β€” max(0, x)
  • sigmoid(x) β€” 1/(1+e^(-x))
  • log_softmax(x, axis) β€” numerically stable log-softmax
  • softmax(x, axis) β€” softmax
  • Core

  • print(args...) β€” stdout output
  • panic!(msg) β€” terminate
  • Tensor Operations on Types

    All arithmetic operators work elementwise on tensors with broadcasting:

    let result = alpha * X + beta * Y;  // Broadcasts scalar to tensor shape
    

    Matrix multiplication uses function syntax (not operator):

    let y = matmul(W, x);  // NOT W @ x
    

    Device Placement

    on(gpu0) {
        let result = matmul(A, B);
    }
    

    Comments

    // Single-line comment
    /* Block comment (nestable) */
    

    Integer Literals

    let dec = 1_000_000;    // Decimal with separators
    let bin = 0b1010_1100;  // Binary
    let oct = 0o777;        // Octal
    let hex = 0xFF_AA;      // Hexadecimal
    

    Full EBNF Grammar β€” Lexical

    Source: star-ga/mind-spec/spec/v1.0/grammar-lexical.ebnf (Apache 2.0, STARGA Inc.)

    (* Source text structure *)
    SourceFile = [ ByteOrderMark ] , { Token | Whitespace | Comment } ;

    (* Tokens *) Token = Identifier | Keyword | Literal | Operator | Punctuation ;

    (* Identifiers *) Identifier = IdentifierStart , { IdentifierContinue } ; IdentifierStart = Letter | "_" ; IdentifierContinue = Letter | Digit | "_" ; Letter = ? Unicode XID_Start ? ; Digit = ? Unicode XID_Continue & Nd ? | "0"-"9" ;

    (* Keywords *) Keyword = "fn" | "let" | "type" | "struct" | "trait" | "if" | "else" | "match" | "while" | "for" | "return" | "defer" | "import" | "export" | "where" ;

    (* Literals *) Literal = IntegerLiteral | FloatingPointLiteral | StringLiteral | BooleanLiteral | DifferentiableLiteral ;

    (* Integer literals *) IntegerLiteral = [ Sign ] , ( DecimalInteger | BinaryInteger | OctalInteger | HexInteger ) ; Sign = "+" | "-" ; DecimalInteger = DecimalDigit , { DecimalDigit | "_" } ; BinaryInteger = "0b" , BinaryDigit , { BinaryDigit | "_" } ; OctalInteger = "0o" , OctalDigit , { OctalDigit | "_" } ; HexInteger = "0x" , HexDigit , { HexDigit | "_" } ;

    DecimalDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; BinaryDigit = "0" | "1" ; OctalDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" ; HexDigit = DecimalDigit | "a"-"f" | "A"-"F" ;

    (* Floating-point literals *) FloatingPointLiteral = [ Sign ] , DecimalDigits , "." , DecimalDigits , [ Exponent ] ; DecimalDigits = DecimalDigit , { DecimalDigit | "_" } ; Exponent = ( "e" | "E" ) , [ Sign ] , DecimalDigits ;

    (* String literals *) StringLiteral = '"' , { StringCharacter | EscapeSequence } , '"' ; StringCharacter = ? any Unicode scalar value except '"', '\', newline ? ; EscapeSequence = "\" , ( "n" | "r" | "t" | "\" | '"' | "0" | UnicodeEscape ) ; UnicodeEscape = "u" , "{" , HexDigit , { HexDigit } , "}" ;

    (* Boolean literals *) BooleanLiteral = "true" | "false" ;

    (* Differentiable literals *) DifferentiableLiteral = Literal , "^" ;

    (* Operators *) Operator = "+" | "-" | "*" | "/" | "%" | "==" | "!=" | "<" | ">" | "<=" | ">=" | "&&" | "||" | "!" | "=" | "+=" | "-=" | "*=" | "/=" | "->" | "=>" | ":=" | "." | "::" | "@" | "^" ;

    (* Punctuation *) Punctuation = "(" | ")" | "{" | "}" | "[" | "]" | "," | ";" | ":" ;

    (* Comments *) Comment = LineComment | BlockComment ; LineComment = "//" , { ? any character except newline ? } , LineTerminator ; BlockComment = "/*" , { ? any character ? | BlockComment } , "*/" ;

    (* Whitespace *) Whitespace = Space | Tab | LineTerminator ; Space = " " ; Tab = ? U+0009 ? ; LineTerminator = LineFeed | CarriageReturn | CarriageReturnLineFeed ; LineFeed = ? U+000A ? ; CarriageReturn = ? U+000D ? ; CarriageReturnLineFeed = CarriageReturn , LineFeed ; ByteOrderMark = ? U+FEFF ? ;

    Full EBNF Grammar β€” Surface Syntax

    Source: star-ga/mind-spec/spec/v1.0/grammar-syntax.ebnf (Apache 2.0, STARGA Inc.)

    (* Module structure *)
    Module = { ModuleItem } ;

    ModuleItem = FunctionDeclaration | TypeDeclaration | StructDeclaration | TraitDeclaration | ImportDeclaration | ExportDeclaration ;

    (* Function declarations *) FunctionDeclaration = "fn" , Identifier , "(" , [ ParameterList ] , ")" , [ "->" , Type ] , Block ;

    ParameterList = Parameter , { "," , Parameter } , [ "," ] ; Parameter = Identifier , ":" , Type ;

    (* Type declarations *) TypeDeclaration = "type" , Identifier , [ TypeParameters ] , "=" , Type , ";" ;

    TypeParameters = "<" , TypeParameter , { "," , TypeParameter } , [ "," ] , ">" ; TypeParameter = Identifier , [ ":" , TraitBounds ] ;

    TraitBounds = TraitBound , { "+" , TraitBound } ; TraitBound = Identifier ;

    (* Struct declarations *) StructDeclaration = "struct" , Identifier , [ TypeParameters ] , "{" , [ FieldList ] , "}" ;

    FieldList = Field , { "," , Field } , [ "," ] ; Field = Identifier , ":" , Type ;

    (* Trait declarations *) TraitDeclaration = "trait" , Identifier , [ TypeParameters ] , [ ":" , TraitBounds ] , "{" , { TraitItem } , "}" ;

    TraitItem = FunctionSignature ; FunctionSignature = "fn" , Identifier , "(" , [ ParameterList ] , ")" , [ "->" , Type ] , ";" ;

    (* Import/Export *) ImportDeclaration = "import" , ImportPath , ";" ; ExportDeclaration = "export" , Identifier , ";" ; ImportPath = Identifier , { "::" , Identifier } ;

    (* Types *) Type = PrimitiveType | TensorType | TupleType | ArrayType | FunctionType | DifferentiableType | TraitObjectType | IdentifierType ;

    PrimitiveType = "i32" | "i64" | "f32" | "f64" | "bool" | "unit" ;

    TensorType = "Tensor" , "<" , DType , "," , Shape , ">" ; DType = "i32" | "i64" | "f32" | "f64" ; Shape = "[" , [ DimensionList ] , "]" ; DimensionList = Dimension , { "," , Dimension } , [ "," ] ; Dimension = IntegerLiteral | Identifier ;

    TupleType = "(" , [ TypeList ] , ")" ; TypeList = Type , { "," , Type } , [ "," ] ;

    ArrayType = "[" , Type , ";" , IntegerLiteral , "]" ;

    FunctionType = "(" , [ TypeList ] , ")" , "->" , Type ;

    DifferentiableType = "diff" , Type ;

    TraitObjectType = "dyn" , Identifier ;

    IdentifierType = Identifier , [ "<" , TypeList , ">" ] ;

    (* Statements and blocks *) Block = "{" , { Statement } , [ Expression ] , "}" ;

    Statement = LetStatement | ExpressionStatement | ReturnStatement | DeferStatement ;

    LetStatement = "let" , Pattern , [ ":" , Type ] , "=" , Expression , ";" ;

    Pattern = IdentifierPattern | TuplePattern | WildcardPattern ; IdentifierPattern = Identifier ; TuplePattern = "(" , [ PatternList ] , ")" ; PatternList = Pattern , { "," , Pattern } , [ "," ] ; WildcardPattern = "_" ;

    ExpressionStatement = Expression , ";" ; ReturnStatement = "return" , [ Expression ] , ";" ; DeferStatement = "defer" , Block ;

    (* Expressions β€” precedence encoded in production hierarchy *) Expression = AssignmentExpression ;

    AssignmentExpression = LogicalOrExpression , [ AssignmentOperator , AssignmentExpression ] ; AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | ":=" ;

    LogicalOrExpression = LogicalAndExpression , { "||" , LogicalAndExpression } ;

    LogicalAndExpression = ComparisonExpression , { "&&" , ComparisonExpression } ;

    ComparisonExpression = AdditiveExpression , { ComparisonOperator , AdditiveExpression } ; ComparisonOperator = "==" | "!=" | "<" | ">" | "<=" | ">=" ;

    AdditiveExpression = MultiplicativeExpression , { AdditiveOperator , MultiplicativeExpression } ; AdditiveOperator = "+" | "-" ;

    MultiplicativeExpression = UnaryExpression , { MultiplicativeOperator , UnaryExpression } ; MultiplicativeOperator = "*" | "/" | "%" ;

    UnaryExpression = [ UnaryOperator ] , PostfixExpression ; UnaryOperator = "-" | "!" ;

    PostfixExpression = PrimaryExpression , { PostfixOperator } ;

    PostfixOperator = CallOperator | IndexOperator | FieldAccessOperator | MethodCallOperator ;

    CallOperator = "(" , [ ArgumentList ] , ")" ; ArgumentList = Expression , { "," , Expression } , [ "," ] ;

    IndexOperator = "[" , IndexExpression , "]" ; IndexExpression = Expression | SliceExpression ; SliceExpression = [ Expression ] , ":" , [ Expression ] , [ ":" , [ Expression ] ] ;

    FieldAccessOperator = "." , Identifier ; MethodCallOperator = "." , Identifier , "(" , [ ArgumentList ] , ")" ;

    (* Primary expressions *) PrimaryExpression = Literal | Identifier | ParenthesizedExpression | TupleExpression | ArrayExpression | TensorConstructor | BlockExpression | IfExpression | MatchExpression | WhileExpression | ForExpression | FunctionExpression ;

    ParenthesizedExpression = "(" , Expression , ")" ;

    TupleExpression = "(" , Expression , "," , [ ExpressionList ] , ")" ; ExpressionList = Expression , { "," , Expression } , [ "," ] ;

    ArrayExpression = "[" , [ ArrayElements ] , "]" ; ArrayElements = Expression , { "," , Expression } , [ "," ] ;

    TensorConstructor = "tensor" , "(" , Expression , [ "," , "dtype" , ":" , DType ] , ")" ;

    BlockExpression = Block ;

    IfExpression = "if" , Expression , Block , [ "else" , ( IfExpression | Block ) ] ;

    MatchExpression = "match" , Expression , "{" , { MatchArm } , "}" ; MatchArm = Pattern , "=>" , ( Expression , "," | Block ) ;

    WhileExpression = "while" , Expression , Block ;

    ForExpression = "for" , Pattern , "in" , Expression , Block ;

    FunctionExpression = "fn" , "(" , [ ParameterList ] , ")" , [ "->" , Type ] , Block ;

    (* Tensor operations β€” Core v1 intrinsics *) (* Called as functions: sum(x, axes, keepdims) *) (* Function call syntax is covered by CallOperator above *)

    Full EBNF Grammar β€” Core IR

    Source: star-ga/mind-spec/spec/v1.0/grammar-ir.ebnf (Apache 2.0, STARGA Inc.)

    The Core IR is the compiler's internal SSA representation. Agents write surface syntax, not IR directly. Included here for completeness.

    (* IR Module *)
    IRModule = { Instruction } , OutputDeclaration ;

    (* Instructions *) Instruction = ValueId , "=" , Operation , [ AttributeList ] , ":" , TensorType ; ValueId = "%" , Identifier | Integer ;

    (* Operations *) Operation = InputOperation | ConstOperation | BinaryOperation | ReductionOperation | ShapeOperation | IndexOperation | LinearAlgebraOperation | ActivationOperation ;

    (* Input operation *) InputOperation = "Input" , "(" , ")" ;

    (* Constant operations *) ConstOperation = ConstI64Operation | ConstTensorOperation ; ConstI64Operation = "ConstI64" , "(" , Integer , ")" ; ConstTensorOperation = "ConstTensor" , "(" , TensorLiteral , ")" ;

    TensorLiteral = "[" , [ TensorElements ] , "]" ; TensorElements = TensorElement , { "," , TensorElement } , [ "," ] ; TensorElement = Number | TensorLiteral ;

    (* Binary operations *) BinaryOperation = "BinOp" , "(" , BinaryOperator , "," , Operand , "," , Operand , ")" ; BinaryOperator = "Add" | "Sub" | "Mul" ; Operand = ValueId ;

    (* Reduction operations *) ReductionOperation = SumOperation | MeanOperation ; SumOperation = "Sum" , "(" , Operand , "," , AxisList , "," , KeepDims , ")" ; MeanOperation = "Mean" , "(" , Operand , "," , AxisList , "," , KeepDims , ")" ;

    AxisList = "[" , [ Integers ] , "]" ; Integers = Integer , { "," , Integer } , [ "," ] ; KeepDims = "true" | "false" ;

    (* Shape operations *) ShapeOperation = ReshapeOperation | TransposeOperation | ExpandDimsOperation | SqueezeOperation ;

    ReshapeOperation = "Reshape" , "(" , Operand , "," , Shape , ")" ; TransposeOperation = "Transpose" , "(" , Operand , "," , Permutation , ")" ; Permutation = "[" , [ Integers ] , "]" ; ExpandDimsOperation = "ExpandDims" , "(" , Operand , "," , AxisList , ")" ; SqueezeOperation = "Squeeze" , "(" , Operand , "," , AxisList , ")" ;

    (* Indexing operations *) IndexOperation = IndexOp | SliceOp | GatherOp ; IndexOp = "Index" , "(" , Operand , "," , IndexList , ")" ; IndexList = "[" , [ Integers ] , "]" ; SliceOp = "Slice" , "(" , Operand , "," , SliceRanges , ")" ; SliceRanges = "[" , [ SliceRange , { "," , SliceRange } , [ "," ] ] , "]" ; SliceRange = Integer , ":" , Integer , [ ":" , Integer ] ; GatherOp = "Gather" , "(" , Operand , "," , Operand , ")" ;

    (* Linear algebra operations *) LinearAlgebraOperation = DotOperation | MatMulOperation | Conv2dOperation ; DotOperation = "Dot" , "(" , Operand , "," , Operand , ")" ; MatMulOperation = "MatMul" , "(" , Operand , "," , Operand , ")" ; Conv2dOperation = "Conv2d" , "(" , Operand , "," , Operand , "," , Strides , "," , Padding , ")" ; Strides = "[" , Integer , "," , Integer , "]" ; Padding = "Same" | "Valid" | CustomPadding ; CustomPadding = "Custom" , "(" , PaddingValues , ")" ; PaddingValues = "[" , [ PaddingPair , { "," , PaddingPair } , [ "," ] ] , "]" ; PaddingPair = "[" , Integer , "," , Integer , "]" ;

    (* Activation operations *) ActivationOperation = ReluOperation ; ReluOperation = "Relu" , "(" , Operand , ")" ;

    (* Attributes *) AttributeList = "{" , [ Attributes ] , "}" ; Attributes = Attribute , { "," , Attribute } , [ "," ] ; Attribute = Identifier , ":" , AttributeValue ; AttributeValue = String | Integer | Number | Boolean | AxisList | Shape ; Boolean = "true" | "false" ;

    (* Types *) TensorType = "Tensor" , "<" , DType , "," , Shape , ">" ; DType = "i32" | "i64" | "f32" | "f64" ; Shape = "[" , [ Dimensions ] , "]" ; Dimensions = Dimension , { "," , Dimension } , [ "," ] ; Dimension = Integer | "?" ;

    (* Output declaration *) OutputDeclaration = "outputs" , ":" , OutputList ; OutputList = ValueId , { "," , ValueId } , [ "," ] ;

    (* Primitives *) Integer = [ "-" ] , Digit , { Digit } ; Number = [ "-" ] , Digit , { Digit } , [ "." , { Digit } ] , [ Exponent ] ; Exponent = ( "e" | "E" ) , [ "+" | "-" ] , Digit , { Digit } ; Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; String = '"' , { StringCharacter } , '"' ; StringCharacter = ? any character except '"' and '\' ? | EscapeSequence ; EscapeSequence = "\" , ( "n" | "r" | "t" | "\" | '"' ) ; Identifier = IdentifierStart , { IdentifierContinue } ; IdentifierStart = Letter | "_" ; IdentifierContinue = Letter | Digit | "_" ; Letter = ? Unicode XID_Start ? ;

    Example: Hello Tensor

    import std.tensor;

    fn main() { let x = tensor.zeros[f32, (2, 3)]; let y = x + 1.0; on(gpu0) { print(y.sum()); // 6.0 } let z = y.reshape((3, 2)); let result = z * 2.0; print("Shape: ", result.shape()); print("Mean: ", result.mean()); }

    Example: Policy Kernel

    enum Action { Read, Write, Delete, Execute }
    enum EffectTag { Allow, Deny, RequireConfirmation }
    enum DenyCode { InvalidInput = 1, DefaultDeny = 255 }

    struct Effect { tag: EffectTag, code: u32 } struct Request { env: Env, action: Action, resource: Resource, target: Target }

    fn evaluate(req: &Request) -> Effect { if !validate(req) { return Effect { tag: EffectTag::Deny, code: DenyCode::SuspiciousJustification as u32 } } match req.action { Action::Read => Effect { tag: EffectTag::Allow, code: 0 }, Action::Write => check_write(req), _ => Effect { tag: EffectTag::Deny, code: DenyCode::DefaultDeny as u32 }, } }

    Example: Neural Network Layer with Autodiff

    fn conv_layer(x: diff tensor,
                  w: diff tensor,
                  b: diff tensor) -> diff tensor {
        let conv = conv2d(x, w, stride=[1,1], padding="valid");
        let biased = conv + b;
        let activated = relu(biased);
        return maxpool2d(activated, kernel=[2,2], stride=[2,2]);
    }

    fn train_step(x: diff tensor, labels: tensor, w: diff tensor, b: diff tensor, lr: f32) -> (diff tensor, diff tensor) { let logits = forward(x, w, b); let loss = cross_entropy(logits, labels); let grad_w = backward(loss, w); let grad_b = backward(loss, b); return (w - lr * grad_w, b - lr * grad_b); }

    Example: ODE Solver (Scientific Computing)

    import std.math;
    import std.tensor;

    fn linspace(start: f64, end: f64, n: i32) -> tensor { let step = (end - start) / (n - 1) as f64; let grid: tensor = tensor.zeros[f64, (n,)]; for i in 0..n { grid[i] = start + (i as f64) * step; } return grid; }

    fn interp_linear(x_grid: tensor, y_grid: tensor, n: i32, x_query: f64) -> f64 { if x_query <= x_grid[0] { return y_grid[0]; } if x_query >= x_grid[n - 1] { return y_grid[n - 1]; } let step = (x_grid[n-1] - x_grid[0]) / (n - 1) as f64; let idx = ((x_query - x_grid[0]) / step) as i32; let t = (x_query - x_grid[0]) / step - (idx as f64); return y_grid[idx] * (1.0 - t) + y_grid[idx + 1] * t; }

    fn solve(a: fn(f64) -> f64, g: fn(f64) -> f64, lambda: f64, x_min: f64, x_max: f64, n_grid: i32) -> (tensor, tensor) { let x = linspace(x_min, x_max, n_grid); // ... solver implementation return (x, solution); }

    Common Patterns

    Byte-level string operations (no allocator needed)

    fn starts_with(slice: &[u8], prefix: &[u8]) -> bool {
        if prefix.len() > slice.len() { return false }
        let mut i = 0;
        while i < prefix.len() {
            if slice[i] != prefix[i] { return false }
            i += 1;
        }
        true
    }
    

    Quantization-aware inference

    fn quantize_weights(w: tensor, scale: f32) -> tensor {
        return round(w / scale) * scale;
    }
    

    Function pointers as parameters

    fn solve(coeff: fn(f64) -> f64, source: fn(f64) -> f64, lambda: f64) -> tensor {
        // Accepts coefficient functions as arguments
    }
    

    What This Skill Does NOT Cover

  • [protection] attributes and runtime transforms (private, not in the public compiler)
  • Core IR authoring (compiler internal β€” agents write surface syntax, not IR)
  • MLIR lowering details (handled by the compiler automatically)
  • ⚑ When to Use

    TriggerAction
    - Write, generate, or create `.mind` files
    - Implement algorithms, models, or solvers in MIND
    - Port code from Python/Rust/C to MIND
    - Explain MIND syntax or semantics