    module Termonad.Prelude
      ( module X
      , hPutStrLn
      , whenJust
      ) where

    import Control.Lens as X ((&))
    import Control.Monad.Trans.Maybe as X (MaybeT(MaybeT), runMaybeT)
    import ClassyPrelude as X
    import Data.Proxy as X
    import qualified Data.Text.IO as TextIO

    whenJust :: Monoid m => Maybe a -> (a -> m) -> m
    whenJust :: Maybe a -> (a -> m) -> m
    whenJust = ((a -> m) -> Maybe a -> m) -> Maybe a -> (a -> m) -> m
    forall a b c. (a -> b -> c) -> b -> a -> c
    flip (a -> m) -> Maybe a -> m
    forall mono m.
    (MonoFoldable mono, Monoid m) =>
    (Element mono -> m) -> mono -> m
    foldMap

    hPutStrLn :: MonadIO m => Handle -> Text -> m ()
    hPutStrLn :: Handle -> Text -> m ()
    hPutStrLn hndl :: Handle
    hndl = IO () -> m ()
    forall (m :: * -> *) a. MonadIO m => IO a -> m a
    liftIO (IO () -> m ()) -> (Text -> IO ()) -> Text -> m ()
    forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
    Category cat =>
    cat b c -> cat a b -> cat a c
    . Handle -> Text -> IO ()
    TextIO.hPutStrLn Handle
    hndl