5.2. structs
Structs are composite types that contain values of different types associated with a set of string keys. The set of keys and their corresponding value types is fixed at runtime.
Struct values can be created using curly brackets {"key" 3} (which is
syntactic sugar for the (mkstruct …) builtin).
This uses Pure Op semantics to construct a struct from its parameters. The keys have to be constants.
(trace {"a" 1 "b" 'hello world'})
<{a: num b: str}= {a: 1 b: "hello world"}>
The type notation {a: num b: str} designates a struct type with the key a
mapping to a value of type num and the key b mapping to a value of type
str respectively, whereas the value notation {a: 1 b: "hello world"} shows
the struct contents.
The struct module provides Ops for working with arrays.