]> gitweb.michael.orlitzky.com - hath.git/blobdiff - src/Bit.hs
Add a test for the Cidr 'enumerate' function.
[hath.git] / src / Bit.hs
index 5c8c5aa25903ba4332db63faaf55ccfd0e2e0f44..c01ae94b5563df50707a23c3e5dfc19b6257ebb6 100644 (file)
@@ -1,6 +1,8 @@
 -- | The Bit module contains the Bit data type, which is essentially a
 --   renamed Boolean, and some convenience functions.
-module Bit
+module Bit (
+  Bit(..)
+  )
 where
 
 import Test.QuickCheck (
@@ -11,7 +13,7 @@ import Test.QuickCheck (
 
 
 data Bit = Zero | One
-  deriving (Eq)
+  deriving (Enum, Eq)
 
 instance Show Bit where
   show Zero = "0"
@@ -22,14 +24,12 @@ instance Arbitrary Bit where
   arbitrary = elements [ Zero, One ]
 
 
--- | Convert a Bit to an Int.
-bit_to_int :: Bit -> Int
-bit_to_int Zero =  0
-bit_to_int One  =  1
+instance Ord Bit where
+  Zero <= Zero = True
+  Zero <= One  = True
+  One  <= Zero = False
+  One  <= One  = True
 
--- | If we are passed a '0' or '1', convert it
---   appropriately. Otherwise, return Nothing.
-bit_from_char :: Char -> Maybe Bit
-bit_from_char '0' = Just Zero
-bit_from_char '1' = Just One
-bit_from_char  _  = Nothing
+instance Bounded Bit where
+  minBound = Zero
+  maxBound = One