operations from this module cannot overflow. instead they increase the bit width.
- add :: Number -> Number -> SAT Number
- times :: Number -> Number -> SAT Number
- add_with_carry :: Boolean -> Booleans -> Booleans -> SAT (Booleans, Boolean)
- times1 :: Boolean -> Number -> SAT Number
- shift :: Number -> SAT Number
- data Number
- bits :: Number -> [Boolean]
- make :: [Boolean] -> Number
- width :: Number -> Int
- number :: Int -> SAT Number
- constant :: Integer -> SAT Number
- equals :: Number -> Number -> SAT Boolean
- iszero :: Number -> SAT Boolean