module CabalBounds.Bound
   ( Bound(..)
   , bound
   ) where   

import CabalBounds.Args

data Bound = LowerBound
           | UpperBound
           | BothBounds
           deriving (Show, Eq)

bound :: Args -> Bound
bound Drop {upper = upper} = if upper then UpperBound else BothBounds

bound Update {lower = lower, upper = upper}
   | lower && upper = BothBounds
   | lower          = LowerBound
   | upper          = UpperBound
   | otherwise      = BothBounds