{-# OPTIONS_GHC -fno-warn-tabs #-}
module Utility.PartialPrelude where
import qualified Data.Maybe
read :: Read a => String -> a
read :: String -> a
read = String -> a
forall a. Read a => String -> a
Prelude.read
head :: [a] -> a
head :: [a] -> a
head = [a] -> a
forall a. [a] -> a
Prelude.head
tail :: [a] -> [a]
tail :: [a] -> [a]
tail = [a] -> [a]
forall a. [a] -> [a]
Prelude.tail
init :: [a] -> [a]
init :: [a] -> [a]
init = [a] -> [a]
forall a. [a] -> [a]
Prelude.init
last :: [a] -> a
last :: [a] -> a
last = [a] -> a
forall a. [a] -> a
Prelude.last
readish :: Read a => String -> Maybe a
readish :: String -> Maybe a
readish String
s = case ReadS a
forall a. Read a => ReadS a
reads String
s of
((a
x,String
_):[(a, String)]
_) -> a -> Maybe a
forall a. a -> Maybe a
Just a
x
[(a, String)]
_ -> Maybe a
forall a. Maybe a
Nothing
headMaybe :: [a] -> Maybe a
headMaybe :: [a] -> Maybe a
headMaybe = [a] -> Maybe a
forall a. [a] -> Maybe a
Data.Maybe.listToMaybe
lastMaybe :: [a] -> Maybe a
lastMaybe :: [a] -> Maybe a
lastMaybe [] = Maybe a
forall a. Maybe a
Nothing
lastMaybe [a]
v = a -> Maybe a
forall a. a -> Maybe a
Just (a -> Maybe a) -> a -> Maybe a
forall a b. (a -> b) -> a -> b
$ [a] -> a
forall a. [a] -> a
Prelude.last [a]
v
beginning :: [a] -> [a]
beginning :: [a] -> [a]
beginning [] = []
beginning [a]
l = [a] -> [a]
forall a. [a] -> [a]
Prelude.init [a]
l
end :: [a] -> [a]
end :: [a] -> [a]
end [] = []
end [a]
l = [[a] -> a
forall a. [a] -> a
Prelude.last [a]
l]