never executed always true always false
    1 module HelVM.HelMA.Automaton.Types.DumpType where
    2 
    3 import           HelVM.HelMA.Automaton.Eff.MonadEff
    4 
    5 import           HelVM.HelIO.Extra
    6 
    7 import           Control.Monad.Logger
    8 
    9 logDump :: (AppEff m , Show d) => DumpType -> d -> m ()
   10 logDump dt d = logDump' $ dump dt d where
   11   logDump' Nothing  = pass
   12   logDump' (Just t) = logInfoN $ logTupleToMessage ("dump" , t)
   13   logTupleToMessage (k , v) = k <> ": " <> v
   14 
   15 dump :: Show a => DumpType -> a -> Maybe Text
   16 dump No     _ = Nothing
   17 dump Ugly   a = Just $ show  a
   18 dump Pretty a = Just $ showP a
   19 
   20 -- | Constructors
   21 defaultDumpType :: DumpType
   22 defaultDumpType = minBound
   23 
   24 dumpTypes :: NonEmpty DumpType
   25 dumpTypes = universeNonEmpty
   26 
   27 -- | Types
   28 data DumpType = No | Ugly | Pretty
   29   deriving stock (Bounded , Enum , Eq , Read , Show)