Renderingla

Generics

Functions, type aliases, genus, and implendum accept type parameters with <T> syntax.

Generic functions

functio identitas<T>(T valor) → T {
    redde valor
}

functio primum<T>(lista<T> res) → T ∪ nihil {
    redde res.primus()
}

Explicit call-site type arguments

functio identitas<T>(T valor) → T { redde valor }

functio primum<T>(lista<T> res) → T ∪ nihil {
    redde nihil
}

fixum _ value ← identitas<numerus>(7)
fixum _ maybe ← primum<numerus>([value])

Generic genus

genus Par<T> {
    T primus
    T secundus
}

Size parameters

magnitudo declares a size/index parameter in generic parameter lists:

functio crea<T, magnitudo N>() → tensor<T, [N]> {
    redde vacua
}