@@ -22,43 +22,85 @@ intToBits {n=n} x with (Bits n)
22 | Bits32 = prim__intToB32 x
22 | Bits32 = prim__intToB32 x
23 | Bits64 = prim__intToB64 x
23 | Bits64 = prim__intToB64 x
25+bitsShl : {n: Nat} -> Bits n -> Bits n -> Bits n
26+bitsShl {n=n} x c with (Bits n)
27+ | Bits8 = prim__shlB8 x c
28+ | Bits16 = prim__shlB16 x c
29+ | Bits32 = prim__shlB32 x c
30+ | Bits64 = prim__shlB64 x c
32+bitsLShr : {n: Nat} -> Bits n -> Bits n -> Bits n
33+bitsLShr {n=n} x c with (Bits n)
34+ | Bits8 = prim__lshrB8 x c
35+ | Bits16 = prim__lshrB16 x c
36+ | Bits32 = prim__lshrB32 x c
37+ | Bits64 = prim__lshrB64 x c
39+bitsAShr : {n: Nat} -> Bits n -> Bits n -> Bits n
40+bitsAShr {n=n} x c with (Bits n)
41+ | Bits8 = prim__ashrB8 x c
42+ | Bits16 = prim__ashrB16 x c
43+ | Bits32 = prim__ashrB32 x c
44+ | Bits64 = prim__ashrB64 x c
46+bitsAnd : {n: Nat} -> Bits n -> Bits n -> Bits n
47+bitsAnd {n=n} x y with (Bits n)
48+ | Bits8 = prim__andB8 x y
49+ | Bits16 = prim__andB16 x y
50+ | Bits32 = prim__andB32 x y
51+ | Bits64 = prim__andB64 x y
53+bitsOr : {n: Nat} -> Bits n -> Bits n -> Bits n
54+bitsOr {n=n} x y with (Bits n)
55+ | Bits8 = prim__orB8 x y
56+ | Bits16 = prim__orB16 x y
57+ | Bits32 = prim__orB32 x y
58+ | Bits64 = prim__orB64 x y
60+bitsXOr : {n: Nat} -> Bits n -> Bits n -> Bits n
61+bitsXOr {n=n} x y with (Bits n)
62+ | Bits8 = prim__xorB8 x y
63+ | Bits16 = prim__xorB16 x y
64+ | Bits32 = prim__xorB32 x y
65+ | Bits64 = prim__xorB64 x y
25bitsAdd : {n : Nat} -> Bits n -> Bits n -> Bits n
67bitsAdd : {n : Nat} -> Bits n -> Bits n -> Bits n
26−bitsAdd {n=m} x y with (Bits m)
68+bitsAdd {n=n} x y with (Bits n)
27 | Bits8 = prim__addB8 x y
69 | Bits8 = prim__addB8 x y
28 | Bits16 = prim__addB16 x y
70 | Bits16 = prim__addB16 x y
29 | Bits32 = prim__addB32 x y
71 | Bits32 = prim__addB32 x y
30 | Bits64 = prim__addB64 x y
72 | Bits64 = prim__addB64 x y
32bitsSub : {n : Nat} -> Bits n -> Bits n -> Bits n
74bitsSub : {n : Nat} -> Bits n -> Bits n -> Bits n
33−bitsSub {n=m} x y with (Bits m)
75+bitsSub {n=n} x y with (Bits n)
34 | Bits8 = prim__subB8 x y
76 | Bits8 = prim__subB8 x y
35 | Bits16 = prim__subB16 x y
77 | Bits16 = prim__subB16 x y
36 | Bits32 = prim__subB32 x y
78 | Bits32 = prim__subB32 x y
37 | Bits64 = prim__subB64 x y
79 | Bits64 = prim__subB64 x y
39bitsMul : {n : Nat} -> Bits n -> Bits n -> Bits n
81bitsMul : {n : Nat} -> Bits n -> Bits n -> Bits n
40−bitsMul {n=m} x y with (Bits m)
82+bitsMul {n=n} x y with (Bits n)
41 | Bits8 = prim__mulB8 x y
83 | Bits8 = prim__mulB8 x y
42 | Bits16 = prim__mulB16 x y
84 | Bits16 = prim__mulB16 x y
43 | Bits32 = prim__mulB32 x y
85 | Bits32 = prim__mulB32 x y
44 | Bits64 = prim__mulB64 x y
86 | Bits64 = prim__mulB64 x y
46bitsSDiv : {n : Nat} -> Bits n -> Bits n -> Bits n
88bitsSDiv : {n : Nat} -> Bits n -> Bits n -> Bits n
47−bitsSDiv {n=m} x y with (Bits m)
89+bitsSDiv {n=n} x y with (Bits n)
48 | Bits8 = prim__sdivB8 x y
90 | Bits8 = prim__sdivB8 x y
49 | Bits16 = prim__sdivB16 x y
91 | Bits16 = prim__sdivB16 x y
50 | Bits32 = prim__sdivB32 x y
92 | Bits32 = prim__sdivB32 x y
51 | Bits64 = prim__sdivB64 x y
93 | Bits64 = prim__sdivB64 x y
53bitsUDiv : {n : Nat} -> Bits n -> Bits n -> Bits n
95bitsUDiv : {n : Nat} -> Bits n -> Bits n -> Bits n
54−bitsUDiv {n=m} x y with (Bits m)
96+bitsUDiv {n=n} x y with (Bits n)
55 | Bits8 = prim__udivB8 x y
97 | Bits8 = prim__udivB8 x y
56 | Bits16 = prim__udivB16 x y
98 | Bits16 = prim__udivB16 x y
57 | Bits32 = prim__udivB32 x y
99 | Bits32 = prim__udivB32 x y
58 | Bits64 = prim__udivB64 x y
100 | Bits64 = prim__udivB64 x y
60bitsToStr : {n : Nat} -> Bits n -> String
102bitsToStr : {n : Nat} -> Bits n -> String
61−bitsToStr {n=m} x with (Bits m)
103+bitsToStr {n=n} x with (Bits n)
62 | Bits8 = prim__b8ToStr x
104 | Bits8 = prim__b8ToStr x
63 | Bits16 = prim__b16ToStr x
105 | Bits16 = prim__b16ToStr x
64 | Bits32 = prim__b32ToStr x
106 | Bits32 = prim__b32ToStr x