Commit | Line | Data |
---|---|---|
a870ad3f VS |
1 | (class +MAL) |
2 | # type value meta | |
3 | (dm T (Type Value Meta) | |
4 | (=: type Type) | |
5 | (=: value Value) | |
6 | (=: meta Meta) ) | |
7 | ||
8d229b7c VS |
8 | (de MAL-type (MAL) |
9 | (get MAL 'type) ) | |
10 | ||
11 | (de MAL-value (MAL) | |
12 | (get MAL 'value) ) | |
13 | ||
14 | (de MAL-meta (MAL) | |
15 | (get MAL 'meta) ) | |
16 | ||
a870ad3f VS |
17 | (class +MALTrue +MAL) |
18 | (dm T () | |
118269ab | 19 | (super 'true 'true NIL) ) |
a870ad3f VS |
20 | |
21 | (class +MALFalse +MAL) | |
22 | (dm T () | |
118269ab | 23 | (super 'false 'false NIL) ) |
a870ad3f VS |
24 | |
25 | (class +MALNil +MAL) | |
26 | (dm T () | |
118269ab | 27 | (super 'nil 'nil NIL) ) |
a870ad3f VS |
28 | |
29 | (def '*MAL-true (new '(+MALTrue))) | |
30 | (def '*MAL-false (new '(+MALFalse))) | |
31 | (def '*MAL-nil (new '(+MALNil))) | |
32 | ||
33 | (class +MALNumber +MAL) | |
34 | (dm T (Number) | |
35 | (super 'number Number NIL) ) | |
36 | ||
8d229b7c VS |
37 | (de MAL-number (N) |
38 | (new '(+MALNumber) N) ) | |
39 | ||
a870ad3f VS |
40 | (class +MALString +MAL) |
41 | (dm T (String) | |
42 | (super 'string String NIL) ) | |
43 | ||
8d229b7c VS |
44 | (de MAL-string (N) |
45 | (new '(+MALString) N) ) | |
46 | ||
a870ad3f VS |
47 | (class +MALSymbol +MAL) |
48 | (dm T (String) | |
49 | (super 'symbol String NIL) ) | |
50 | ||
8d229b7c VS |
51 | (de MAL-symbol (N) |
52 | (new '(+MALSymbol) N) ) | |
53 | ||
a870ad3f VS |
54 | (class +MALKeyword +MAL) |
55 | (dm T (String) | |
56 | (super 'keyword String NIL) ) | |
57 | ||
8d229b7c VS |
58 | (de MAL-keyword (N) |
59 | (new '(+MALKeyword) N) ) | |
60 | ||
a870ad3f VS |
61 | (class +MALList +MAL) |
62 | (dm T (Values) | |
63 | (super 'list Values NIL) ) | |
64 | ||
8d229b7c VS |
65 | (de MAL-list (N) |
66 | (new '(+MALList) N) ) | |
67 | ||
a870ad3f VS |
68 | (class +MALVector +MAL) |
69 | (dm T (Values) | |
70 | (super 'vector Values NIL) ) | |
71 | ||
8d229b7c VS |
72 | (de MAL-vector (N) |
73 | (new '(+MALVector) N) ) | |
74 | ||
a870ad3f VS |
75 | (class +MALMap +MAL) |
76 | (dm T (Values) | |
77 | (super 'map Values NIL) ) | |
78 | ||
8d229b7c VS |
79 | (de MAL-map (N) |
80 | (new '(+MALMap) N) ) | |
81 | ||
a870ad3f VS |
82 | (class +MALAtom +MAL) |
83 | (dm T (Value) | |
84 | (super 'atom Value NIL) ) | |
85 | ||
8d229b7c VS |
86 | (de MAL-atom (N) |
87 | (new '(+MALAtom) N) ) | |
88 | ||
118269ab VS |
89 | (class +MALFn +MAL) |
90 | (dm T (Fn) | |
91 | (super 'fn Fn NIL) ) | |
92 | ||
93 | (de MAL-fn (Fn) | |
94 | (new '(+MALFn) Fn) ) | |
95 | ||
a870ad3f VS |
96 | (class +MALError +MAL) |
97 | (dm T (Value) | |
98 | (super 'error Value NIL) ) | |
8d229b7c VS |
99 | |
100 | (de MAL-error (Value) | |
101 | (new '(+MALError) Value) ) |