aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/target/jvm/type/category.lux
blob: e3bbface907489d0c86b8494aebc5a2f3d427878 (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
33
34
35
36
(.module:
  [library
   [lux {"-" Primitive}
    [macro
     ["[0]" template]]
    [type
     abstract]]])

(abstract: .public Void' Any)
(abstract: .public (Value' kind) Any)
(abstract: .public (Return' kind) Any)
(abstract: .public Method Any)

(type: .public Return (<| Return' Any))
(type: .public Value (<| Return' Value' Any))
(type: .public Void (<| Return' Void'))

(abstract: .public (Object' brand) Any)
(type: .public Object (<| Return' Value' Object' Any))

(abstract: .public (Parameter' brand) Any)
(type: .public Parameter (<| Return' Value' Object' Parameter' Any))

(template [<parents> <child>]
  [(with_expansions [<raw> (template.symbol [<child> "'"])]
     (abstract: <raw> Any)
     (type: .public <child>
       (`` (<| Return' Value' (~~ (template.spliced <parents>)) <raw>))))]

  [[] Primitive]
  [[Object' Parameter'] Var]
  [[Object' Parameter'] Class]
  [[Object'] Array]
  )

(abstract: .public Declaration Any)