{-# LANGUAGE NoImplicitPrelude #-} module Chiasma.Prelude ( module Cornea, module Data.Default, module Data.Foldable, module Relude, dbg, dbgs, dbgm, makeClassy, mapLeft, tuple, undefined, unit, unsafeLogAnd, unsafeLogS, unsafeLogSAnd, (<$$>), ) where import Control.Lens (makeClassy) import Cornea import Data.Default (Default(def)) import Data.Either.Combinators (mapLeft) import Data.Foldable (foldl, traverse_) import Data.Functor.Syntax ((<$$>)) import GHC.Err (undefined) import GHC.IO.Unsafe (unsafePerformIO) import Relude hiding (Type, ask, asks, get, gets, hoistEither, hoistMaybe, local, modify, put, state, undefined) dbg :: Monad m => Text -> m () dbg :: Text -> m () dbg Text msg = do () <- () -> m () forall (m :: * -> *) a. Monad m => a -> m a return (() -> m ()) -> () -> m () forall a b. (a -> b) -> a -> b $ IO () -> () forall a. IO a -> a unsafePerformIO (String -> IO () forall (m :: * -> *). MonadIO m => String -> m () putStrLn (Text -> String forall a. ToString a => a -> String toString Text msg)) () -> m () forall (m :: * -> *) a. Monad m => a -> m a return () dbgs :: Monad m => Show a => a -> m () dbgs :: a -> m () dbgs = Text -> m () forall (m :: * -> *). Monad m => Text -> m () dbg (Text -> m ()) -> (a -> Text) -> a -> m () forall b c a. (b -> c) -> (a -> b) -> a -> c . a -> Text forall b a. (Show a, IsString b) => a -> b show dbgm :: Monad m => Show a => m a -> m a dbgm :: m a -> m a dbgm m a ma = do a a <- m a ma a -> m () forall (m :: * -> *) a. (Monad m, Show a) => a -> m () dbgs a a return a a unit :: Applicative f => f () unit :: f () unit = () -> f () forall (f :: * -> *) a. Applicative f => a -> f a pure () tuple :: Applicative f => f a -> f b -> f (a, b) tuple :: f a -> f b -> f (a, b) tuple f a fa f b fb = (,) (a -> b -> (a, b)) -> f a -> f (b -> (a, b)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> f a fa f (b -> (a, b)) -> f b -> f (a, b) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> f b fb unsafeLogSAnd :: Show a => a -> b -> b unsafeLogSAnd :: a -> b -> b unsafeLogSAnd a a b b = IO b -> b forall a. IO a -> a unsafePerformIO (IO b -> b) -> IO b -> b forall a b. (a -> b) -> a -> b $ a -> IO () forall a (m :: * -> *). (MonadIO m, Show a) => a -> m () print a a IO () -> IO b -> IO b forall (m :: * -> *) a b. Monad m => m a -> m b -> m b >> b -> IO b forall (m :: * -> *) a. Monad m => a -> m a return b b unsafeLogAnd :: Text -> b -> b unsafeLogAnd :: Text -> b -> b unsafeLogAnd Text a b b = IO b -> b forall a. IO a -> a unsafePerformIO (IO b -> b) -> IO b -> b forall a b. (a -> b) -> a -> b $ String -> IO () forall (m :: * -> *). MonadIO m => String -> m () putStrLn (Text -> String forall a. ToString a => a -> String toString Text a) IO () -> IO b -> IO b forall (m :: * -> *) a b. Monad m => m a -> m b -> m b >> b -> IO b forall (m :: * -> *) a. Monad m => a -> m a return b b unsafeLogS :: Show a => a -> a unsafeLogS :: a -> a unsafeLogS a a = IO a -> a forall a. IO a -> a unsafePerformIO (IO a -> a) -> IO a -> a forall a b. (a -> b) -> a -> b $ a -> IO () forall a (m :: * -> *). (MonadIO m, Show a) => a -> m () print a a IO () -> IO a -> IO a forall (m :: * -> *) a b. Monad m => m a -> m b -> m b >> a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return a a