loom
1#{ built_in_type = -1 } type empty
2#{ initial_value = null } type auto
3#{ initial_value = true } type bool
4#{ initial_value = "" } type string
5#{ initial_value = 0 } type int
6#{ initial_value = 0.0 } type float
7
8def auto type object = {}
9
10#{ hidden = true } contract hidden
11#{ tethered = true } contract tethered
12#{ input : true } contract input
13
14import array type array
15
16common empty, auto, bool, string, int, float, object, hidden, tethered, array, input
17
18import "range.s-script" type Range
19
20//auto type
21// Range =
22// {
23// begin = 0,
24// end = 0,
25// counter = 0,
26// __init__ = fn [Range] (int : b, int : e) -> Range
27// {
28// Range : range
29//
30// range.begin = b
31// range.end = e
32// range.counter = b - 1
33//
34// return range
35// },
36// __iterator__ = fn (Range : range)
37// {
38// range.counter += 1
39// return [range.counter, range.counter <= range.end]
40// }
41// }
42
43common Range
44