data Size = Size Integer data Value = Value Integer data Conditions a = Conditions { items :: FiniteMap a (Size,Value) , constraint :: (Size,Value) }