packages feed

hix-0.7.0: lib/Hix/Managed/Lower/Data/LowerMode.hs

module Hix.Managed.Lower.Data.LowerMode where

import Hix.Managed.Cabal.Data.SolverState (SolverState)
import Hix.Managed.Data.Mutation (MutationResult (MutationFailed, MutationKeep))

data LowerMode =
  LowerMode {
    firstSuccess :: Bool,
    noSuccess :: MutationResult SolverState
  }
  deriving stock (Eq, Show, Generic)

lowerInitMode :: LowerMode
lowerInitMode =
  LowerMode {
    firstSuccess = True,
    noSuccess = MutationFailed
  }

lowerOptimizeMode :: LowerMode
lowerOptimizeMode =
  LowerMode {
    firstSuccess = False,
    noSuccess = MutationKeep
  }

lowerStabilizeMode :: LowerMode
lowerStabilizeMode =
  LowerMode {
    firstSuccess = True,
    noSuccess = MutationFailed
  }