universum-0.4: src/Unsafe.hs
{-# LANGUAGE Unsafe #-}
-- | Unsafe functions to work with lists and 'Maybe'.
-- Sometimes unavoidable but better don't use them. This module
-- is not even included in default prelude exports.
module Unsafe
( unsafeHead
, unsafeTail
, unsafeInit
, unsafeLast
, unsafeFromJust
, unsafeIndex
) where
import Base (Int)
import qualified Data.List as List
import qualified Data.Maybe as Maybe
-- | Cautionary alias for 'List.head'.
unsafeHead :: [a] -> a
unsafeHead = List.head
-- | Cautionary alias for 'List.tail'.
unsafeTail :: [a] -> [a]
unsafeTail = List.tail
-- | Cautionary alias for 'List.init'.
unsafeInit :: [a] -> [a]
unsafeInit = List.init
-- | Cautionary alias for 'List.last'.
unsafeLast :: [a] -> a
unsafeLast = List.last
-- | Cautionary alias for 'List.!!'.
unsafeIndex :: [a] -> Int -> a
unsafeIndex = (List.!!)
-- | Cautionary alias for 'Maybe.fromJust'.
unsafeFromJust :: Maybe.Maybe a -> a
unsafeFromJust = Maybe.fromJust