Structures are defined at the module-level:
module sample
struct Person = { name, age, email }
function main = |args| {
let p1 = Person("Mr Bean", 54, "bean@gmail.com")
println(p1: name())
let p2 = Person(): name("John"): age(32): email("john@b-root.com")
println(p2: age())
}When declaring a structure, it also defines two factory functions: one with no arguments, and one
with all arguments in their order of declaration in the struct statement. When not initialized,
member values are null.
Each member yields a getter and a setter method: given a member a, the getter is method a()
while the setter is method a(newValue). It should be noted that setter methods return the
structure instance which makes it possible to chain calls as illustrated in the previous example
while building p2.