printAndOrHeadTail :: (MonadState PrintState m, MonadWriter (Endo String) m)
                   => Pipeline -> [ConditionalPipeline] -> m ()
printAndOrHeadTail h [] = prints h
printAndOrHeadTail :: (MonadState PrintState m, MonadWriter (Endo String) m)
                   => Pipeline -> [ConditionalPipeline] -> m ()
printAndOrHeadTail h [] = prints h
printAndOrHeadTail h [] = prints h