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 ∷ (AppSafeEff 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
   29   = No
   30   | Ugly
   31   | Pretty
   32   deriving stock (Bounded, Enum, Eq, Read, Show)