  | WholeCart
  deriving (Generic, Show, Eq)

data Action
  = AmountOff    Integer Target
  | PercentOff   Integer Target
  | FreeProduct  Slug
  | ReferralUsed String -- eh why not
  deriving (Generic, Show, Eq)

data Rule = Rule Expression [Action]
  deriving (Generic, Show, Eq)