The second example shows the use of an algebraic data type, a tuple:
types {
Tup = Int Int MkTup
}
main {
6 7 MkTup (\ Int <- (x y MkTup): Tup . x y * )
print
}
MkTup creates a tuple of two integers. In Haskell this would be
data Tup = MkTup Int Int
The lambda function pattern matches on the type, so x and y bind to the stored values.
Currently, there is no type checking. It's all very bare bones, an awful lot is still missing. There isn't even a compiler executable yet. But I think progress should be a bit faster now. #Funktal