module Conllu.Utils where
import Control.Exception.Base
import Data.Char
import Data.Maybe
upcaseStr :: String -> String
upcaseStr = map toUpper
downcaseStr :: String -> String
downcaseStr = map toLower
assNothing :: Maybe a -> Bool -> Bool
assNothing m = assert (isNothing m)
assSomething :: Maybe a -> Bool -> Bool
assSomething m = assert (isJust m)
assNull :: [a] -> Bool -> Bool
assNull l = assert (null l)
if' :: Bool -> a -> a -> a
if' True x _b = x
if' False _b y = y
consIf :: (a -> Bool) -> a -> [a] -> [a]
consIf p a as =
if p a
then a : as
else as
safehead :: [a] -> Maybe a
safehead [] = Nothing
safehead (x:_) = Just x
safeRead :: Read a => String -> Maybe a
safeRead = fmap fst . listToMaybe . reads