@@ -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