Zirric
Zirric
Explicit structure.
Zirric is a compact language that favors declarations, readable data modeling, and attributes that describe capabilities without interfaces.
Get StartedBrowse Proposals
attr Countable {
length(value: @Countable) -> Int
}
@Countable(fn(v) { return v.length })
data Bag {
items
length
}
fn summarize(bag: Bag) -> Result {
const length = Countable(bag).length(bag)
return if length > 0 {
Ok(length)
} else {
Err("empty")
}
}
Declarations first
Small set of primitives: const, var, fn, data, union, attr, mod, import.
Expression-oriented
if and for return values when you need them, so data flow stays explicit.
Attributes over interfaces
Capabilities are declared, composed, and exposed to tooling.
Readable data types
Records and tagged unions stay close to the domain and are easy to reason about.