]> gitweb.michael.orlitzky.com - hath.git/blobdiff - src/Bit.hs
Bump the version number to 0.0.4 in hath.cabal.
[hath.git] / src / Bit.hs
index 128b6f6c76a787d4de6327636a885543428f4e98..e3d90e420e2bffbbe97accd2ad08246731aacde4 100644 (file)
@@ -11,7 +11,7 @@ import Test.QuickCheck (
 
 
 data Bit = Zero | One
-  deriving (Eq)
+  deriving (Enum, Eq)
 
 instance Show Bit where
   show Zero = "0"
@@ -22,13 +22,24 @@ instance Arbitrary Bit where
   arbitrary = elements [ Zero, One ]
 
 
+instance Ord Bit where
+  Zero <= Zero = True
+  Zero <= One  = True
+  One  <= Zero = False
+  One  <= One  = True
+
+instance Bounded Bit where
+  minBound = Zero
+  maxBound = One
+
+
 -- | Convert a Bit to an Int.
 bit_to_int :: Bit -> Int
 bit_to_int Zero =  0
 bit_to_int One  =  1
 
 -- | If we are passed a '0' or '1', convert it
---   appropriately. Otherwise, default to Nothing.
+--   appropriately. Otherwise, return Nothing.
 bit_from_char :: Char -> Maybe Bit
 bit_from_char '0' = Just Zero
 bit_from_char '1' = Just One