-- GENERATED by C->Haskell Compiler, version 0.18.2 The shapeless maps, 31 Oct 2014 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Graphics/Wayland/Internal/ServerClientState.chs" #-}
module Graphics.Wayland.Internal.ServerClientState where



data ClientStateNums = ClientReadable
                     | ClientWritable
                     | ClientHangup
                     | ClientError
instance Enum ClientStateNums where
  succ ClientReadable = ClientWritable
  succ ClientWritable = ClientHangup
  succ ClientHangup = ClientError
  succ ClientError = error "ClientStateNums.succ: ClientError has no successor"

  pred ClientWritable = ClientReadable
  pred ClientHangup = ClientWritable
  pred ClientError = ClientHangup
  pred ClientReadable = error "ClientStateNums.pred: ClientReadable has no predecessor"

  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []

  enumFrom from = enumFromTo from ClientError

  fromEnum ClientReadable = 1
  fromEnum ClientWritable = 2
  fromEnum ClientHangup = 4
  fromEnum ClientError = 8

  toEnum 1 = ClientReadable
  toEnum 2 = ClientWritable
  toEnum 4 = ClientHangup
  toEnum 8 = ClientError
  toEnum unmatched = error ("ClientStateNums.toEnum: Cannot match " ++ show unmatched)