aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/math/number/i8.lux
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))