blob: c481d579986eaac973a3d381625c92417dd94b85 (
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
|
(.module:
[library
[lux {"-" i64}
[abstract
[equivalence {"+" Equivalence}]]
[control
["[0]" maybe]]
[type {"+" :by_example}]]]
[//
["[0]" i64 {"+" Sub}]])
(def: sub
(maybe.trusted (i64.sub 8)))
(def: .public I8
Type
(:by_example [size]
(Sub size)
..sub
(I64 size)))
(def: .public equivalence (Equivalence I8) (# ..sub &equivalence))
(def: .public width Nat (# ..sub bits))
(def: .public i8 (-> I64 I8) (# ..sub narrow))
(def: .public i64 (-> I8 I64) (# ..sub wide))
|