y-lang 0.1.3

Compiler & Interpreter for the (rather new and very experimental) Y programming language.
Documentation
import std::*

let foo := ( bar : (int, int) -> int ): int => {
    bar(3, 4)
}

let test := (x : int, y : int) : int => {
    x + y
}

printi(foo(test))

let a := 3

let nested := (offset : int, func: ( (int, int) -> int ) -> int) : int => {
    func(test) + offset 
}

print(" ")

printi(nested(a, foo))

print(" ")
printi(nested(7, (inner : (int, int) -> int): int => { inner(41, 17) }))

let triple := (a: int, b: int, c: int): int => {
    a + b + c
}
print(" ")
printi(triple(1, 2, 3))

let six_params := (a: int, b: int, c: int, d: int, e: str, f: bool): int => {
    if f {
        print(e)
    };
    (a + b + c) * d
}
print(" ")
printi(six_params(1, 2, 3, 4, "from_function ", true))