module Data.Sequence.Extended ( module Data.Sequence , cons , safeIndex ) where import Data.Sequence cons :: a -> Seq a -> Seq a cons :: forall a. a -> Seq a -> Seq a cons a x Seq a xs = forall a. a -> Seq a singleton a x forall a. Semigroup a => a -> a -> a <> Seq a xs safeIndex :: Seq a -> Int -> Maybe a safeIndex :: forall a. Seq a -> Int -> Maybe a safeIndex Seq a s Int n | Int n forall a. Ord a => a -> a -> Bool < Int 0 = forall a. Maybe a Nothing | Int n forall a. Ord a => a -> a -> Bool >= forall a. Seq a -> Int Data.Sequence.length Seq a s = forall a. Maybe a Nothing | Bool otherwise = forall a. a -> Maybe a Just forall a b. (a -> b) -> a -> b $ forall a. Seq a -> Int -> a index Seq a s Int n