aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/number/i32.lux
blob: 560168f6f23d46bd109d381aba816e2393d5bdb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(.module:
  [lux (#- i64)
   [abstract
    [equivalence (#+ Equivalence)]]
   [data
    ["." maybe]]
   [type (#+ :by-example)]]
  [//
   ["." i64 (#+ Sub)]])

(def: sub (maybe.assume (i64.sub 32)))

(def: #export I32 (:by-example [size]
                               {(Sub size)
                                ..sub}
                               (I64 size)))

(def: #export i32 (-> I64 I32) (get@ #i64.narrow ..sub))
(def: #export i64 (-> I32 I64) (get@ #i64.wide ..sub))
(def: #export equivalence (Equivalence I32) (get@ #i64.equivalence ..sub))