blob: 3bbf0378339041e00602cf483f965aeefe3034ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
(.module:
[lux #*
[macro
["." template]]
[type
abstract]])
(abstract: #export Void' {} Any)
(abstract: #export (Value' kind) {} Any)
(abstract: #export (Return' kind) {} Any)
(abstract: #export Method {} Any)
(type: #export Return (<| Return' Any))
(type: #export Value (<| Return' Value' Any))
(type: #export Void (<| Return' Void'))
(abstract: #export (Object' brand) {} Any)
(type: #export Object (<| Return' Value' Object' Any))
(abstract: #export (Parameter' brand) {} Any)
(type: #export Parameter (<| Return' Value' Object' Parameter' Any))
(template [<parents> <child>]
[(with-expansions [<raw> (template.identifier [<child> "'"])]
(abstract: #export <raw> {} Any)
(type: #export <child>
(`` (<| Return' Value' (~~ (template.splice <parents>)) <raw>))))]
[[] Primitive]
[[Object' Parameter'] Class]
[[Object'] Array]
)
|