1{-# LANGUAGE Unsafe #-} 2{-# LANGUAGE NoImplicitPrelude #-} 3 4module Protolude.Unsafe ( 5 unsafeHead, 6 unsafeTail, 7 unsafeInit, 8 unsafeLast, 9 unsafeFromJust, 10 unsafeIndex, 11 unsafeThrow, 12 unsafeRead, 13) where 14 15import Protolude.Base (Int) 16import Data.Char (Char) 17import Text.Read (Read, read) 18import qualified Data.List as List 19import qualified Data.Maybe as Maybe 20import qualified Control.Exception as Exc 21 22unsafeHead :: [a] -> a 23unsafeHead = List.head 24 25unsafeTail :: [a] -> [a] 26unsafeTail = List.tail 27 28unsafeInit :: [a] -> [a] 29unsafeInit = List.init 30 31unsafeLast :: [a] -> a 32unsafeLast = List.last 33 34unsafeFromJust :: Maybe.Maybe a -> a 35unsafeFromJust = Maybe.fromJust 36 37unsafeIndex :: [a] -> Int -> a 38unsafeIndex = (List.!!) 39 40unsafeThrow :: Exc.Exception e => e -> a 41unsafeThrow = Exc.throw 42 43unsafeRead :: Read a => [Char] -> a 44unsafeRead = Text.Read.read 45