interlude-l-0.1.0.1: src/Interlude.hs
{-# LANGUAGE UndecidableInstances, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts #-}
module Interlude ( module X, unsafeTail, unsafeHead, unsafeLast, unsafeInit
, PShow(..), perror ) where
import qualified Prelude
import Protolude as X hiding ( (&), catch, throw, try, (<.>), wait, error, filter, ordNub
, catMaybes, mapMaybe )
import Prelude as X (error)
import Control.Monad.Catch as X (MonadThrow, MonadCatch, catch, throwM, try)
import Control.Monad.State as X (modify')
import Control.Lens.Operators as X
import Control.Lens.TH as X
import Control.Lens as X (view)
import Data.Aeson.TH as X
import Data.Aeson as X (ToJSON, FromJSON)
import Data.Typeable as X (Typeable)
import Data.Coerce as X
import Data.Char as X
import Data.Witherable as X
import Data.String
unsafeTail :: [a] -> [a]
unsafeTail = Prelude.tail
unsafeHead :: [a] -> a
unsafeHead = Prelude.head
unsafeLast :: [a] -> a
unsafeLast = Prelude.last
unsafeInit :: [a] -> [a]
unsafeInit = Prelude.init
class Prelude.Show a => PShow a stringLike where
pshow :: a -> stringLike
instance (Prelude.Show a, IsString stringLike) => PShow a stringLike where
pshow = fromString . show
perror :: StringConv stringLike String => stringLike -> a
perror = error . toS