-- }}} Tooling Detection ------------------------------------------------------

-- {{{ Utility functions ------------------------------------------------------

putJustStrLn :: Maybe a -> (a -> String) -> IO ()
putJustStrLn = \case
    Nothing -> const $ pure ()
    Just s -> IO.putStrLn . ($ s)
putJustStrLn :: Maybe a -> (a -> String) -> IO ()
putJustStrLn = \case
    Nothing -> const $ pure ()
    Just s -> IO.putStrLn . ($ s)
putJustStrLn = \case
    Nothing -> const $ pure ()
    Just s -> IO.putStrLn . ($ s)