{- |
Module      : $Header$
Description : Definition of Group
Copyright   : (c) Maciej Piechotka
License     : LGPL 3 or later

Maintainer  : uzytkownik2@gmail.com
Stability   : none
Portability : portable

This module contains definition of Group
-}
module Network.NNTP.Internal.Group
  (
    Group(..),
  )
where
import Control.Arrow
{- | 
Represents a single group.
-}
data Group = Group {
      -- | Returns the group name.
      groupName :: String,
      -- | Returns the number of first article avaible.
      groupArticleFirst :: Integer,
      -- | Returns the number of last article avaible.
      groupArticleLast :: Integer
    }

instance Show Group where
    show = ("Group "++) . groupName
instance Eq Group where
    (==) = curry (groupName *** groupName >>> uncurry (==))