aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/data/number/i8.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/data/number/i8.lux20
1 files changed, 20 insertions, 0 deletions
diff --git a/stdlib/source/lux/data/number/i8.lux b/stdlib/source/lux/data/number/i8.lux
new file mode 100644
index 000000000..483f6a6a1
--- /dev/null
+++ b/stdlib/source/lux/data/number/i8.lux
@@ -0,0 +1,20 @@
+(.module:
+ [lux (#- i64)
+ [abstract
+ [equivalence (#+ Equivalence)]]
+ [data
+ ["." maybe]]
+ [type (#+ :by-example)]]
+ [//
+ ["." i64 (#+ Sub)]])
+
+(def: sub (maybe.assume (i64.sub 8)))
+
+(def: #export I8 (:by-example [size]
+ {(Sub size)
+ sub}
+ (I64 size)))
+
+(def: #export i8 (-> I64 I8) (get@ #i64.narrow sub))
+(def: #export i64 (-> I8 I64) (get@ #i64.wide sub))
+(def: #export equivalence (Equivalence I8) (get@ #i64.equivalence sub))