{-# LANGUAGE DeriveGeneric #-} module Zifter.Setup.Types where import GHC.Generics import Zifter.Zift.Types data ZiftSetup = ZiftSetup { ziftPreprocessor :: Zift () , ziftPreChecker :: Zift () , ziftChecker :: Zift () } deriving (Generic) instance Monoid ZiftSetup where mempty = ZiftSetup { ziftPreprocessor = pure () , ziftPreChecker = pure () , ziftChecker = pure () } mappend z1 z2 = ZiftSetup { ziftPreprocessor = ziftPreprocessor z1 `mappend` ziftPreprocessor z2 , ziftPreChecker = ziftPreChecker z1 `mappend` ziftPreChecker z2 , ziftChecker = ziftChecker z1 `mappend` ziftChecker z2 }