@@ -46,6 +46,118 @@ instance Show Bool where
4646 show True = "True"
4747 show False = "False"
4848
49+instance Show Bits8 where
50+ show = prim__toStrB8
51+
52+instance Show Bits16 where
53+ show = prim__toStrB16
54+
55+instance Show Bits32 where
56+ show = prim__toStrB32
57+
58+instance Show Bits64 where
59+ show = prim__toStrB64
60+
61+%assert_total
62+viewB8x16 : Bits8x16 -> (Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8, Bits8)
63+viewB8x16 x = ( prim__indexB8x16 x (prim__truncBigInt_B32 0)
64+ , prim__indexB8x16 x (prim__truncBigInt_B32 1)
65+ , prim__indexB8x16 x (prim__truncBigInt_B32 2)
66+ , prim__indexB8x16 x (prim__truncBigInt_B32 3)
67+ , prim__indexB8x16 x (prim__truncBigInt_B32 4)
68+ , prim__indexB8x16 x (prim__truncBigInt_B32 5)
69+ , prim__indexB8x16 x (prim__truncBigInt_B32 6)
70+ , prim__indexB8x16 x (prim__truncBigInt_B32 7)
71+ , prim__indexB8x16 x (prim__truncBigInt_B32 8)
72+ , prim__indexB8x16 x (prim__truncBigInt_B32 9)
73+ , prim__indexB8x16 x (prim__truncBigInt_B32 10)
74+ , prim__indexB8x16 x (prim__truncBigInt_B32 11)
75+ , prim__indexB8x16 x (prim__truncBigInt_B32 12)
76+ , prim__indexB8x16 x (prim__truncBigInt_B32 13)
77+ , prim__indexB8x16 x (prim__truncBigInt_B32 14)
78+ , prim__indexB8x16 x (prim__truncBigInt_B32 15)
79+ )
80+
81+instance Show Bits8x16 where
82+ show x =
83+ case viewB8x16 x of
84+ (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) =>
85+ "<" ++ prim__toStrB8 a
86+ ++ ", " ++ prim__toStrB8 b
87+ ++ ", " ++ prim__toStrB8 c
88+ ++ ", " ++ prim__toStrB8 d
89+ ++ ", " ++ prim__toStrB8 e
90+ ++ ", " ++ prim__toStrB8 f
91+ ++ ", " ++ prim__toStrB8 g
92+ ++ ", " ++ prim__toStrB8 h
93+ ++ ", " ++ prim__toStrB8 i
94+ ++ ", " ++ prim__toStrB8 j
95+ ++ ", " ++ prim__toStrB8 k
96+ ++ ", " ++ prim__toStrB8 l
97+ ++ ", " ++ prim__toStrB8 m
98+ ++ ", " ++ prim__toStrB8 n
99+ ++ ", " ++ prim__toStrB8 o
100+ ++ ", " ++ prim__toStrB8 p
101+ ++ ">"
102+
103+%assert_total
104+viewB16x8 : Bits16x8 -> (Bits16, Bits16, Bits16, Bits16, Bits16, Bits16, Bits16, Bits16)
105+viewB16x8 x = ( prim__indexB16x8 x (prim__truncBigInt_B32 0)
106+ , prim__indexB16x8 x (prim__truncBigInt_B32 1)
107+ , prim__indexB16x8 x (prim__truncBigInt_B32 2)
108+ , prim__indexB16x8 x (prim__truncBigInt_B32 3)
109+ , prim__indexB16x8 x (prim__truncBigInt_B32 4)
110+ , prim__indexB16x8 x (prim__truncBigInt_B32 5)
111+ , prim__indexB16x8 x (prim__truncBigInt_B32 6)
112+ , prim__indexB16x8 x (prim__truncBigInt_B32 7)
113+ )
114+
115+instance Show Bits16x8 where
116+ show x =
117+ case viewB16x8 x of
118+ (a, b, c, d, e, f, g, h) =>
119+ "<" ++ prim__toStrB16 a
120+ ++ ", " ++ prim__toStrB16 b
121+ ++ ", " ++ prim__toStrB16 c
122+ ++ ", " ++ prim__toStrB16 d
123+ ++ ", " ++ prim__toStrB16 e
124+ ++ ", " ++ prim__toStrB16 f
125+ ++ ", " ++ prim__toStrB16 g
126+ ++ ", " ++ prim__toStrB16 h
127+ ++ ">"
128+
129+%assert_total
130+viewB32x4 : Bits32x4 -> (Bits32, Bits32, Bits32, Bits32)
131+viewB32x4 x = ( prim__indexB32x4 x (prim__truncBigInt_B32 0)
132+ , prim__indexB32x4 x (prim__truncBigInt_B32 1)
133+ , prim__indexB32x4 x (prim__truncBigInt_B32 2)
134+ , prim__indexB32x4 x (prim__truncBigInt_B32 3)
135+ )
136+
137+instance Show Bits32x4 where
138+ show x =
139+ case viewB32x4 x of
140+ (a, b, c, d) =>
141+ "<" ++ prim__toStrB32 a
142+ ++ ", " ++ prim__toStrB32 b
143+ ++ ", " ++ prim__toStrB32 c
144+ ++ ", " ++ prim__toStrB32 d
145+ ++ ">"
146+
147+%assert_total
148+viewB64x2 : Bits64x2 -> (Bits64, Bits64)
149+viewB64x2 x = ( prim__indexB64x2 x (prim__truncBigInt_B32 0)
150+ , prim__indexB64x2 x (prim__truncBigInt_B32 1)
151+ )
152+
153+instance Show Bits64x2 where
154+ show x =
155+ case viewB64x2 x of
156+ (a, b) =>
157+ "<" ++ prim__toStrB64 a
158+ ++ ", " ++ prim__toStrB64 b
159+ ++ ">"
160+
49161instance (Show a, Show b) => Show (a, b) where
50162 show (x, y) = "(" ++ show x ++ ", " ++ show y ++ ")"
51163
@@ -228,6 +340,18 @@ curry f a b = f (a, b)
228340uncurry : (a -> b -> c) -> (a, b) -> c
229341uncurry f (a, b) = f a b
230342
343+uniformB8x16 : Bits8 -> Bits8x16
344+uniformB8x16 x = prim__mkB8x16 x x x x x x x x x x x x x x x x
345+
346+uniformB16x8 : Bits16 -> Bits16x8
347+uniformB16x8 x = prim__mkB16x8 x x x x x x x x
348+
349+uniformB32x4 : Bits32 -> Bits32x4
350+uniformB32x4 x = prim__mkB32x4 x x x x
351+
352+uniformB64x2 : Bits64 -> Bits64x2
353+uniformB64x2 x = prim__mkB64x2 x x
354+
231355---- some basic io
232356
233357partial