packages feed

rio 0.0.3.0 → 0.1.0.0

raw patch · 51 files changed

+3363/−187 lines, 51 filesdep ~typed-processdep ~unliftioPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: typed-process, unliftio

API changes (from Hackage documentation)

- RIO.Prelude.Display: DisplayBuilder :: Builder -> DisplayBuilder
- RIO.Prelude.Display: [getUtf8Builder] :: DisplayBuilder -> Builder
- RIO.Prelude.Display: class Display a
- RIO.Prelude.Display: display :: Display a => a -> DisplayBuilder
- RIO.Prelude.Display: displayBuilderToText :: DisplayBuilder -> Text
- RIO.Prelude.Display: displayBytesUtf8 :: ByteString -> DisplayBuilder
- RIO.Prelude.Display: displayShow :: Show a => a -> DisplayBuilder
- RIO.Prelude.Display: instance Data.Semigroup.Semigroup RIO.Prelude.Display.DisplayBuilder
- RIO.Prelude.Display: instance Data.String.IsString RIO.Prelude.Display.DisplayBuilder
- RIO.Prelude.Display: instance GHC.Base.Monoid RIO.Prelude.Display.DisplayBuilder
- RIO.Prelude.Display: instance RIO.Prelude.Display.Display Data.Text.Internal.Lazy.Text
- RIO.Prelude.Display: instance RIO.Prelude.Display.Display Data.Text.Internal.Text
- RIO.Prelude.Display: instance RIO.Prelude.Display.Display GHC.Types.Int
- RIO.Prelude.Display: newtype DisplayBuilder
- RIO.Prelude.Display: writeFileDisplayBuilder :: MonadIO m => FilePath -> DisplayBuilder -> m ()
- RIO.Prelude.Extra: forMaybeA :: Applicative f => [a] -> (a -> f (Maybe b)) -> f [b]
- RIO.Prelude.Extra: forMaybeM :: Monad m => [a] -> (a -> m (Maybe b)) -> m [b]
- RIO.Prelude.Extra: fromFirst :: a -> First a -> a
- RIO.Prelude.Extra: mapLeft :: (a1 -> a2) -> Either a1 b -> Either a2 b
- RIO.Prelude.Extra: mapMaybeA :: Applicative f => (a -> f (Maybe b)) -> [a] -> f [b]
- RIO.Prelude.Extra: mapMaybeM :: Monad m => (a -> m (Maybe b)) -> [a] -> m [b]
- RIO.Prelude.Extra: nubOrd :: Ord a => [a] -> [a]
- RIO.Prelude.IO: ReadFileUtf8Exception :: !FilePath -> !UnicodeException -> ReadFileUtf8Exception
- RIO.Prelude.IO: data ReadFileUtf8Exception
- RIO.Prelude.IO: hPutBuilder :: MonadIO m => Handle -> Builder -> m ()
- RIO.Prelude.IO: instance GHC.Exception.Exception RIO.Prelude.IO.ReadFileUtf8Exception
- RIO.Prelude.IO: instance GHC.Show.Show RIO.Prelude.IO.ReadFileUtf8Exception
- RIO.Prelude.IO: readFileBinary :: MonadIO m => FilePath -> m ByteString
- RIO.Prelude.IO: readFileUtf8 :: MonadIO m => FilePath -> m Text
- RIO.Prelude.IO: withLazyFile :: MonadUnliftIO m => FilePath -> (ByteString -> m a) -> m a
- RIO.Prelude.IO: writeFileBinary :: MonadIO m => FilePath -> ByteString -> m ()
- RIO.Prelude.IO: writeFileUtf8 :: MonadIO m => FilePath -> Text -> m ()
- RIO.Prelude.Lens: (^.) :: () => s -> Getting a s a -> a
- RIO.Prelude.Lens: infixl 8 ^.
- RIO.Prelude.Lens: lens :: () => (s -> a) -> (s -> b -> t) -> Lens s t a b
- RIO.Prelude.Lens: over :: () => ASetter s t a b -> (a -> b) -> s -> t
- RIO.Prelude.Lens: set :: () => ASetter s t a b -> b -> s -> t
- RIO.Prelude.Lens: sets :: () => ((a -> b) -> s -> t) -> ASetter s t a b
- RIO.Prelude.Lens: to :: () => (s -> a) -> SimpleGetter s a
- RIO.Prelude.Lens: type Lens s t a b = forall (f :: * -> *). Functor f => (a -> f b) -> s -> f t
- RIO.Prelude.Lens: type ASetter s t a b = (a -> Identity b) -> s -> Identity t
- RIO.Prelude.Lens: type ASetter' s a = ASetter s s a a
- RIO.Prelude.Lens: type SimpleGetter s a = forall r. () => Getting r s a
- RIO.Prelude.Lens: type Lens' s a = Lens s s a a
- RIO.Prelude.Lens: view :: MonadReader s m => Getting a s a -> m a
- RIO.Prelude.Logger: LevelDebug :: LogLevel
- RIO.Prelude.Logger: LevelError :: LogLevel
- RIO.Prelude.Logger: LevelInfo :: LogLevel
- RIO.Prelude.Logger: LevelOther :: !Text -> LogLevel
- RIO.Prelude.Logger: LevelWarn :: LogLevel
- RIO.Prelude.Logger: class HasLogFunc env
- RIO.Prelude.Logger: data CallStack :: *
- RIO.Prelude.Logger: data LogFunc
- RIO.Prelude.Logger: data LogLevel
- RIO.Prelude.Logger: data LogOptions
- RIO.Prelude.Logger: displayCallStack :: CallStack -> DisplayBuilder
- RIO.Prelude.Logger: instance Data.Semigroup.Semigroup RIO.Prelude.Logger.LogFunc
- RIO.Prelude.Logger: instance GHC.Base.Monoid RIO.Prelude.Logger.LogFunc
- RIO.Prelude.Logger: instance GHC.Classes.Eq RIO.Prelude.Logger.LogLevel
- RIO.Prelude.Logger: instance GHC.Classes.Ord RIO.Prelude.Logger.LogLevel
- RIO.Prelude.Logger: instance GHC.Read.Read RIO.Prelude.Logger.LogLevel
- RIO.Prelude.Logger: instance GHC.Show.Show RIO.Prelude.Logger.LogLevel
- RIO.Prelude.Logger: instance RIO.Prelude.Logger.HasLogFunc RIO.Prelude.Logger.LogFunc
- RIO.Prelude.Logger: logDebug :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => DisplayBuilder -> m ()
- RIO.Prelude.Logger: logDebugS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> DisplayBuilder -> m ()
- RIO.Prelude.Logger: logError :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => DisplayBuilder -> m ()
- RIO.Prelude.Logger: logErrorS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> DisplayBuilder -> m ()
- RIO.Prelude.Logger: logFuncL :: HasLogFunc env => Lens' env LogFunc
- RIO.Prelude.Logger: logGeneric :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> LogLevel -> DisplayBuilder -> m ()
- RIO.Prelude.Logger: logInfo :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => DisplayBuilder -> m ()
- RIO.Prelude.Logger: logInfoS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> DisplayBuilder -> m ()
- RIO.Prelude.Logger: logOptionsHandle :: MonadIO m => Handle -> Bool -> m LogOptions
- RIO.Prelude.Logger: logOptionsMemory :: MonadIO m => m (IORef Builder, LogOptions)
- RIO.Prelude.Logger: logOther :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Text -> DisplayBuilder -> m ()
- RIO.Prelude.Logger: logOtherS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Text -> LogSource -> DisplayBuilder -> m ()
- RIO.Prelude.Logger: logSticky :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => DisplayBuilder -> m ()
- RIO.Prelude.Logger: logStickyDone :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => DisplayBuilder -> m ()
- RIO.Prelude.Logger: logWarn :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => DisplayBuilder -> m ()
- RIO.Prelude.Logger: logWarnS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> DisplayBuilder -> m ()
- RIO.Prelude.Logger: mkLogFunc :: (CallStack -> LogSource -> LogLevel -> DisplayBuilder -> IO ()) -> LogFunc
- RIO.Prelude.Logger: setLogMinLevel :: LogLevel -> LogOptions -> LogOptions
- RIO.Prelude.Logger: setLogTerminal :: Bool -> LogOptions -> LogOptions
- RIO.Prelude.Logger: setLogUseColor :: Bool -> LogOptions -> LogOptions
- RIO.Prelude.Logger: setLogUseTime :: Bool -> LogOptions -> LogOptions
- RIO.Prelude.Logger: setLogVerboseFormat :: Bool -> LogOptions -> LogOptions
- RIO.Prelude.Logger: type LogSource = Text
- RIO.Prelude.Logger: withLogFunc :: MonadUnliftIO m => LogOptions -> (LogFunc -> m a) -> m a
- RIO.Prelude.RIO: RIO :: ReaderT env IO a -> RIO env a
- RIO.Prelude.RIO: [unRIO] :: RIO env a -> ReaderT env IO a
- RIO.Prelude.RIO: instance Control.Monad.Catch.MonadThrow (RIO.Prelude.RIO.RIO env)
- RIO.Prelude.RIO: instance Control.Monad.IO.Class.MonadIO (RIO.Prelude.RIO.RIO env)
- RIO.Prelude.RIO: instance Control.Monad.IO.Unlift.MonadUnliftIO (RIO.Prelude.RIO.RIO env)
- RIO.Prelude.RIO: instance Control.Monad.Reader.Class.MonadReader env (RIO.Prelude.RIO.RIO env)
- RIO.Prelude.RIO: instance GHC.Base.Applicative (RIO.Prelude.RIO.RIO env)
- RIO.Prelude.RIO: instance GHC.Base.Functor (RIO.Prelude.RIO.RIO env)
- RIO.Prelude.RIO: instance GHC.Base.Monad (RIO.Prelude.RIO.RIO env)
- RIO.Prelude.RIO: liftRIO :: (MonadIO m, MonadReader env m) => RIO env a -> m a
- RIO.Prelude.RIO: newtype RIO env a
- RIO.Prelude.RIO: runRIO :: MonadIO m => env -> RIO env a -> m a
- RIO.Prelude.Reexports: ($!!) :: NFData a => (a -> b) -> a -> b
- RIO.Prelude.Reexports: ($!) :: () => (a -> b) -> a -> b
- RIO.Prelude.Reexports: ($) :: () => (a -> b) -> a -> b
- RIO.Prelude.Reexports: ($>) :: Functor f => f a -> b -> f b
- RIO.Prelude.Reexports: (&&&) :: Arrow a => forall b c c'. () => a b c -> a b c' -> a b (c, c')
- RIO.Prelude.Reexports: (&&) :: Bool -> Bool -> Bool
- RIO.Prelude.Reexports: (&) :: () => a -> (a -> b) -> b
- RIO.Prelude.Reexports: (*) :: Num a => a -> a -> a
- RIO.Prelude.Reexports: (**) :: Floating a => a -> a -> a
- RIO.Prelude.Reexports: (***) :: Arrow a => forall b c b' c'. () => a b c -> a b' c' -> a (b, b') (c, c')
- RIO.Prelude.Reexports: (*>) :: Applicative f => f a -> f b -> f b
- RIO.Prelude.Reexports: (+) :: Num a => a -> a -> a
- RIO.Prelude.Reexports: (++) :: () => [a] -> [a] -> [a]
- RIO.Prelude.Reexports: (-) :: Num a => a -> a -> a
- RIO.Prelude.Reexports: (.) :: () => (b -> c) -> (a -> b) -> a -> c
- RIO.Prelude.Reexports: (/) :: Fractional a => a -> a -> a
- RIO.Prelude.Reexports: (/=) :: Eq a => a -> a -> Bool
- RIO.Prelude.Reexports: (<$!>) :: Monad m => (a -> b) -> m a -> m b
- RIO.Prelude.Reexports: (<$) :: Functor f => a -> f b -> f a
- RIO.Prelude.Reexports: (<$>) :: Functor f => (a -> b) -> f a -> f b
- RIO.Prelude.Reexports: (<) :: Ord a => a -> a -> Bool
- RIO.Prelude.Reexports: (<*) :: Applicative f => f a -> f b -> f a
- RIO.Prelude.Reexports: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
- RIO.Prelude.Reexports: (<=) :: Ord a => a -> a -> Bool
- RIO.Prelude.Reexports: (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
- RIO.Prelude.Reexports: (<>) :: Monoid m => m -> m -> m
- RIO.Prelude.Reexports: (<|>) :: Alternative f => forall a. () => f a -> f a -> f a
- RIO.Prelude.Reexports: (=<<) :: Monad m => (a -> m b) -> m a -> m b
- RIO.Prelude.Reexports: (==) :: Eq a => a -> a -> Bool
- RIO.Prelude.Reexports: (>) :: Ord a => a -> a -> Bool
- RIO.Prelude.Reexports: (>=) :: Ord a => a -> a -> Bool
- RIO.Prelude.Reexports: (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
- RIO.Prelude.Reexports: (>>) :: Monad m => m a -> m b -> m b
- RIO.Prelude.Reexports: (>>=) :: Monad m => m a -> (a -> m b) -> m b
- RIO.Prelude.Reexports: (^) :: (Num a, Integral b) => a -> b -> a
- RIO.Prelude.Reexports: (^^) :: (Fractional a, Integral b) => a -> b -> a
- RIO.Prelude.Reexports: (||) :: Bool -> Bool -> Bool
- RIO.Prelude.Reexports: All :: Bool -> All
- RIO.Prelude.Reexports: Any :: Bool -> Any
- RIO.Prelude.Reexports: DecodeError :: String -> Maybe Word8 -> UnicodeException
- RIO.Prelude.Reexports: EQ :: Ordering
- RIO.Prelude.Reexports: EncodeError :: String -> Maybe Char -> UnicodeException
- RIO.Prelude.Reexports: Endo :: (a -> a) -> Endo a
- RIO.Prelude.Reexports: ExitFailure :: Int -> ExitCode
- RIO.Prelude.Reexports: ExitSuccess :: ExitCode
- RIO.Prelude.Reexports: False :: Bool
- RIO.Prelude.Reexports: First :: Maybe a -> First a
- RIO.Prelude.Reexports: GT :: Ordering
- RIO.Prelude.Reexports: Just :: a -> Maybe a
- RIO.Prelude.Reexports: LT :: Ordering
- RIO.Prelude.Reexports: Last :: Maybe a -> Last a
- RIO.Prelude.Reexports: Left :: a -> Either a b
- RIO.Prelude.Reexports: Nothing :: Maybe a
- RIO.Prelude.Reexports: Product :: a -> Product a
- RIO.Prelude.Reexports: ReaderT :: (r -> m a) -> ReaderT k r
- RIO.Prelude.Reexports: Right :: b -> Either a b
- RIO.Prelude.Reexports: Sum :: a -> Sum a
- RIO.Prelude.Reexports: True :: Bool
- RIO.Prelude.Reexports: [appEndo] :: Endo a -> a -> a
- RIO.Prelude.Reexports: [getAll] :: All -> Bool
- RIO.Prelude.Reexports: [getAny] :: Any -> Bool
- RIO.Prelude.Reexports: [getFirst] :: First a -> Maybe a
- RIO.Prelude.Reexports: [getLast] :: Last a -> Maybe a
- RIO.Prelude.Reexports: [getProduct] :: Product a -> a
- RIO.Prelude.Reexports: [getSum] :: Sum a -> a
- RIO.Prelude.Reexports: [runReaderT] :: ReaderT k r -> r -> m a
- RIO.Prelude.Reexports: abs :: Num a => a -> a
- RIO.Prelude.Reexports: absurd :: () => Void -> a
- RIO.Prelude.Reexports: acos :: Floating a => a -> a
- RIO.Prelude.Reexports: acosh :: Floating a => a -> a
- RIO.Prelude.Reexports: all :: Foldable t => (a -> Bool) -> t a -> Bool
- RIO.Prelude.Reexports: and :: Foldable t => t Bool -> Bool
- RIO.Prelude.Reexports: any :: Foldable t => (a -> Bool) -> t a -> Bool
- RIO.Prelude.Reexports: asTypeOf :: () => a -> a -> a
- RIO.Prelude.Reexports: asin :: Floating a => a -> a
- RIO.Prelude.Reexports: asinh :: Floating a => a -> a
- RIO.Prelude.Reexports: ask :: MonadReader r m => m r
- RIO.Prelude.Reexports: asks :: MonadReader r m => (r -> a) -> m a
- RIO.Prelude.Reexports: asum :: (Foldable t, Alternative f) => t f a -> f a
- RIO.Prelude.Reexports: atan :: Floating a => a -> a
- RIO.Prelude.Reexports: atan2 :: RealFloat a => a -> a -> a
- RIO.Prelude.Reexports: atanh :: Floating a => a -> a
- RIO.Prelude.Reexports: break :: () => (a -> Bool) -> [a] -> ([a], [a])
- RIO.Prelude.Reexports: byteSwap16 :: Word16 -> Word16
- RIO.Prelude.Reexports: byteSwap32 :: Word32 -> Word32
- RIO.Prelude.Reexports: byteSwap64 :: Word64 -> Word64
- RIO.Prelude.Reexports: catMaybes :: () => [Maybe a] -> [a]
- RIO.Prelude.Reexports: ceiling :: (RealFrac a, Integral b) => a -> b
- RIO.Prelude.Reexports: class Applicative f => Alternative (f :: * -> *)
- RIO.Prelude.Reexports: class Functor f => Applicative (f :: * -> *)
- RIO.Prelude.Reexports: class Bounded a
- RIO.Prelude.Reexports: class Typeable * a => Data a
- RIO.Prelude.Reexports: class Enum a
- RIO.Prelude.Reexports: class Eq a
- RIO.Prelude.Reexports: class Fractional a => Floating a
- RIO.Prelude.Reexports: class Foldable (t :: * -> *)
- RIO.Prelude.Reexports: class Num a => Fractional a
- RIO.Prelude.Reexports: class Functor (f :: * -> *)
- RIO.Prelude.Reexports: class Generic a
- RIO.Prelude.Reexports: class Hashable a
- RIO.Prelude.Reexports: class (Real a, Enum a) => Integral a
- RIO.Prelude.Reexports: class IsString a
- RIO.Prelude.Reexports: class Applicative m => Monad (m :: * -> *)
- RIO.Prelude.Reexports: class (Alternative m, Monad m) => MonadPlus (m :: * -> *)
- RIO.Prelude.Reexports: class Monad m => MonadReader r (m :: * -> *) | m -> r
- RIO.Prelude.Reexports: class Monad m => MonadThrow (m :: * -> *)
- RIO.Prelude.Reexports: class MonadTrans (t :: (* -> *) -> * -> *)
- RIO.Prelude.Reexports: class Monoid a
- RIO.Prelude.Reexports: class NFData a
- RIO.Prelude.Reexports: class Num a
- RIO.Prelude.Reexports: class Eq a => Ord a
- RIO.Prelude.Reexports: class Monad m => PrimMonad (m :: * -> *) where {
- RIO.Prelude.Reexports: class Read a
- RIO.Prelude.Reexports: class (Num a, Ord a) => Real a
- RIO.Prelude.Reexports: class (RealFrac a, Floating a) => RealFloat a
- RIO.Prelude.Reexports: class (Real a, Fractional a) => RealFrac a
- RIO.Prelude.Reexports: class Semigroup a
- RIO.Prelude.Reexports: class Show a
- RIO.Prelude.Reexports: class Storable a
- RIO.Prelude.Reexports: class (Functor t, Foldable t) => Traversable (t :: * -> *)
- RIO.Prelude.Reexports: class (Vector Vector a, MVector MVector a) => Unbox a
- RIO.Prelude.Reexports: compare :: Ord a => a -> a -> Ordering
- RIO.Prelude.Reexports: comparing :: Ord a => (b -> a) -> b -> b -> Ordering
- RIO.Prelude.Reexports: concat :: Foldable t => t [a] -> [a]
- RIO.Prelude.Reexports: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
- RIO.Prelude.Reexports: const :: () => a -> b -> a
- RIO.Prelude.Reexports: cos :: Floating a => a -> a
- RIO.Prelude.Reexports: cosh :: Floating a => a -> a
- RIO.Prelude.Reexports: curry :: () => ((a, b) -> c) -> a -> b -> c
- RIO.Prelude.Reexports: data Bool :: *
- RIO.Prelude.Reexports: data Builder :: *
- RIO.Prelude.Reexports: data ByteString :: *
- RIO.Prelude.Reexports: data Char :: *
- RIO.Prelude.Reexports: data Double :: *
- RIO.Prelude.Reexports: data Either a b :: * -> * -> *
- RIO.Prelude.Reexports: data ExitCode :: *
- RIO.Prelude.Reexports: data Float :: *
- RIO.Prelude.Reexports: data HashMap k v :: * -> * -> *
- RIO.Prelude.Reexports: data HashSet a :: * -> *
- RIO.Prelude.Reexports: data IO a :: * -> *
- RIO.Prelude.Reexports: data Int :: *
- RIO.Prelude.Reexports: data Int16 :: *
- RIO.Prelude.Reexports: data Int32 :: *
- RIO.Prelude.Reexports: data Int64 :: *
- RIO.Prelude.Reexports: data Int8 :: *
- RIO.Prelude.Reexports: data IntMap a :: * -> *
- RIO.Prelude.Reexports: data IntSet :: *
- RIO.Prelude.Reexports: data Integer :: *
- RIO.Prelude.Reexports: data Map k a :: * -> * -> *
- RIO.Prelude.Reexports: data Maybe a :: * -> *
- RIO.Prelude.Reexports: data Ordering :: *
- RIO.Prelude.Reexports: data Set a :: * -> *
- RIO.Prelude.Reexports: data ShortByteString :: *
- RIO.Prelude.Reexports: data Text :: *
- RIO.Prelude.Reexports: data UnicodeException :: *
- RIO.Prelude.Reexports: data Vector a :: * -> *
- RIO.Prelude.Reexports: data Void :: *
- RIO.Prelude.Reexports: data Word :: *
- RIO.Prelude.Reexports: data Word16 :: *
- RIO.Prelude.Reexports: data Word32 :: *
- RIO.Prelude.Reexports: data Word64 :: *
- RIO.Prelude.Reexports: data Word8 :: *
- RIO.Prelude.Reexports: dataCast1 :: (Data a, Typeable (* -> *) t) => (forall d. Data d => c t d) -> Maybe c a
- RIO.Prelude.Reexports: dataCast2 :: (Data a, Typeable (* -> * -> *) t) => (forall d e. (Data d, Data e) => c t d e) -> Maybe c a
- RIO.Prelude.Reexports: dataTypeOf :: Data a => a -> DataType
- RIO.Prelude.Reexports: decodeFloat :: RealFloat a => a -> (Integer, Int)
- RIO.Prelude.Reexports: decodeUtf8' :: ByteString -> Either UnicodeException Text
- RIO.Prelude.Reexports: decodeUtf8With :: OnDecodeError -> ByteString -> Text
- RIO.Prelude.Reexports: div :: Integral a => a -> a -> a
- RIO.Prelude.Reexports: divMod :: Integral a => a -> a -> (a, a)
- RIO.Prelude.Reexports: drop :: () => Int -> [a] -> [a]
- RIO.Prelude.Reexports: dropWhile :: () => (a -> Bool) -> [a] -> [a]
- RIO.Prelude.Reexports: either :: () => (a -> c) -> (b -> c) -> Either a b -> c
- RIO.Prelude.Reexports: elem :: Foldable t => forall a. Eq a => a -> t a -> Bool
- RIO.Prelude.Reexports: encodeFloat :: RealFloat a => Integer -> Int -> a
- RIO.Prelude.Reexports: encodeUtf8 :: Text -> ByteString
- RIO.Prelude.Reexports: encodeUtf8Builder :: Text -> Builder
- RIO.Prelude.Reexports: error :: HasCallStack => [Char] -> a
- RIO.Prelude.Reexports: even :: Integral a => a -> Bool
- RIO.Prelude.Reexports: exp :: Floating a => a -> a
- RIO.Prelude.Reexports: exponent :: RealFloat a => a -> Int
- RIO.Prelude.Reexports: fail :: Monad m => String -> m a
- RIO.Prelude.Reexports: filter :: () => (a -> Bool) -> [a] -> [a]
- RIO.Prelude.Reexports: filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
- RIO.Prelude.Reexports: first :: Arrow a => forall b c d. () => a b c -> a (b, d) (c, d)
- RIO.Prelude.Reexports: fix :: () => (a -> a) -> a
- RIO.Prelude.Reexports: flip :: () => (a -> b -> c) -> b -> a -> c
- RIO.Prelude.Reexports: floatDigits :: RealFloat a => a -> Int
- RIO.Prelude.Reexports: floatRadix :: RealFloat a => a -> Integer
- RIO.Prelude.Reexports: floatRange :: RealFloat a => a -> (Int, Int)
- RIO.Prelude.Reexports: floor :: (RealFrac a, Integral b) => a -> b
- RIO.Prelude.Reexports: fmap :: Functor f => (a -> b) -> f a -> f b
- RIO.Prelude.Reexports: fold :: Foldable t => forall m. Monoid m => t m -> m
- RIO.Prelude.Reexports: foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
- RIO.Prelude.Reexports: foldM_ :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m ()
- RIO.Prelude.Reexports: foldMap :: Foldable t => forall m a. Monoid m => (a -> m) -> t a -> m
- RIO.Prelude.Reexports: foldl' :: Foldable t => forall b a. () => (b -> a -> b) -> b -> t a -> b
- RIO.Prelude.Reexports: foldr :: Foldable t => forall a b. () => (a -> b -> b) -> b -> t a -> b
- RIO.Prelude.Reexports: for :: (Traversable t, Applicative f) => t a -> (a -> f b) -> f t b
- RIO.Prelude.Reexports: forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m t b
- RIO.Prelude.Reexports: forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
- RIO.Prelude.Reexports: for_ :: (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
- RIO.Prelude.Reexports: force :: NFData a => a -> a
- RIO.Prelude.Reexports: forever :: Applicative f => f a -> f b
- RIO.Prelude.Reexports: fromInteger :: Num a => Integer -> a
- RIO.Prelude.Reexports: fromIntegral :: (Integral a, Num b) => a -> b
- RIO.Prelude.Reexports: fromMaybe :: () => a -> Maybe a -> a
- RIO.Prelude.Reexports: fromRational :: Fractional a => Rational -> a
- RIO.Prelude.Reexports: fromShort :: ShortByteString -> ByteString
- RIO.Prelude.Reexports: fromString :: IsString a => String -> a
- RIO.Prelude.Reexports: fst :: () => (a, b) -> a
- RIO.Prelude.Reexports: gcd :: Integral a => a -> a -> a
- RIO.Prelude.Reexports: gfoldl :: Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. () => g -> c g) -> a -> c a
- RIO.Prelude.Reexports: gmapM :: (Data a, Monad m) => (forall d. Data d => d -> m d) -> a -> m a
- RIO.Prelude.Reexports: gmapMo :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
- RIO.Prelude.Reexports: gmapMp :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
- RIO.Prelude.Reexports: gmapQ :: Data a => (forall d. Data d => d -> u) -> a -> [u]
- RIO.Prelude.Reexports: gmapQi :: Data a => Int -> (forall d. Data d => d -> u) -> a -> u
- RIO.Prelude.Reexports: gmapQl :: Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
- RIO.Prelude.Reexports: gmapQr :: Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
- RIO.Prelude.Reexports: gmapT :: Data a => (forall b. Data b => b -> b) -> a -> a
- RIO.Prelude.Reexports: guard :: Alternative f => Bool -> f ()
- RIO.Prelude.Reexports: gunfold :: Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. () => r -> c r) -> Constr -> c a
- RIO.Prelude.Reexports: id :: () => a -> a
- RIO.Prelude.Reexports: infix 4 `notElem`
- RIO.Prelude.Reexports: infixl 0 `on`
- RIO.Prelude.Reexports: infixl 1 &
- RIO.Prelude.Reexports: infixl 3 <|>
- RIO.Prelude.Reexports: infixl 4 <$>
- RIO.Prelude.Reexports: infixr 0 $!
- RIO.Prelude.Reexports: infixr 1 >=>
- RIO.Prelude.Reexports: infixr 2 ||
- RIO.Prelude.Reexports: infixr 3 &&
- RIO.Prelude.Reexports: infixr 5 ++
- RIO.Prelude.Reexports: infixr 6 <>
- RIO.Prelude.Reexports: infixr 8 ^^
- RIO.Prelude.Reexports: infixr 9 .
- RIO.Prelude.Reexports: isDenormalized :: RealFloat a => a -> Bool
- RIO.Prelude.Reexports: isIEEE :: RealFloat a => a -> Bool
- RIO.Prelude.Reexports: isInfinite :: RealFloat a => a -> Bool
- RIO.Prelude.Reexports: isJust :: () => Maybe a -> Bool
- RIO.Prelude.Reexports: isLeft :: () => Either a b -> Bool
- RIO.Prelude.Reexports: isNaN :: RealFloat a => a -> Bool
- RIO.Prelude.Reexports: isNegativeZero :: RealFloat a => a -> Bool
- RIO.Prelude.Reexports: isNothing :: () => Maybe a -> Bool
- RIO.Prelude.Reexports: isRight :: () => Either a b -> Bool
- RIO.Prelude.Reexports: join :: Monad m => m m a -> m a
- RIO.Prelude.Reexports: lcm :: Integral a => a -> a -> a
- RIO.Prelude.Reexports: lefts :: () => [Either a b] -> [a]
- RIO.Prelude.Reexports: length :: Foldable t => forall a. () => t a -> Int
- RIO.Prelude.Reexports: lenientDecode :: OnDecodeError
- RIO.Prelude.Reexports: lift :: (MonadTrans t, Monad m) => m a -> t m a
- RIO.Prelude.Reexports: liftA :: Applicative f => (a -> b) -> f a -> f b
- RIO.Prelude.Reexports: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
- RIO.Prelude.Reexports: liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
- RIO.Prelude.Reexports: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
- RIO.Prelude.Reexports: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
- RIO.Prelude.Reexports: lines :: String -> [String]
- RIO.Prelude.Reexports: listToMaybe :: () => [a] -> Maybe a
- RIO.Prelude.Reexports: local :: MonadReader r m => forall a. () => (r -> r) -> m a -> m a
- RIO.Prelude.Reexports: log :: Floating a => a -> a
- RIO.Prelude.Reexports: logBase :: Floating a => a -> a -> a
- RIO.Prelude.Reexports: lookup :: Eq a => a -> [(a, b)] -> Maybe b
- RIO.Prelude.Reexports: many :: Alternative f => forall a. () => f a -> f [a]
- RIO.Prelude.Reexports: map :: () => (a -> b) -> [a] -> [b]
- RIO.Prelude.Reexports: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m t b
- RIO.Prelude.Reexports: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
- RIO.Prelude.Reexports: mapMaybe :: () => (a -> Maybe b) -> [a] -> [b]
- RIO.Prelude.Reexports: mappend :: Monoid a => a -> a -> a
- RIO.Prelude.Reexports: max :: Ord a => a -> a -> a
- RIO.Prelude.Reexports: maxBound :: Bounded a => a
- RIO.Prelude.Reexports: maybe :: () => b -> (a -> b) -> Maybe a -> b
- RIO.Prelude.Reexports: maybeToList :: () => Maybe a -> [a]
- RIO.Prelude.Reexports: mconcat :: Monoid a => [a] -> a
- RIO.Prelude.Reexports: mempty :: Monoid a => a
- RIO.Prelude.Reexports: min :: Ord a => a -> a -> a
- RIO.Prelude.Reexports: minBound :: Bounded a => a
- RIO.Prelude.Reexports: mod :: Integral a => a -> a -> a
- RIO.Prelude.Reexports: mplus :: MonadPlus m => m a -> m a -> m a
- RIO.Prelude.Reexports: msum :: (Foldable t, MonadPlus m) => t m a -> m a
- RIO.Prelude.Reexports: mzero :: MonadPlus m => m a
- RIO.Prelude.Reexports: negate :: Num a => a -> a
- RIO.Prelude.Reexports: newtype ReaderT k r (m :: k -> *) (a :: k) :: forall k. () => * -> (k -> *) -> k -> *
- RIO.Prelude.Reexports: newtype All :: *
- RIO.Prelude.Reexports: newtype Any :: *
- RIO.Prelude.Reexports: newtype Endo a :: * -> *
- RIO.Prelude.Reexports: newtype First a :: * -> *
- RIO.Prelude.Reexports: newtype Last a :: * -> *
- RIO.Prelude.Reexports: newtype Product a :: * -> *
- RIO.Prelude.Reexports: newtype Sum a :: * -> *
- RIO.Prelude.Reexports: not :: Bool -> Bool
- RIO.Prelude.Reexports: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
- RIO.Prelude.Reexports: null :: Foldable t => forall a. () => t a -> Bool
- RIO.Prelude.Reexports: odd :: Integral a => a -> Bool
- RIO.Prelude.Reexports: on :: () => (b -> b -> c) -> (a -> b) -> a -> a -> c
- RIO.Prelude.Reexports: optional :: Alternative f => f a -> f Maybe a
- RIO.Prelude.Reexports: or :: Foldable t => t Bool -> Bool
- RIO.Prelude.Reexports: otherwise :: Bool
- RIO.Prelude.Reexports: partitionEithers :: () => [Either a b] -> ([a], [b])
- RIO.Prelude.Reexports: pi :: Floating a => a
- RIO.Prelude.Reexports: primitive :: PrimMonad m => (State# PrimState m -> (# TupleRep [] RuntimeRep, LiftedRep, State# PrimState m, a #)) -> m a
- RIO.Prelude.Reexports: product :: Foldable t => forall a. Num a => t a -> a
- RIO.Prelude.Reexports: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
- RIO.Prelude.Reexports: pure :: Applicative f => a -> f a
- RIO.Prelude.Reexports: quot :: Integral a => a -> a -> a
- RIO.Prelude.Reexports: quotRem :: Integral a => a -> a -> (a, a)
- RIO.Prelude.Reexports: readMaybe :: Read a => String -> Maybe a
- RIO.Prelude.Reexports: realToFrac :: (Real a, Fractional b) => a -> b
- RIO.Prelude.Reexports: recip :: Fractional a => a -> a
- RIO.Prelude.Reexports: rem :: Integral a => a -> a -> a
- RIO.Prelude.Reexports: replicate :: () => Int -> a -> [a]
- RIO.Prelude.Reexports: replicateM_ :: Applicative m => Int -> m a -> m ()
- RIO.Prelude.Reexports: return :: Monad m => a -> m a
- RIO.Prelude.Reexports: reverse :: () => [a] -> [a]
- RIO.Prelude.Reexports: rights :: () => [Either a b] -> [b]
- RIO.Prelude.Reexports: rnf :: NFData a => a -> ()
- RIO.Prelude.Reexports: round :: (RealFrac a, Integral b) => a -> b
- RIO.Prelude.Reexports: scaleFloat :: RealFloat a => Int -> a -> a
- RIO.Prelude.Reexports: second :: Arrow a => forall b c d. () => a b c -> a (d, b) (d, c)
- RIO.Prelude.Reexports: seq :: () => a -> b -> b
- RIO.Prelude.Reexports: sequence :: (Traversable t, Monad m) => t m a -> m t a
- RIO.Prelude.Reexports: sequenceA :: (Traversable t, Applicative f) => t f a -> f t a
- RIO.Prelude.Reexports: sequenceA_ :: (Foldable t, Applicative f) => t f a -> f ()
- RIO.Prelude.Reexports: sequence_ :: (Foldable t, Monad m) => t m a -> m ()
- RIO.Prelude.Reexports: show :: Show a => a -> String
- RIO.Prelude.Reexports: significand :: RealFloat a => a -> a
- RIO.Prelude.Reexports: signum :: Num a => a -> a
- RIO.Prelude.Reexports: sin :: Floating a => a -> a
- RIO.Prelude.Reexports: sinh :: Floating a => a -> a
- RIO.Prelude.Reexports: snd :: () => (a, b) -> b
- RIO.Prelude.Reexports: some :: Alternative f => forall a. () => f a -> f [a]
- RIO.Prelude.Reexports: span :: () => (a -> Bool) -> [a] -> ([a], [a])
- RIO.Prelude.Reexports: sqrt :: Floating a => a -> a
- RIO.Prelude.Reexports: subtract :: Num a => a -> a -> a
- RIO.Prelude.Reexports: sum :: Foldable t => forall a. Num a => t a -> a
- RIO.Prelude.Reexports: take :: () => Int -> [a] -> [a]
- RIO.Prelude.Reexports: takeWhile :: () => (a -> Bool) -> [a] -> [a]
- RIO.Prelude.Reexports: tan :: Floating a => a -> a
- RIO.Prelude.Reexports: tanh :: Floating a => a -> a
- RIO.Prelude.Reexports: threadDelay :: MonadIO m => Int -> m ()
- RIO.Prelude.Reexports: throwM :: (MonadThrow m, Exception e) => e -> m a
- RIO.Prelude.Reexports: toConstr :: Data a => a -> Constr
- RIO.Prelude.Reexports: toInteger :: Integral a => a -> Integer
- RIO.Prelude.Reexports: toList :: Foldable t => forall a. () => t a -> [a]
- RIO.Prelude.Reexports: toRational :: Real a => a -> Rational
- RIO.Prelude.Reexports: toShort :: ByteString -> ShortByteString
- RIO.Prelude.Reexports: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f t b
- RIO.Prelude.Reexports: traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
- RIO.Prelude.Reexports: truncate :: (RealFrac a, Integral b) => a -> b
- RIO.Prelude.Reexports: type FilePath = String
- RIO.Prelude.Reexports: type HasCallStack = ?callStack :: CallStack
- RIO.Prelude.Reexports: type Rational = Ratio Integer
- RIO.Prelude.Reexports: type String = [Char]
- RIO.Prelude.Reexports: type family PrimState (m :: * -> *) :: *;
- RIO.Prelude.Reexports: uncurry :: () => (a -> b -> c) -> (a, b) -> c
- RIO.Prelude.Reexports: undefined :: HasCallStack => a
- RIO.Prelude.Reexports: unless :: Applicative f => Bool -> f () -> f ()
- RIO.Prelude.Reexports: unlines :: [String] -> String
- RIO.Prelude.Reexports: unwords :: [String] -> String
- RIO.Prelude.Reexports: void :: Functor f => f a -> f ()
- RIO.Prelude.Reexports: when :: Applicative f => Bool -> f () -> f ()
- RIO.Prelude.Reexports: words :: String -> [String]
- RIO.Prelude.Reexports: zip :: () => [a] -> [b] -> [(a, b)]
- RIO.Prelude.Reexports: zipWithM :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m [c]
- RIO.Prelude.Reexports: zipWithM_ :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m ()
- RIO.Prelude.Reexports: }
- RIO.Prelude.Renames: fromStrictBytes :: ByteString -> LByteString
- RIO.Prelude.Renames: sappend :: Semigroup s => s -> s -> s
- RIO.Prelude.Renames: toStrictBytes :: LByteString -> ByteString
- RIO.Prelude.Renames: type GVector = Vector
- RIO.Prelude.Renames: type LByteString = ByteString
- RIO.Prelude.Renames: type LText = Text
- RIO.Prelude.Renames: type SVector = Vector
- RIO.Prelude.Renames: type UVector = Vector
- RIO.Prelude.Text: decodeUtf8Lenient :: ByteString -> Text
- RIO.Prelude.Text: stripCR :: Text -> Text
- RIO.Prelude.Text: tshow :: Show a => a -> Text
- RIO.Prelude.URef: class (Vector Vector a, MVector MVector a) => Unbox a
- RIO.Prelude.URef: data URef s a
- RIO.Prelude.URef: modifyURef :: (PrimMonad m, Unbox a) => URef (PrimState m) a -> (a -> a) -> m ()
- RIO.Prelude.URef: newURef :: (PrimMonad m, Unbox a) => a -> m (URef (PrimState m) a)
- RIO.Prelude.URef: readURef :: (PrimMonad m, Unbox a) => URef (PrimState m) a -> m a
- RIO.Prelude.URef: type IOURef = URef (PrimState IO)
- RIO.Prelude.URef: writeURef :: (PrimMonad m, Unbox a) => URef (PrimState m) a -> a -> m ()
+ RIO: ($!!) :: NFData a => (a -> b) -> a -> b
+ RIO: ($!) :: () => (a -> b) -> a -> b
+ RIO: ($) :: () => (a -> b) -> a -> b
+ RIO: ($>) :: Functor f => f a -> b -> f b
+ RIO: (&&&) :: Arrow a => forall b c c'. () => a b c -> a b c' -> a b (c, c')
+ RIO: (&&) :: Bool -> Bool -> Bool
+ RIO: (&) :: () => a -> (a -> b) -> b
+ RIO: (*) :: Num a => a -> a -> a
+ RIO: (**) :: Floating a => a -> a -> a
+ RIO: (***) :: Arrow a => forall b c b' c'. () => a b c -> a b' c' -> a (b, b') (c, c')
+ RIO: (*>) :: Applicative f => f a -> f b -> f b
+ RIO: (+) :: Num a => a -> a -> a
+ RIO: (++) :: () => [a] -> [a] -> [a]
+ RIO: (-) :: Num a => a -> a -> a
+ RIO: (.) :: () => (b -> c) -> (a -> b) -> a -> c
+ RIO: (/) :: Fractional a => a -> a -> a
+ RIO: (/=) :: Eq a => a -> a -> Bool
+ RIO: (<$!>) :: Monad m => (a -> b) -> m a -> m b
+ RIO: (<$) :: Functor f => a -> f b -> f a
+ RIO: (<$>) :: Functor f => (a -> b) -> f a -> f b
+ RIO: (<) :: Ord a => a -> a -> Bool
+ RIO: (<*) :: Applicative f => f a -> f b -> f a
+ RIO: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
+ RIO: (<=) :: Ord a => a -> a -> Bool
+ RIO: (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
+ RIO: (<>) :: Semigroup a => a -> a -> a
+ RIO: (<|>) :: Alternative f => forall a. () => f a -> f a -> f a
+ RIO: (=<<) :: Monad m => (a -> m b) -> m a -> m b
+ RIO: (==) :: Eq a => a -> a -> Bool
+ RIO: (>) :: Ord a => a -> a -> Bool
+ RIO: (>=) :: Ord a => a -> a -> Bool
+ RIO: (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
+ RIO: (>>) :: Monad m => m a -> m b -> m b
+ RIO: (>>=) :: Monad m => m a -> (a -> m b) -> m b
+ RIO: (^) :: (Num a, Integral b) => a -> b -> a
+ RIO: (^.) :: () => s -> Getting a s a -> a
+ RIO: (^^) :: (Fractional a, Integral b) => a -> b -> a
+ RIO: (||) :: Bool -> Bool -> Bool
+ RIO: DecodeError :: String -> Maybe Word8 -> UnicodeException
+ RIO: EQ :: Ordering
+ RIO: EncodeError :: String -> Maybe Char -> UnicodeException
+ RIO: ExitFailure :: Int -> ExitCode
+ RIO: ExitSuccess :: ExitCode
+ RIO: False :: Bool
+ RIO: GT :: Ordering
+ RIO: Just :: a -> Maybe a
+ RIO: LT :: Ordering
+ RIO: Left :: a -> Either a b
+ RIO: LevelDebug :: LogLevel
+ RIO: LevelError :: LogLevel
+ RIO: LevelInfo :: LogLevel
+ RIO: LevelOther :: !Text -> LogLevel
+ RIO: LevelWarn :: LogLevel
+ RIO: Nothing :: Maybe a
+ RIO: RIO :: ReaderT env IO a -> RIO env a
+ RIO: ReaderT :: (r -> m a) -> ReaderT k r
+ RIO: Right :: b -> Either a b
+ RIO: True :: Bool
+ RIO: Utf8Builder :: Builder -> Utf8Builder
+ RIO: [getUtf8Builder] :: Utf8Builder -> Builder
+ RIO: [runReaderT] :: ReaderT k r -> r -> m a
+ RIO: [unRIO] :: RIO env a -> ReaderT env IO a
+ RIO: abs :: Num a => a -> a
+ RIO: absurd :: () => Void -> a
+ RIO: acos :: Floating a => a -> a
+ RIO: acosh :: Floating a => a -> a
+ RIO: all :: Foldable t => (a -> Bool) -> t a -> Bool
+ RIO: and :: Foldable t => t Bool -> Bool
+ RIO: any :: Foldable t => (a -> Bool) -> t a -> Bool
+ RIO: asTypeOf :: () => a -> a -> a
+ RIO: asin :: Floating a => a -> a
+ RIO: asinh :: Floating a => a -> a
+ RIO: ask :: MonadReader r m => m r
+ RIO: asks :: MonadReader r m => (r -> a) -> m a
+ RIO: asum :: (Foldable t, Alternative f) => t f a -> f a
+ RIO: atan :: Floating a => a -> a
+ RIO: atan2 :: RealFloat a => a -> a -> a
+ RIO: atanh :: Floating a => a -> a
+ RIO: bool :: () => a -> a -> Bool -> a
+ RIO: break :: () => (a -> Bool) -> [a] -> ([a], [a])
+ RIO: byteSwap16 :: Word16 -> Word16
+ RIO: byteSwap32 :: Word32 -> Word32
+ RIO: byteSwap64 :: Word64 -> Word64
+ RIO: catMaybes :: () => [Maybe a] -> [a]
+ RIO: ceiling :: (RealFrac a, Integral b) => a -> b
+ RIO: class Applicative f => Alternative (f :: * -> *)
+ RIO: class Functor f => Applicative (f :: * -> *)
+ RIO: class Bounded a
+ RIO: class Typeable * a => Data a
+ RIO: class Display a
+ RIO: class Enum a
+ RIO: class Eq a
+ RIO: class Fractional a => Floating a
+ RIO: class Foldable (t :: * -> *)
+ RIO: class Num a => Fractional a
+ RIO: class Functor (f :: * -> *)
+ RIO: class Generic a
+ RIO: class HasLogFunc env
+ RIO: class Hashable a
+ RIO: class (Real a, Enum a) => Integral a
+ RIO: class IsString a
+ RIO: class Applicative m => Monad (m :: * -> *)
+ RIO: class (Alternative m, Monad m) => MonadPlus (m :: * -> *)
+ RIO: class Monad m => MonadReader r (m :: * -> *) | m -> r
+ RIO: class Monad m => MonadThrow (m :: * -> *)
+ RIO: class MonadTrans (t :: (* -> *) -> * -> *)
+ RIO: class Monoid a
+ RIO: class NFData a
+ RIO: class Num a
+ RIO: class Eq a => Ord a
+ RIO: class Monad m => PrimMonad (m :: * -> *) where {
+ RIO: class Read a
+ RIO: class (Num a, Ord a) => Real a
+ RIO: class (RealFrac a, Floating a) => RealFloat a
+ RIO: class (Real a, Fractional a) => RealFrac a
+ RIO: class Semigroup a
+ RIO: class Show a
+ RIO: class Storable a
+ RIO: class (Functor t, Foldable t) => Traversable (t :: * -> *)
+ RIO: class (Vector Vector a, MVector MVector a) => Unbox a
+ RIO: compare :: Ord a => a -> a -> Ordering
+ RIO: comparing :: Ord a => (b -> a) -> b -> b -> Ordering
+ RIO: concat :: Foldable t => t [a] -> [a]
+ RIO: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
+ RIO: const :: () => a -> b -> a
+ RIO: cos :: Floating a => a -> a
+ RIO: cosh :: Floating a => a -> a
+ RIO: curry :: () => ((a, b) -> c) -> a -> b -> c
+ RIO: data Bool :: *
+ RIO: data Builder :: *
+ RIO: data ByteString :: *
+ RIO: data CallStack :: *
+ RIO: data Char :: *
+ RIO: data Double :: *
+ RIO: data Either a b :: * -> * -> *
+ RIO: data ExitCode :: *
+ RIO: data Float :: *
+ RIO: data HashMap k v :: * -> * -> *
+ RIO: data HashSet a :: * -> *
+ RIO: data IO a :: * -> *
+ RIO: data Int :: *
+ RIO: data Int16 :: *
+ RIO: data Int32 :: *
+ RIO: data Int64 :: *
+ RIO: data Int8 :: *
+ RIO: data IntMap a :: * -> *
+ RIO: data IntSet :: *
+ RIO: data Integer :: *
+ RIO: data LogFunc
+ RIO: data LogLevel
+ RIO: data LogOptions
+ RIO: data Map k a :: * -> * -> *
+ RIO: data Maybe a :: * -> *
+ RIO: data Ordering :: *
+ RIO: data Set a :: * -> *
+ RIO: data ShortByteString :: *
+ RIO: data Text :: *
+ RIO: data ThreadId :: *
+ RIO: data URef s a
+ RIO: data UnicodeException :: *
+ RIO: data Vector a :: * -> *
+ RIO: data Void :: *
+ RIO: data Word :: *
+ RIO: data Word16 :: *
+ RIO: data Word32 :: *
+ RIO: data Word64 :: *
+ RIO: data Word8 :: *
+ RIO: dataCast1 :: (Data a, Typeable (* -> *) t) => (forall d. Data d => c t d) -> Maybe c a
+ RIO: dataCast2 :: (Data a, Typeable (* -> * -> *) t) => (forall d e. (Data d, Data e) => c t d e) -> Maybe c a
+ RIO: dataTypeOf :: Data a => a -> DataType
+ RIO: decodeFloat :: RealFloat a => a -> (Integer, Int)
+ RIO: decodeUtf8' :: ByteString -> Either UnicodeException Text
+ RIO: decodeUtf8Lenient :: ByteString -> Text
+ RIO: decodeUtf8With :: OnDecodeError -> ByteString -> Text
+ RIO: display :: Display a => a -> Utf8Builder
+ RIO: displayBytesUtf8 :: ByteString -> Utf8Builder
+ RIO: displayCallStack :: CallStack -> Utf8Builder
+ RIO: displayShow :: Show a => a -> Utf8Builder
+ RIO: div :: Integral a => a -> a -> a
+ RIO: divMod :: Integral a => a -> a -> (a, a)
+ RIO: drop :: () => Int -> [a] -> [a]
+ RIO: dropWhile :: () => (a -> Bool) -> [a] -> [a]
+ RIO: either :: () => (a -> c) -> (b -> c) -> Either a b -> c
+ RIO: elem :: Foldable t => forall a. Eq a => a -> t a -> Bool
+ RIO: encodeFloat :: RealFloat a => Integer -> Int -> a
+ RIO: encodeUtf8 :: Text -> ByteString
+ RIO: encodeUtf8Builder :: Text -> Builder
+ RIO: error :: HasCallStack => [Char] -> a
+ RIO: even :: Integral a => a -> Bool
+ RIO: exp :: Floating a => a -> a
+ RIO: exponent :: RealFloat a => a -> Int
+ RIO: fail :: Monad m => String -> m a
+ RIO: filter :: () => (a -> Bool) -> [a] -> [a]
+ RIO: filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
+ RIO: first :: Arrow a => forall b c d. () => a b c -> a (b, d) (c, d)
+ RIO: fix :: () => (a -> a) -> a
+ RIO: flip :: () => (a -> b -> c) -> b -> a -> c
+ RIO: floatDigits :: RealFloat a => a -> Int
+ RIO: floatRadix :: RealFloat a => a -> Integer
+ RIO: floatRange :: RealFloat a => a -> (Int, Int)
+ RIO: floor :: (RealFrac a, Integral b) => a -> b
+ RIO: fmap :: Functor f => (a -> b) -> f a -> f b
+ RIO: fold :: Foldable t => forall m. Monoid m => t m -> m
+ RIO: foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
+ RIO: foldM_ :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m ()
+ RIO: foldMap :: Foldable t => forall m a. Monoid m => (a -> m) -> t a -> m
+ RIO: foldl' :: Foldable t => forall b a. () => (b -> a -> b) -> b -> t a -> b
+ RIO: foldr :: Foldable t => forall a b. () => (a -> b -> b) -> b -> t a -> b
+ RIO: for :: (Traversable t, Applicative f) => t a -> (a -> f b) -> f t b
+ RIO: forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m t b
+ RIO: forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
+ RIO: forMaybeA :: Applicative f => [a] -> (a -> f (Maybe b)) -> f [b]
+ RIO: forMaybeM :: Monad m => [a] -> (a -> m (Maybe b)) -> m [b]
+ RIO: for_ :: (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
+ RIO: force :: NFData a => a -> a
+ RIO: forever :: Applicative f => f a -> f b
+ RIO: fromFirst :: a -> First a -> a
+ RIO: fromInteger :: Num a => Integer -> a
+ RIO: fromIntegral :: (Integral a, Num b) => a -> b
+ RIO: fromMaybe :: () => a -> Maybe a -> a
+ RIO: fromRational :: Fractional a => Rational -> a
+ RIO: fromShort :: ShortByteString -> ByteString
+ RIO: fromStrictBytes :: ByteString -> LByteString
+ RIO: fromString :: IsString a => String -> a
+ RIO: fst :: () => (a, b) -> a
+ RIO: gcd :: Integral a => a -> a -> a
+ RIO: gfoldl :: Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. () => g -> c g) -> a -> c a
+ RIO: gmapM :: (Data a, Monad m) => (forall d. Data d => d -> m d) -> a -> m a
+ RIO: gmapMo :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
+ RIO: gmapMp :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
+ RIO: gmapQ :: Data a => (forall d. Data d => d -> u) -> a -> [u]
+ RIO: gmapQi :: Data a => Int -> (forall d. Data d => d -> u) -> a -> u
+ RIO: gmapQl :: Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
+ RIO: gmapQr :: Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
+ RIO: gmapT :: Data a => (forall b. Data b => b -> b) -> a -> a
+ RIO: guard :: Alternative f => Bool -> f ()
+ RIO: gunfold :: Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. () => r -> c r) -> Constr -> c a
+ RIO: hPutBuilder :: MonadIO m => Handle -> Builder -> m ()
+ RIO: id :: () => a -> a
+ RIO: infix 4 `notElem`
+ RIO: infixl 0 `on`
+ RIO: infixl 1 &
+ RIO: infixl 3 <|>
+ RIO: infixl 4 <$>
+ RIO: infixl 8 ^.
+ RIO: infixr 0 $!
+ RIO: infixr 1 >=>
+ RIO: infixr 2 ||
+ RIO: infixr 3 &&
+ RIO: infixr 5 ++
+ RIO: infixr 8 ^^
+ RIO: infixr 9 .
+ RIO: isCurrentThreadBound :: MonadIO m => m Bool
+ RIO: isDenormalized :: RealFloat a => a -> Bool
+ RIO: isIEEE :: RealFloat a => a -> Bool
+ RIO: isInfinite :: RealFloat a => a -> Bool
+ RIO: isJust :: () => Maybe a -> Bool
+ RIO: isLeft :: () => Either a b -> Bool
+ RIO: isNaN :: RealFloat a => a -> Bool
+ RIO: isNegativeZero :: RealFloat a => a -> Bool
+ RIO: isNothing :: () => Maybe a -> Bool
+ RIO: isRight :: () => Either a b -> Bool
+ RIO: join :: Monad m => m m a -> m a
+ RIO: lcm :: Integral a => a -> a -> a
+ RIO: lefts :: () => [Either a b] -> [a]
+ RIO: length :: Foldable t => forall a. () => t a -> Int
+ RIO: lenientDecode :: OnDecodeError
+ RIO: lens :: () => (s -> a) -> (s -> b -> t) -> Lens s t a b
+ RIO: lift :: (MonadTrans t, Monad m) => m a -> t m a
+ RIO: liftA :: Applicative f => (a -> b) -> f a -> f b
+ RIO: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
+ RIO: liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
+ RIO: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
+ RIO: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
+ RIO: liftRIO :: (MonadIO m, MonadReader env m) => RIO env a -> m a
+ RIO: lines :: String -> [String]
+ RIO: listToMaybe :: () => [a] -> Maybe a
+ RIO: local :: MonadReader r m => forall a. () => (r -> r) -> m a -> m a
+ RIO: log :: Floating a => a -> a
+ RIO: logBase :: Floating a => a -> a -> a
+ RIO: logDebug :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Utf8Builder -> m ()
+ RIO: logDebugS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> Utf8Builder -> m ()
+ RIO: logError :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Utf8Builder -> m ()
+ RIO: logErrorS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> Utf8Builder -> m ()
+ RIO: logFuncL :: HasLogFunc env => Lens' env LogFunc
+ RIO: logFuncUseColorL :: HasLogFunc env => SimpleGetter env Bool
+ RIO: logGeneric :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> LogLevel -> Utf8Builder -> m ()
+ RIO: logInfo :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Utf8Builder -> m ()
+ RIO: logInfoS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> Utf8Builder -> m ()
+ RIO: logOptionsHandle :: MonadIO m => Handle -> Bool -> m LogOptions
+ RIO: logOptionsMemory :: MonadIO m => m (IORef Builder, LogOptions)
+ RIO: logOther :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Text -> Utf8Builder -> m ()
+ RIO: logOtherS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Text -> LogSource -> Utf8Builder -> m ()
+ RIO: logSticky :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => Utf8Builder -> m ()
+ RIO: logStickyDone :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => Utf8Builder -> m ()
+ RIO: logWarn :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => Utf8Builder -> m ()
+ RIO: logWarnS :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack) => LogSource -> Utf8Builder -> m ()
+ RIO: lookup :: Eq a => a -> [(a, b)] -> Maybe b
+ RIO: many :: Alternative f => forall a. () => f a -> f [a]
+ RIO: map :: () => (a -> b) -> [a] -> [b]
+ RIO: mapLeft :: (a1 -> a2) -> Either a1 b -> Either a2 b
+ RIO: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m t b
+ RIO: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
+ RIO: mapMaybe :: () => (a -> Maybe b) -> [a] -> [b]
+ RIO: mapMaybeA :: Applicative f => (a -> f (Maybe b)) -> [a] -> f [b]
+ RIO: mapMaybeM :: Monad m => (a -> m (Maybe b)) -> [a] -> m [b]
+ RIO: mappend :: Monoid a => a -> a -> a
+ RIO: max :: Ord a => a -> a -> a
+ RIO: maxBound :: Bounded a => a
+ RIO: maybe :: () => b -> (a -> b) -> Maybe a -> b
+ RIO: maybeToList :: () => Maybe a -> [a]
+ RIO: mconcat :: Monoid a => [a] -> a
+ RIO: mempty :: Monoid a => a
+ RIO: min :: Ord a => a -> a -> a
+ RIO: minBound :: Bounded a => a
+ RIO: mkLogFunc :: (CallStack -> LogSource -> LogLevel -> Utf8Builder -> IO ()) -> LogFunc
+ RIO: mod :: Integral a => a -> a -> a
+ RIO: modifyURef :: (PrimMonad m, Unbox a) => URef (PrimState m) a -> (a -> a) -> m ()
+ RIO: mplus :: MonadPlus m => m a -> m a -> m a
+ RIO: msum :: (Foldable t, MonadPlus m) => t m a -> m a
+ RIO: myThreadId :: MonadIO m => m ThreadId
+ RIO: mzero :: MonadPlus m => m a
+ RIO: negate :: Num a => a -> a
+ RIO: newURef :: (PrimMonad m, Unbox a) => a -> m (URef (PrimState m) a)
+ RIO: newtype ReaderT k r (m :: k -> *) (a :: k) :: forall k. () => * -> (k -> *) -> k -> *
+ RIO: newtype RIO env a
+ RIO: newtype Utf8Builder
+ RIO: not :: Bool -> Bool
+ RIO: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
+ RIO: nubOrd :: Ord a => [a] -> [a]
+ RIO: null :: Foldable t => forall a. () => t a -> Bool
+ RIO: odd :: Integral a => a -> Bool
+ RIO: on :: () => (b -> b -> c) -> (a -> b) -> a -> a -> c
+ RIO: optional :: Alternative f => f a -> f Maybe a
+ RIO: or :: Foldable t => t Bool -> Bool
+ RIO: otherwise :: Bool
+ RIO: over :: () => ASetter s t a b -> (a -> b) -> s -> t
+ RIO: partitionEithers :: () => [Either a b] -> ([a], [b])
+ RIO: pi :: Floating a => a
+ RIO: primitive :: PrimMonad m => (State# PrimState m -> (# TupleRep [] RuntimeRep, LiftedRep, State# PrimState m, a #)) -> m a
+ RIO: product :: Foldable t => forall a. Num a => t a -> a
+ RIO: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
+ RIO: pure :: Applicative f => a -> f a
+ RIO: quot :: Integral a => a -> a -> a
+ RIO: quotRem :: Integral a => a -> a -> (a, a)
+ RIO: readFileBinary :: MonadIO m => FilePath -> m ByteString
+ RIO: readFileUtf8 :: MonadIO m => FilePath -> m Text
+ RIO: readMaybe :: Read a => String -> Maybe a
+ RIO: readURef :: (PrimMonad m, Unbox a) => URef (PrimState m) a -> m a
+ RIO: realToFrac :: (Real a, Fractional b) => a -> b
+ RIO: recip :: Fractional a => a -> a
+ RIO: rem :: Integral a => a -> a -> a
+ RIO: replicate :: () => Int -> a -> [a]
+ RIO: replicateM_ :: Applicative m => Int -> m a -> m ()
+ RIO: return :: Monad m => a -> m a
+ RIO: reverse :: () => [a] -> [a]
+ RIO: rights :: () => [Either a b] -> [b]
+ RIO: rnf :: NFData a => a -> ()
+ RIO: round :: (RealFrac a, Integral b) => a -> b
+ RIO: runRIO :: MonadIO m => env -> RIO env a -> m a
+ RIO: sappend :: Semigroup s => s -> s -> s
+ RIO: scaleFloat :: RealFloat a => Int -> a -> a
+ RIO: sconcat :: Semigroup a => NonEmpty a -> a
+ RIO: second :: Arrow a => forall b c d. () => a b c -> a (d, b) (d, c)
+ RIO: seq :: () => a -> b -> b
+ RIO: sequence :: (Traversable t, Monad m) => t m a -> m t a
+ RIO: sequenceA :: (Traversable t, Applicative f) => t f a -> f t a
+ RIO: sequenceA_ :: (Foldable t, Applicative f) => t f a -> f ()
+ RIO: sequence_ :: (Foldable t, Monad m) => t m a -> m ()
+ RIO: set :: () => ASetter s t a b -> b -> s -> t
+ RIO: setLogMinLevel :: LogLevel -> LogOptions -> LogOptions
+ RIO: setLogTerminal :: Bool -> LogOptions -> LogOptions
+ RIO: setLogUseColor :: Bool -> LogOptions -> LogOptions
+ RIO: setLogUseTime :: Bool -> LogOptions -> LogOptions
+ RIO: setLogVerboseFormat :: Bool -> LogOptions -> LogOptions
+ RIO: sets :: () => ((a -> b) -> s -> t) -> ASetter s t a b
+ RIO: show :: Show a => a -> String
+ RIO: significand :: RealFloat a => a -> a
+ RIO: signum :: Num a => a -> a
+ RIO: sin :: Floating a => a -> a
+ RIO: sinh :: Floating a => a -> a
+ RIO: snd :: () => (a, b) -> b
+ RIO: some :: Alternative f => forall a. () => f a -> f [a]
+ RIO: span :: () => (a -> Bool) -> [a] -> ([a], [a])
+ RIO: sqrt :: Floating a => a -> a
+ RIO: stimes :: (Semigroup a, Integral b) => b -> a -> a
+ RIO: subtract :: Num a => a -> a -> a
+ RIO: sum :: Foldable t => forall a. Num a => t a -> a
+ RIO: take :: () => Int -> [a] -> [a]
+ RIO: takeWhile :: () => (a -> Bool) -> [a] -> [a]
+ RIO: tan :: Floating a => a -> a
+ RIO: tanh :: Floating a => a -> a
+ RIO: threadDelay :: MonadIO m => Int -> m ()
+ RIO: threadWaitRead :: MonadIO m => Fd -> m ()
+ RIO: threadWaitWrite :: MonadIO m => Fd -> m ()
+ RIO: throwM :: (MonadThrow m, Exception e) => e -> m a
+ RIO: to :: () => (s -> a) -> SimpleGetter s a
+ RIO: toConstr :: Data a => a -> Constr
+ RIO: toInteger :: Integral a => a -> Integer
+ RIO: toList :: Foldable t => forall a. () => t a -> [a]
+ RIO: toRational :: Real a => a -> Rational
+ RIO: toShort :: ByteString -> ShortByteString
+ RIO: toStrictBytes :: LByteString -> ByteString
+ RIO: trace :: Text -> a -> a
+ RIO: traceDisplay :: Display a => a -> b -> b
+ RIO: traceDisplayEvent :: Display a => a -> b -> b
+ RIO: traceDisplayEventIO :: (Display a, MonadIO m) => a -> m ()
+ RIO: traceDisplayIO :: (Display a, MonadIO m) => a -> m ()
+ RIO: traceDisplayId :: Display a => a -> a
+ RIO: traceDisplayM :: (Display a, Applicative f) => a -> f ()
+ RIO: traceDisplayMarker :: Display a => a -> b -> b
+ RIO: traceDisplayMarkerIO :: (Display a, MonadIO m) => a -> m ()
+ RIO: traceDisplayStack :: Display a => a -> b -> b
+ RIO: traceEvent :: Text -> a -> a
+ RIO: traceEventIO :: MonadIO m => Text -> m ()
+ RIO: traceIO :: MonadIO m => Text -> m ()
+ RIO: traceId :: Text -> Text
+ RIO: traceM :: Applicative f => Text -> f ()
+ RIO: traceMarker :: Text -> a -> a
+ RIO: traceMarkerIO :: MonadIO m => Text -> m ()
+ RIO: traceShow :: Show a => a -> b -> b
+ RIO: traceShowEvent :: Show a => a -> b -> b
+ RIO: traceShowEventIO :: (Show a, MonadIO m) => a -> m ()
+ RIO: traceShowIO :: (Show a, MonadIO m) => a -> m ()
+ RIO: traceShowId :: Show a => a -> a
+ RIO: traceShowM :: (Show a, Applicative f) => a -> f ()
+ RIO: traceShowMarker :: Show a => a -> b -> b
+ RIO: traceShowMarkerIO :: (Show a, MonadIO m) => a -> m ()
+ RIO: traceShowStack :: Show a => a -> b -> b
+ RIO: traceStack :: Text -> a -> a
+ RIO: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f t b
+ RIO: traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
+ RIO: truncate :: (RealFrac a, Integral b) => a -> b
+ RIO: tshow :: Show a => a -> Text
+ RIO: type Lens s t a b = forall (f :: * -> *). Functor f => (a -> f b) -> s -> f t
+ RIO: type ASetter s t a b = (a -> Identity b) -> s -> Identity t
+ RIO: type ASetter' s a = ASetter s s a a
+ RIO: type FilePath = String
+ RIO: type GVector = Vector
+ RIO: type SimpleGetter s a = forall r. () => Getting r s a
+ RIO: type HasCallStack = ?callStack :: CallStack
+ RIO: type IOURef = URef (PrimState IO)
+ RIO: type LByteString = ByteString
+ RIO: type LText = Text
+ RIO: type Lens' s a = Lens s s a a
+ RIO: type LogSource = Text
+ RIO: type Rational = Ratio Integer
+ RIO: type SVector = Vector
+ RIO: type String = [Char]
+ RIO: type UVector = Vector
+ RIO: type family PrimState (m :: * -> *) :: *;
+ RIO: uncurry :: () => (a -> b -> c) -> (a, b) -> c
+ RIO: undefined :: HasCallStack => a
+ RIO: unless :: Applicative f => Bool -> f () -> f ()
+ RIO: unlessM :: Monad m => m Bool -> m () -> m ()
+ RIO: unlines :: [String] -> String
+ RIO: unwords :: [String] -> String
+ RIO: utf8BuilderToLazyText :: Utf8Builder -> Text
+ RIO: utf8BuilderToText :: Utf8Builder -> Text
+ RIO: view :: MonadReader s m => Getting a s a -> m a
+ RIO: void :: Functor f => f a -> f ()
+ RIO: when :: Applicative f => Bool -> f () -> f ()
+ RIO: whenM :: Monad m => m Bool -> m () -> m ()
+ RIO: withLazyFile :: MonadUnliftIO m => FilePath -> (ByteString -> m a) -> m a
+ RIO: withLogFunc :: MonadUnliftIO m => LogOptions -> (LogFunc -> m a) -> m a
+ RIO: words :: String -> [String]
+ RIO: writeFileBinary :: MonadIO m => FilePath -> ByteString -> m ()
+ RIO: writeFileUtf8 :: MonadIO m => FilePath -> Text -> m ()
+ RIO: writeFileUtf8Builder :: MonadIO m => FilePath -> Utf8Builder -> m ()
+ RIO: writeURef :: (PrimMonad m, Unbox a) => URef (PrimState m) a -> a -> m ()
+ RIO: yieldThread :: MonadIO m => m ()
+ RIO: zip :: () => [a] -> [b] -> [(a, b)]
+ RIO: zipWithM :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m [c]
+ RIO: zipWithM_ :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m ()
+ RIO: }
+ RIO.ByteString.Lazy: all :: (Word8 -> Bool) -> ByteString -> Bool
+ RIO.ByteString.Lazy: any :: (Word8 -> Bool) -> ByteString -> Bool
+ RIO.ByteString.Lazy: append :: ByteString -> ByteString -> ByteString
+ RIO.ByteString.Lazy: appendFile :: MonadIO m => FilePath -> LByteString -> m ()
+ RIO.ByteString.Lazy: break :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString)
+ RIO.ByteString.Lazy: concat :: [ByteString] -> ByteString
+ RIO.ByteString.Lazy: concatMap :: (Word8 -> ByteString) -> ByteString -> ByteString
+ RIO.ByteString.Lazy: cons :: Word8 -> ByteString -> ByteString
+ RIO.ByteString.Lazy: cons' :: Word8 -> ByteString -> ByteString
+ RIO.ByteString.Lazy: copy :: ByteString -> ByteString
+ RIO.ByteString.Lazy: count :: Word8 -> ByteString -> Int64
+ RIO.ByteString.Lazy: cycle :: ByteString -> ByteString
+ RIO.ByteString.Lazy: data ByteString :: *
+ RIO.ByteString.Lazy: drop :: Int64 -> ByteString -> ByteString
+ RIO.ByteString.Lazy: dropWhile :: (Word8 -> Bool) -> ByteString -> ByteString
+ RIO.ByteString.Lazy: elem :: Word8 -> ByteString -> Bool
+ RIO.ByteString.Lazy: elemIndex :: Word8 -> ByteString -> Maybe Int64
+ RIO.ByteString.Lazy: elemIndexEnd :: Word8 -> ByteString -> Maybe Int64
+ RIO.ByteString.Lazy: elemIndices :: Word8 -> ByteString -> [Int64]
+ RIO.ByteString.Lazy: empty :: ByteString
+ RIO.ByteString.Lazy: filter :: (Word8 -> Bool) -> ByteString -> ByteString
+ RIO.ByteString.Lazy: find :: (Word8 -> Bool) -> ByteString -> Maybe Word8
+ RIO.ByteString.Lazy: findIndex :: (Word8 -> Bool) -> ByteString -> Maybe Int64
+ RIO.ByteString.Lazy: findIndices :: (Word8 -> Bool) -> ByteString -> [Int64]
+ RIO.ByteString.Lazy: foldl :: () => (a -> Word8 -> a) -> a -> ByteString -> a
+ RIO.ByteString.Lazy: foldl' :: () => (a -> Word8 -> a) -> a -> ByteString -> a
+ RIO.ByteString.Lazy: foldlChunks :: () => (a -> ByteString -> a) -> a -> ByteString -> a
+ RIO.ByteString.Lazy: foldr :: () => (Word8 -> a -> a) -> a -> ByteString -> a
+ RIO.ByteString.Lazy: foldrChunks :: () => (ByteString -> a -> a) -> a -> ByteString -> a
+ RIO.ByteString.Lazy: fromChunks :: [ByteString] -> ByteString
+ RIO.ByteString.Lazy: fromStrict :: ByteString -> ByteString
+ RIO.ByteString.Lazy: getContents :: MonadIO m => m LByteString
+ RIO.ByteString.Lazy: group :: ByteString -> [ByteString]
+ RIO.ByteString.Lazy: groupBy :: (Word8 -> Word8 -> Bool) -> ByteString -> [ByteString]
+ RIO.ByteString.Lazy: hGet :: MonadIO m => Handle -> Int -> m LByteString
+ RIO.ByteString.Lazy: hGetContents :: MonadIO m => Handle -> m LByteString
+ RIO.ByteString.Lazy: hGetNonBlocking :: MonadIO m => Handle -> Int -> m LByteString
+ RIO.ByteString.Lazy: hPut :: MonadIO m => Handle -> LByteString -> m ()
+ RIO.ByteString.Lazy: hPutNonBlocking :: MonadIO m => Handle -> LByteString -> m LByteString
+ RIO.ByteString.Lazy: hPutStr :: MonadIO m => Handle -> LByteString -> m ()
+ RIO.ByteString.Lazy: index :: ByteString -> Int64 -> Word8
+ RIO.ByteString.Lazy: infixl 5 `snoc`
+ RIO.ByteString.Lazy: infixr 5 `cons'`
+ RIO.ByteString.Lazy: inits :: ByteString -> [ByteString]
+ RIO.ByteString.Lazy: interact :: MonadIO m => (LByteString -> LByteString) -> m ()
+ RIO.ByteString.Lazy: intercalate :: ByteString -> [ByteString] -> ByteString
+ RIO.ByteString.Lazy: intersperse :: Word8 -> ByteString -> ByteString
+ RIO.ByteString.Lazy: isPrefixOf :: ByteString -> ByteString -> Bool
+ RIO.ByteString.Lazy: isSuffixOf :: ByteString -> ByteString -> Bool
+ RIO.ByteString.Lazy: iterate :: (Word8 -> Word8) -> Word8 -> ByteString
+ RIO.ByteString.Lazy: length :: ByteString -> Int64
+ RIO.ByteString.Lazy: map :: (Word8 -> Word8) -> ByteString -> ByteString
+ RIO.ByteString.Lazy: mapAccumL :: () => (acc -> Word8 -> (acc, Word8)) -> acc -> ByteString -> (acc, ByteString)
+ RIO.ByteString.Lazy: mapAccumR :: () => (acc -> Word8 -> (acc, Word8)) -> acc -> ByteString -> (acc, ByteString)
+ RIO.ByteString.Lazy: notElem :: Word8 -> ByteString -> Bool
+ RIO.ByteString.Lazy: null :: ByteString -> Bool
+ RIO.ByteString.Lazy: pack :: [Word8] -> ByteString
+ RIO.ByteString.Lazy: partition :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString)
+ RIO.ByteString.Lazy: putStr :: MonadIO m => LByteString -> m ()
+ RIO.ByteString.Lazy: putStrLn :: MonadIO m => LByteString -> m ()
+ RIO.ByteString.Lazy: readFile :: MonadIO m => FilePath -> m LByteString
+ RIO.ByteString.Lazy: repeat :: Word8 -> ByteString
+ RIO.ByteString.Lazy: replicate :: Int64 -> Word8 -> ByteString
+ RIO.ByteString.Lazy: reverse :: ByteString -> ByteString
+ RIO.ByteString.Lazy: scanl :: (Word8 -> Word8 -> Word8) -> Word8 -> ByteString -> ByteString
+ RIO.ByteString.Lazy: singleton :: Word8 -> ByteString
+ RIO.ByteString.Lazy: snoc :: ByteString -> Word8 -> ByteString
+ RIO.ByteString.Lazy: span :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString)
+ RIO.ByteString.Lazy: split :: Word8 -> ByteString -> [ByteString]
+ RIO.ByteString.Lazy: splitAt :: Int64 -> ByteString -> (ByteString, ByteString)
+ RIO.ByteString.Lazy: splitWith :: (Word8 -> Bool) -> ByteString -> [ByteString]
+ RIO.ByteString.Lazy: stripPrefix :: ByteString -> ByteString -> Maybe ByteString
+ RIO.ByteString.Lazy: stripSuffix :: ByteString -> ByteString -> Maybe ByteString
+ RIO.ByteString.Lazy: tails :: ByteString -> [ByteString]
+ RIO.ByteString.Lazy: take :: Int64 -> ByteString -> ByteString
+ RIO.ByteString.Lazy: takeWhile :: (Word8 -> Bool) -> ByteString -> ByteString
+ RIO.ByteString.Lazy: toChunks :: ByteString -> [ByteString]
+ RIO.ByteString.Lazy: toStrict :: ByteString -> ByteString
+ RIO.ByteString.Lazy: transpose :: [ByteString] -> [ByteString]
+ RIO.ByteString.Lazy: uncons :: ByteString -> Maybe (Word8, ByteString)
+ RIO.ByteString.Lazy: unfoldr :: () => (a -> Maybe (Word8, a)) -> a -> ByteString
+ RIO.ByteString.Lazy: unpack :: ByteString -> [Word8]
+ RIO.ByteString.Lazy: unsnoc :: ByteString -> Maybe (ByteString, Word8)
+ RIO.ByteString.Lazy: unzip :: [(Word8, Word8)] -> (ByteString, ByteString)
+ RIO.ByteString.Lazy: writeFile :: MonadIO m => FilePath -> LByteString -> m ()
+ RIO.ByteString.Lazy: zip :: ByteString -> ByteString -> [(Word8, Word8)]
+ RIO.ByteString.Lazy: zipWith :: () => (Word8 -> Word8 -> a) -> ByteString -> ByteString -> [a]
+ RIO.ByteString.Lazy.Partial: foldl1 :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8
+ RIO.ByteString.Lazy.Partial: foldl1' :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8
+ RIO.ByteString.Lazy.Partial: foldr1 :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8
+ RIO.ByteString.Lazy.Partial: head :: ByteString -> Word8
+ RIO.ByteString.Lazy.Partial: init :: ByteString -> ByteString
+ RIO.ByteString.Lazy.Partial: last :: ByteString -> Word8
+ RIO.ByteString.Lazy.Partial: maximum :: ByteString -> Word8
+ RIO.ByteString.Lazy.Partial: minimum :: ByteString -> Word8
+ RIO.ByteString.Lazy.Partial: tail :: ByteString -> ByteString
+ RIO.ByteString.Partial: foldl1 :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8
+ RIO.ByteString.Partial: foldl1' :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8
+ RIO.ByteString.Partial: foldr1 :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8
+ RIO.ByteString.Partial: foldr1' :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8
+ RIO.ByteString.Partial: head :: ByteString -> Word8
+ RIO.ByteString.Partial: init :: ByteString -> ByteString
+ RIO.ByteString.Partial: last :: ByteString -> Word8
+ RIO.ByteString.Partial: maximum :: ByteString -> Word8
+ RIO.ByteString.Partial: minimum :: ByteString -> Word8
+ RIO.ByteString.Partial: tail :: ByteString -> ByteString
+ RIO.Char: ClosePunctuation :: GeneralCategory
+ RIO.Char: ConnectorPunctuation :: GeneralCategory
+ RIO.Char: Control :: GeneralCategory
+ RIO.Char: CurrencySymbol :: GeneralCategory
+ RIO.Char: DashPunctuation :: GeneralCategory
+ RIO.Char: DecimalNumber :: GeneralCategory
+ RIO.Char: EnclosingMark :: GeneralCategory
+ RIO.Char: FinalQuote :: GeneralCategory
+ RIO.Char: Format :: GeneralCategory
+ RIO.Char: InitialQuote :: GeneralCategory
+ RIO.Char: LetterNumber :: GeneralCategory
+ RIO.Char: LineSeparator :: GeneralCategory
+ RIO.Char: LowercaseLetter :: GeneralCategory
+ RIO.Char: MathSymbol :: GeneralCategory
+ RIO.Char: ModifierLetter :: GeneralCategory
+ RIO.Char: ModifierSymbol :: GeneralCategory
+ RIO.Char: NonSpacingMark :: GeneralCategory
+ RIO.Char: NotAssigned :: GeneralCategory
+ RIO.Char: OpenPunctuation :: GeneralCategory
+ RIO.Char: OtherLetter :: GeneralCategory
+ RIO.Char: OtherNumber :: GeneralCategory
+ RIO.Char: OtherPunctuation :: GeneralCategory
+ RIO.Char: OtherSymbol :: GeneralCategory
+ RIO.Char: ParagraphSeparator :: GeneralCategory
+ RIO.Char: PrivateUse :: GeneralCategory
+ RIO.Char: Space :: GeneralCategory
+ RIO.Char: SpacingCombiningMark :: GeneralCategory
+ RIO.Char: Surrogate :: GeneralCategory
+ RIO.Char: TitlecaseLetter :: GeneralCategory
+ RIO.Char: UppercaseLetter :: GeneralCategory
+ RIO.Char: data Char :: *
+ RIO.Char: data GeneralCategory :: *
+ RIO.Char: generalCategory :: Char -> GeneralCategory
+ RIO.Char: isAlpha :: Char -> Bool
+ RIO.Char: isAlphaNum :: Char -> Bool
+ RIO.Char: isAscii :: Char -> Bool
+ RIO.Char: isAsciiLower :: Char -> Bool
+ RIO.Char: isAsciiUpper :: Char -> Bool
+ RIO.Char: isControl :: Char -> Bool
+ RIO.Char: isDigit :: Char -> Bool
+ RIO.Char: isHexDigit :: Char -> Bool
+ RIO.Char: isLatin1 :: Char -> Bool
+ RIO.Char: isLetter :: Char -> Bool
+ RIO.Char: isLower :: Char -> Bool
+ RIO.Char: isMark :: Char -> Bool
+ RIO.Char: isNumber :: Char -> Bool
+ RIO.Char: isOctDigit :: Char -> Bool
+ RIO.Char: isPrint :: Char -> Bool
+ RIO.Char: isPunctuation :: Char -> Bool
+ RIO.Char: isSeparator :: Char -> Bool
+ RIO.Char: isSpace :: Char -> Bool
+ RIO.Char: isSymbol :: Char -> Bool
+ RIO.Char: isUpper :: Char -> Bool
+ RIO.Char: lexLitChar :: ReadS String
+ RIO.Char: ord :: Char -> Int
+ RIO.Char: readLitChar :: ReadS Char
+ RIO.Char: showLitChar :: Char -> ShowS
+ RIO.Char: toLower :: Char -> Char
+ RIO.Char: toTitle :: Char -> Char
+ RIO.Char: toUpper :: Char -> Char
+ RIO.Char.Partial: chr :: Int -> Char
+ RIO.Char.Partial: digitToInt :: Char -> Int
+ RIO.Char.Partial: intToDigit :: Int -> Char
+ RIO.FilePath: getSearchPath :: MonadIO m => m [FilePath]
+ RIO.HashMap: adjust :: (Eq k, Hashable k) => (v -> v) -> k -> HashMap k v -> HashMap k v
+ RIO.HashMap: alter :: (Eq k, Hashable k) => (Maybe v -> Maybe v) -> k -> HashMap k v -> HashMap k v
+ RIO.HashMap: data HashMap k v :: * -> * -> *
+ RIO.HashMap: delete :: (Eq k, Hashable k) => k -> HashMap k v -> HashMap k v
+ RIO.HashMap: difference :: (Eq k, Hashable k) => HashMap k v -> HashMap k w -> HashMap k v
+ RIO.HashMap: differenceWith :: (Eq k, Hashable k) => (v -> w -> Maybe v) -> HashMap k v -> HashMap k w -> HashMap k v
+ RIO.HashMap: elems :: () => HashMap k v -> [v]
+ RIO.HashMap: empty :: () => HashMap k v
+ RIO.HashMap: filter :: () => (v -> Bool) -> HashMap k v -> HashMap k v
+ RIO.HashMap: filterWithKey :: () => (k -> v -> Bool) -> HashMap k v -> HashMap k v
+ RIO.HashMap: foldl' :: () => (a -> v -> a) -> a -> HashMap k v -> a
+ RIO.HashMap: foldlWithKey' :: () => (a -> k -> v -> a) -> a -> HashMap k v -> a
+ RIO.HashMap: foldr :: () => (v -> a -> a) -> a -> HashMap k v -> a
+ RIO.HashMap: foldrWithKey :: () => (k -> v -> a -> a) -> a -> HashMap k v -> a
+ RIO.HashMap: fromList :: (Eq k, Hashable k) => [(k, v)] -> HashMap k v
+ RIO.HashMap: fromListWith :: (Eq k, Hashable k) => (v -> v -> v) -> [(k, v)] -> HashMap k v
+ RIO.HashMap: insert :: (Eq k, Hashable k) => k -> v -> HashMap k v -> HashMap k v
+ RIO.HashMap: insertWith :: (Eq k, Hashable k) => (v -> v -> v) -> k -> v -> HashMap k v -> HashMap k v
+ RIO.HashMap: intersection :: (Eq k, Hashable k) => HashMap k v -> HashMap k w -> HashMap k v
+ RIO.HashMap: intersectionWith :: (Eq k, Hashable k) => (v1 -> v2 -> v3) -> HashMap k v1 -> HashMap k v2 -> HashMap k v3
+ RIO.HashMap: intersectionWithKey :: (Eq k, Hashable k) => (k -> v1 -> v2 -> v3) -> HashMap k v1 -> HashMap k v2 -> HashMap k v3
+ RIO.HashMap: keys :: () => HashMap k v -> [k]
+ RIO.HashMap: lookup :: (Eq k, Hashable k) => k -> HashMap k v -> Maybe v
+ RIO.HashMap: lookupDefault :: (Eq k, Hashable k) => v -> k -> HashMap k v -> v
+ RIO.HashMap: map :: () => (v1 -> v2) -> HashMap k v1 -> HashMap k v2
+ RIO.HashMap: mapMaybe :: () => (v1 -> Maybe v2) -> HashMap k v1 -> HashMap k v2
+ RIO.HashMap: mapMaybeWithKey :: () => (k -> v1 -> Maybe v2) -> HashMap k v1 -> HashMap k v2
+ RIO.HashMap: mapWithKey :: () => (k -> v1 -> v2) -> HashMap k v1 -> HashMap k v2
+ RIO.HashMap: member :: (Eq k, Hashable k) => k -> HashMap k a -> Bool
+ RIO.HashMap: null :: () => HashMap k v -> Bool
+ RIO.HashMap: singleton :: Hashable k => k -> v -> HashMap k v
+ RIO.HashMap: size :: () => HashMap k v -> Int
+ RIO.HashMap: toList :: () => HashMap k v -> [(k, v)]
+ RIO.HashMap: traverseWithKey :: Applicative f => (k -> v1 -> f v2) -> HashMap k v1 -> f HashMap k v2
+ RIO.HashMap: union :: (Eq k, Hashable k) => HashMap k v -> HashMap k v -> HashMap k v
+ RIO.HashMap: unionWith :: (Eq k, Hashable k) => (v -> v -> v) -> HashMap k v -> HashMap k v -> HashMap k v
+ RIO.HashMap: unionWithKey :: (Eq k, Hashable k) => (k -> v -> v -> v) -> HashMap k v -> HashMap k v -> HashMap k v
+ RIO.HashMap: unions :: (Eq k, Hashable k) => [HashMap k v] -> HashMap k v
+ RIO.HashMap: update :: (Eq k, Hashable k) => (a -> Maybe a) -> k -> HashMap k a -> HashMap k a
+ RIO.HashMap.Partial: (!) :: (Eq k, Hashable k) => HashMap k v -> k -> v
+ RIO.HashMap.Partial: infixl 9 !
+ RIO.HashSet: data HashSet a :: * -> *
+ RIO.HashSet: delete :: (Eq a, Hashable a) => a -> HashSet a -> HashSet a
+ RIO.HashSet: difference :: (Eq a, Hashable a) => HashSet a -> HashSet a -> HashSet a
+ RIO.HashSet: empty :: () => HashSet a
+ RIO.HashSet: filter :: () => (a -> Bool) -> HashSet a -> HashSet a
+ RIO.HashSet: foldl' :: () => (a -> b -> a) -> a -> HashSet b -> a
+ RIO.HashSet: foldr :: () => (b -> a -> a) -> a -> HashSet b -> a
+ RIO.HashSet: fromList :: (Eq a, Hashable a) => [a] -> HashSet a
+ RIO.HashSet: fromMap :: () => HashMap a () -> HashSet a
+ RIO.HashSet: insert :: (Eq a, Hashable a) => a -> HashSet a -> HashSet a
+ RIO.HashSet: intersection :: (Eq a, Hashable a) => HashSet a -> HashSet a -> HashSet a
+ RIO.HashSet: map :: (Hashable b, Eq b) => (a -> b) -> HashSet a -> HashSet b
+ RIO.HashSet: member :: (Eq a, Hashable a) => a -> HashSet a -> Bool
+ RIO.HashSet: null :: () => HashSet a -> Bool
+ RIO.HashSet: singleton :: Hashable a => a -> HashSet a
+ RIO.HashSet: size :: () => HashSet a -> Int
+ RIO.HashSet: toList :: () => HashSet a -> [a]
+ RIO.HashSet: toMap :: () => HashSet a -> HashMap a ()
+ RIO.HashSet: union :: (Eq a, Hashable a) => HashSet a -> HashSet a -> HashSet a
+ RIO.HashSet: unions :: (Eq a, Hashable a) => [HashSet a] -> HashSet a
+ RIO.List: (++) :: () => [a] -> [a] -> [a]
+ RIO.List: (\\) :: Eq a => [a] -> [a] -> [a]
+ RIO.List: all :: Foldable t => (a -> Bool) -> t a -> Bool
+ RIO.List: and :: Foldable t => t Bool -> Bool
+ RIO.List: any :: Foldable t => (a -> Bool) -> t a -> Bool
+ RIO.List: break :: () => (a -> Bool) -> [a] -> ([a], [a])
+ RIO.List: concat :: Foldable t => t [a] -> [a]
+ RIO.List: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
+ RIO.List: cycle :: () => [a] -> [a]
+ RIO.List: delete :: Eq a => a -> [a] -> [a]
+ RIO.List: deleteBy :: () => (a -> a -> Bool) -> a -> [a] -> [a]
+ RIO.List: deleteFirstsBy :: () => (a -> a -> Bool) -> [a] -> [a] -> [a]
+ RIO.List: drop :: () => Int -> [a] -> [a]
+ RIO.List: dropWhile :: () => (a -> Bool) -> [a] -> [a]
+ RIO.List: dropWhileEnd :: () => (a -> Bool) -> [a] -> [a]
+ RIO.List: elem :: Foldable t => forall a. Eq a => a -> t a -> Bool
+ RIO.List: elemIndex :: Eq a => a -> [a] -> Maybe Int
+ RIO.List: elemIndices :: Eq a => a -> [a] -> [Int]
+ RIO.List: filter :: () => (a -> Bool) -> [a] -> [a]
+ RIO.List: find :: Foldable t => (a -> Bool) -> t a -> Maybe a
+ RIO.List: findIndex :: () => (a -> Bool) -> [a] -> Maybe Int
+ RIO.List: findIndices :: () => (a -> Bool) -> [a] -> [Int]
+ RIO.List: foldl :: Foldable t => forall b a. () => (b -> a -> b) -> b -> t a -> b
+ RIO.List: foldl' :: Foldable t => forall b a. () => (b -> a -> b) -> b -> t a -> b
+ RIO.List: foldr :: Foldable t => forall a b. () => (a -> b -> b) -> b -> t a -> b
+ RIO.List: genericDrop :: Integral i => i -> [a] -> [a]
+ RIO.List: genericIndex :: Integral i => [a] -> i -> a
+ RIO.List: genericLength :: Num i => [a] -> i
+ RIO.List: genericReplicate :: Integral i => i -> a -> [a]
+ RIO.List: genericSplitAt :: Integral i => i -> [a] -> ([a], [a])
+ RIO.List: genericTake :: Integral i => i -> [a] -> [a]
+ RIO.List: group :: Eq a => [a] -> [[a]]
+ RIO.List: groupBy :: () => (a -> a -> Bool) -> [a] -> [[a]]
+ RIO.List: infix 4 `notElem`
+ RIO.List: infix 5 \\
+ RIO.List: infixr 5 ++
+ RIO.List: inits :: () => [a] -> [[a]]
+ RIO.List: insert :: Ord a => a -> [a] -> [a]
+ RIO.List: insertBy :: () => (a -> a -> Ordering) -> a -> [a] -> [a]
+ RIO.List: intercalate :: () => [a] -> [[a]] -> [a]
+ RIO.List: intersect :: Eq a => [a] -> [a] -> [a]
+ RIO.List: intersectBy :: () => (a -> a -> Bool) -> [a] -> [a] -> [a]
+ RIO.List: intersperse :: () => a -> [a] -> [a]
+ RIO.List: isInfixOf :: Eq a => [a] -> [a] -> Bool
+ RIO.List: isPrefixOf :: Eq a => [a] -> [a] -> Bool
+ RIO.List: isSubsequenceOf :: Eq a => [a] -> [a] -> Bool
+ RIO.List: isSuffixOf :: Eq a => [a] -> [a] -> Bool
+ RIO.List: iterate :: () => (a -> a) -> a -> [a]
+ RIO.List: length :: Foldable t => forall a. () => t a -> Int
+ RIO.List: lines :: String -> [String]
+ RIO.List: linesCR :: String -> [String]
+ RIO.List: lookup :: Eq a => a -> [(a, b)] -> Maybe b
+ RIO.List: map :: () => (a -> b) -> [a] -> [b]
+ RIO.List: mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
+ RIO.List: mapAccumR :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
+ RIO.List: maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
+ RIO.List: minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
+ RIO.List: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
+ RIO.List: nub :: Eq a => [a] -> [a]
+ RIO.List: nubBy :: () => (a -> a -> Bool) -> [a] -> [a]
+ RIO.List: null :: Foldable t => forall a. () => t a -> Bool
+ RIO.List: or :: Foldable t => t Bool -> Bool
+ RIO.List: partition :: () => (a -> Bool) -> [a] -> ([a], [a])
+ RIO.List: permutations :: () => [a] -> [[a]]
+ RIO.List: product :: Foldable t => forall a. Num a => t a -> a
+ RIO.List: repeat :: () => a -> [a]
+ RIO.List: replicate :: () => Int -> a -> [a]
+ RIO.List: reverse :: () => [a] -> [a]
+ RIO.List: scanl :: () => (b -> a -> b) -> b -> [a] -> [b]
+ RIO.List: scanl' :: () => (b -> a -> b) -> b -> [a] -> [b]
+ RIO.List: scanr :: () => (a -> b -> b) -> b -> [a] -> [b]
+ RIO.List: sort :: Ord a => [a] -> [a]
+ RIO.List: sortBy :: () => (a -> a -> Ordering) -> [a] -> [a]
+ RIO.List: sortOn :: Ord b => (a -> b) -> [a] -> [a]
+ RIO.List: span :: () => (a -> Bool) -> [a] -> ([a], [a])
+ RIO.List: splitAt :: () => Int -> [a] -> ([a], [a])
+ RIO.List: stripPrefix :: Eq a => [a] -> [a] -> Maybe [a]
+ RIO.List: subsequences :: () => [a] -> [[a]]
+ RIO.List: sum :: Foldable t => forall a. Num a => t a -> a
+ RIO.List: tails :: () => [a] -> [[a]]
+ RIO.List: take :: () => Int -> [a] -> [a]
+ RIO.List: takeWhile :: () => (a -> Bool) -> [a] -> [a]
+ RIO.List: transpose :: () => [[a]] -> [[a]]
+ RIO.List: uncons :: () => [a] -> Maybe (a, [a])
+ RIO.List: unfoldr :: () => (b -> Maybe (a, b)) -> b -> [a]
+ RIO.List: union :: Eq a => [a] -> [a] -> [a]
+ RIO.List: unionBy :: () => (a -> a -> Bool) -> [a] -> [a] -> [a]
+ RIO.List: unlines :: [String] -> String
+ RIO.List: unwords :: [String] -> String
+ RIO.List: unzip :: () => [(a, b)] -> ([a], [b])
+ RIO.List: unzip3 :: () => [(a, b, c)] -> ([a], [b], [c])
+ RIO.List: unzip4 :: () => [(a, b, c, d)] -> ([a], [b], [c], [d])
+ RIO.List: unzip5 :: () => [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ RIO.List: unzip6 :: () => [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ RIO.List: unzip7 :: () => [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ RIO.List: words :: String -> [String]
+ RIO.List: zip :: () => [a] -> [b] -> [(a, b)]
+ RIO.List: zip3 :: () => [a] -> [b] -> [c] -> [(a, b, c)]
+ RIO.List: zip4 :: () => [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ RIO.List: zip5 :: () => [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ RIO.List: zip6 :: () => [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ RIO.List: zip7 :: () => [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ RIO.List: zipWith :: () => (a -> b -> c) -> [a] -> [b] -> [c]
+ RIO.List: zipWith3 :: () => (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ RIO.List: zipWith4 :: () => (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ RIO.List: zipWith5 :: () => (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ RIO.List: zipWith6 :: () => (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ RIO.List: zipWith7 :: () => (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ RIO.List.Partial: (!!) :: () => [a] -> Int -> a
+ RIO.List.Partial: foldl1 :: Foldable t => forall a. () => (a -> a -> a) -> t a -> a
+ RIO.List.Partial: foldl1' :: () => (a -> a -> a) -> [a] -> a
+ RIO.List.Partial: foldr1 :: Foldable t => forall a. () => (a -> a -> a) -> t a -> a
+ RIO.List.Partial: head :: () => [a] -> a
+ RIO.List.Partial: infixl 9 !!
+ RIO.List.Partial: init :: () => [a] -> [a]
+ RIO.List.Partial: last :: () => [a] -> a
+ RIO.List.Partial: maximum :: Foldable t => forall a. Ord a => t a -> a
+ RIO.List.Partial: minimum :: Foldable t => forall a. Ord a => t a -> a
+ RIO.List.Partial: scanl1 :: () => (a -> a -> a) -> [a] -> [a]
+ RIO.List.Partial: scanr1 :: () => (a -> a -> a) -> [a] -> [a]
+ RIO.List.Partial: tail :: () => [a] -> [a]
+ RIO.Map: (!?) :: Ord k => Map k a -> k -> Maybe a
+ RIO.Map: (\\) :: Ord k => Map k a -> Map k b -> Map k a
+ RIO.Map: adjust :: Ord k => (a -> a) -> k -> Map k a -> Map k a
+ RIO.Map: adjustWithKey :: Ord k => (k -> a -> a) -> k -> Map k a -> Map k a
+ RIO.Map: alter :: Ord k => (Maybe a -> Maybe a) -> k -> Map k a -> Map k a
+ RIO.Map: alterF :: (Functor f, Ord k) => (Maybe a -> f Maybe a) -> k -> Map k a -> f Map k a
+ RIO.Map: assocs :: () => Map k a -> [(k, a)]
+ RIO.Map: data Map k a :: * -> * -> *
+ RIO.Map: delete :: Ord k => k -> Map k a -> Map k a
+ RIO.Map: deleteAt :: () => Int -> Map k a -> Map k a
+ RIO.Map: deleteMax :: () => Map k a -> Map k a
+ RIO.Map: deleteMin :: () => Map k a -> Map k a
+ RIO.Map: difference :: Ord k => Map k a -> Map k b -> Map k a
+ RIO.Map: differenceWith :: Ord k => (a -> b -> Maybe a) -> Map k a -> Map k b -> Map k a
+ RIO.Map: differenceWithKey :: Ord k => (k -> a -> b -> Maybe a) -> Map k a -> Map k b -> Map k a
+ RIO.Map: drop :: () => Int -> Map k a -> Map k a
+ RIO.Map: dropWhileAntitone :: () => (k -> Bool) -> Map k a -> Map k a
+ RIO.Map: elemAt :: () => Int -> Map k a -> (k, a)
+ RIO.Map: elems :: () => Map k a -> [a]
+ RIO.Map: empty :: () => Map k a
+ RIO.Map: filter :: () => (a -> Bool) -> Map k a -> Map k a
+ RIO.Map: filterWithKey :: () => (k -> a -> Bool) -> Map k a -> Map k a
+ RIO.Map: findWithDefault :: Ord k => a -> k -> Map k a -> a
+ RIO.Map: foldMapWithKey :: Monoid m => (k -> a -> m) -> Map k a -> m
+ RIO.Map: foldl :: () => (a -> b -> a) -> a -> Map k b -> a
+ RIO.Map: foldl' :: () => (a -> b -> a) -> a -> Map k b -> a
+ RIO.Map: foldlWithKey :: () => (a -> k -> b -> a) -> a -> Map k b -> a
+ RIO.Map: foldlWithKey' :: () => (a -> k -> b -> a) -> a -> Map k b -> a
+ RIO.Map: foldr :: () => (a -> b -> b) -> b -> Map k a -> b
+ RIO.Map: foldr' :: () => (a -> b -> b) -> b -> Map k a -> b
+ RIO.Map: foldrWithKey :: () => (k -> a -> b -> b) -> b -> Map k a -> b
+ RIO.Map: foldrWithKey' :: () => (k -> a -> b -> b) -> b -> Map k a -> b
+ RIO.Map: fromList :: Ord k => [(k, a)] -> Map k a
+ RIO.Map: fromListWith :: Ord k => (a -> a -> a) -> [(k, a)] -> Map k a
+ RIO.Map: fromListWithKey :: Ord k => (k -> a -> a -> a) -> [(k, a)] -> Map k a
+ RIO.Map: fromSet :: () => (k -> a) -> Set k -> Map k a
+ RIO.Map: infixl 9 \\
+ RIO.Map: insert :: Ord k => k -> a -> Map k a -> Map k a
+ RIO.Map: insertLookupWithKey :: Ord k => (k -> a -> a -> a) -> k -> a -> Map k a -> (Maybe a, Map k a)
+ RIO.Map: insertWith :: Ord k => (a -> a -> a) -> k -> a -> Map k a -> Map k a
+ RIO.Map: insertWithKey :: Ord k => (k -> a -> a -> a) -> k -> a -> Map k a -> Map k a
+ RIO.Map: intersection :: Ord k => Map k a -> Map k b -> Map k a
+ RIO.Map: intersectionWith :: Ord k => (a -> b -> c) -> Map k a -> Map k b -> Map k c
+ RIO.Map: intersectionWithKey :: Ord k => (k -> a -> b -> c) -> Map k a -> Map k b -> Map k c
+ RIO.Map: isProperSubmapOf :: (Ord k, Eq a) => Map k a -> Map k a -> Bool
+ RIO.Map: isProperSubmapOfBy :: Ord k => (a -> b -> Bool) -> Map k a -> Map k b -> Bool
+ RIO.Map: isSubmapOf :: (Ord k, Eq a) => Map k a -> Map k a -> Bool
+ RIO.Map: isSubmapOfBy :: Ord k => (a -> b -> Bool) -> Map k a -> Map k b -> Bool
+ RIO.Map: keys :: () => Map k a -> [k]
+ RIO.Map: keysSet :: () => Map k a -> Set k
+ RIO.Map: lookup :: Ord k => k -> Map k a -> Maybe a
+ RIO.Map: lookupGE :: Ord k => k -> Map k v -> Maybe (k, v)
+ RIO.Map: lookupGT :: Ord k => k -> Map k v -> Maybe (k, v)
+ RIO.Map: lookupIndex :: Ord k => k -> Map k a -> Maybe Int
+ RIO.Map: lookupLE :: Ord k => k -> Map k v -> Maybe (k, v)
+ RIO.Map: lookupLT :: Ord k => k -> Map k v -> Maybe (k, v)
+ RIO.Map: lookupMax :: () => Map k a -> Maybe (k, a)
+ RIO.Map: lookupMin :: () => Map k a -> Maybe (k, a)
+ RIO.Map: map :: () => (a -> b) -> Map k a -> Map k b
+ RIO.Map: mapAccum :: () => (a -> b -> (a, c)) -> a -> Map k b -> (a, Map k c)
+ RIO.Map: mapAccumRWithKey :: () => (a -> k -> b -> (a, c)) -> a -> Map k b -> (a, Map k c)
+ RIO.Map: mapAccumWithKey :: () => (a -> k -> b -> (a, c)) -> a -> Map k b -> (a, Map k c)
+ RIO.Map: mapEither :: () => (a -> Either b c) -> Map k a -> (Map k b, Map k c)
+ RIO.Map: mapEitherWithKey :: () => (k -> a -> Either b c) -> Map k a -> (Map k b, Map k c)
+ RIO.Map: mapKeys :: Ord k2 => (k1 -> k2) -> Map k1 a -> Map k2 a
+ RIO.Map: mapKeysWith :: Ord k2 => (a -> a -> a) -> (k1 -> k2) -> Map k1 a -> Map k2 a
+ RIO.Map: mapMaybe :: () => (a -> Maybe b) -> Map k a -> Map k b
+ RIO.Map: mapMaybeWithKey :: () => (k -> a -> Maybe b) -> Map k a -> Map k b
+ RIO.Map: mapWithKey :: () => (k -> a -> b) -> Map k a -> Map k b
+ RIO.Map: maxView :: () => Map k a -> Maybe (a, Map k a)
+ RIO.Map: maxViewWithKey :: () => Map k a -> Maybe ((k, a), Map k a)
+ RIO.Map: member :: Ord k => k -> Map k a -> Bool
+ RIO.Map: mergeWithKey :: Ord k => (k -> a -> b -> Maybe c) -> (Map k a -> Map k c) -> (Map k b -> Map k c) -> Map k a -> Map k b -> Map k c
+ RIO.Map: minView :: () => Map k a -> Maybe (a, Map k a)
+ RIO.Map: minViewWithKey :: () => Map k a -> Maybe ((k, a), Map k a)
+ RIO.Map: notMember :: Ord k => k -> Map k a -> Bool
+ RIO.Map: null :: () => Map k a -> Bool
+ RIO.Map: partition :: () => (a -> Bool) -> Map k a -> (Map k a, Map k a)
+ RIO.Map: partitionWithKey :: () => (k -> a -> Bool) -> Map k a -> (Map k a, Map k a)
+ RIO.Map: restrictKeys :: Ord k => Map k a -> Set k -> Map k a
+ RIO.Map: showTree :: (Show k, Show a) => Map k a -> String
+ RIO.Map: showTreeWith :: () => (k -> a -> String) -> Bool -> Bool -> Map k a -> String
+ RIO.Map: singleton :: () => k -> a -> Map k a
+ RIO.Map: size :: () => Map k a -> Int
+ RIO.Map: spanAntitone :: () => (k -> Bool) -> Map k a -> (Map k a, Map k a)
+ RIO.Map: split :: Ord k => k -> Map k a -> (Map k a, Map k a)
+ RIO.Map: splitAt :: () => Int -> Map k a -> (Map k a, Map k a)
+ RIO.Map: splitLookup :: Ord k => k -> Map k a -> (Map k a, Maybe a, Map k a)
+ RIO.Map: splitRoot :: () => Map k b -> [Map k b]
+ RIO.Map: take :: () => Int -> Map k a -> Map k a
+ RIO.Map: takeWhileAntitone :: () => (k -> Bool) -> Map k a -> Map k a
+ RIO.Map: toList :: () => Map k a -> [(k, a)]
+ RIO.Map: traverseMaybeWithKey :: Applicative f => (k -> a -> f Maybe b) -> Map k a -> f Map k b
+ RIO.Map: traverseWithKey :: Applicative t => (k -> a -> t b) -> Map k a -> t Map k b
+ RIO.Map: union :: Ord k => Map k a -> Map k a -> Map k a
+ RIO.Map: unionWith :: Ord k => (a -> a -> a) -> Map k a -> Map k a -> Map k a
+ RIO.Map: unionWithKey :: Ord k => (k -> a -> a -> a) -> Map k a -> Map k a -> Map k a
+ RIO.Map: unions :: Ord k => [Map k a] -> Map k a
+ RIO.Map: unionsWith :: Ord k => (a -> a -> a) -> [Map k a] -> Map k a
+ RIO.Map: update :: Ord k => (a -> Maybe a) -> k -> Map k a -> Map k a
+ RIO.Map: updateLookupWithKey :: Ord k => (k -> a -> Maybe a) -> k -> Map k a -> (Maybe a, Map k a)
+ RIO.Map: updateMax :: () => (a -> Maybe a) -> Map k a -> Map k a
+ RIO.Map: updateMaxWithKey :: () => (k -> a -> Maybe a) -> Map k a -> Map k a
+ RIO.Map: updateMin :: () => (a -> Maybe a) -> Map k a -> Map k a
+ RIO.Map: updateMinWithKey :: () => (k -> a -> Maybe a) -> Map k a -> Map k a
+ RIO.Map: updateWithKey :: Ord k => (k -> a -> Maybe a) -> k -> Map k a -> Map k a
+ RIO.Map: valid :: Ord k => Map k a -> Bool
+ RIO.Map: withoutKeys :: Ord k => Map k a -> Set k -> Map k a
+ RIO.Map.Partial: (!) :: Ord k => Map k a -> k -> a
+ RIO.Map.Partial: deleteAt :: () => Int -> Map k a -> Map k a
+ RIO.Map.Partial: deleteFindMax :: () => Map k a -> ((k, a), Map k a)
+ RIO.Map.Partial: deleteFindMin :: () => Map k a -> ((k, a), Map k a)
+ RIO.Map.Partial: elemAt :: () => Int -> Map k a -> (k, a)
+ RIO.Map.Partial: findIndex :: Ord k => k -> Map k a -> Int
+ RIO.Map.Partial: findMax :: () => Map k a -> (k, a)
+ RIO.Map.Partial: findMin :: () => Map k a -> (k, a)
+ RIO.Map.Partial: infixl 9 !
+ RIO.Map.Partial: updateAt :: () => (k -> a -> Maybe a) -> Int -> Map k a -> Map k a
+ RIO.Map.Unchecked: fromAscList :: Eq k => [(k, a)] -> Map k a
+ RIO.Map.Unchecked: fromAscListWith :: Eq k => (a -> a -> a) -> [(k, a)] -> Map k a
+ RIO.Map.Unchecked: fromAscListWithKey :: Eq k => (k -> a -> a -> a) -> [(k, a)] -> Map k a
+ RIO.Map.Unchecked: fromDescList :: Eq k => [(k, a)] -> Map k a
+ RIO.Map.Unchecked: fromDescListWith :: Eq k => (a -> a -> a) -> [(k, a)] -> Map k a
+ RIO.Map.Unchecked: fromDescListWithKey :: Eq k => (k -> a -> a -> a) -> [(k, a)] -> Map k a
+ RIO.Map.Unchecked: fromDistinctAscList :: () => [(k, a)] -> Map k a
+ RIO.Map.Unchecked: fromDistinctDescList :: () => [(k, a)] -> Map k a
+ RIO.Map.Unchecked: mapKeysMonotonic :: () => (k1 -> k2) -> Map k1 a -> Map k2 a
+ RIO.Map.Unchecked: toAscList :: () => Map k a -> [(k, a)]
+ RIO.Map.Unchecked: toDescList :: () => Map k a -> [(k, a)]
+ RIO.Seq: (!?) :: () => Seq a -> Int -> Maybe a
+ RIO.Seq: (:<) :: a -> Seq a -> ViewL a
+ RIO.Seq: (:>) :: Seq a -> a -> ViewR a
+ RIO.Seq: (<|) :: () => a -> Seq a -> Seq a
+ RIO.Seq: (><) :: () => Seq a -> Seq a -> Seq a
+ RIO.Seq: (|>) :: () => Seq a -> a -> Seq a
+ RIO.Seq: EmptyL :: ViewL a
+ RIO.Seq: EmptyR :: ViewR a
+ RIO.Seq: adjust :: () => (a -> a) -> Int -> Seq a -> Seq a
+ RIO.Seq: adjust' :: () => (a -> a) -> Int -> Seq a -> Seq a
+ RIO.Seq: breakl :: () => (a -> Bool) -> Seq a -> (Seq a, Seq a)
+ RIO.Seq: breakr :: () => (a -> Bool) -> Seq a -> (Seq a, Seq a)
+ RIO.Seq: chunksOf :: () => Int -> Seq a -> Seq Seq a
+ RIO.Seq: cycleTaking :: () => Int -> Seq a -> Seq a
+ RIO.Seq: data Seq a :: * -> *
+ RIO.Seq: data ViewL a :: * -> *
+ RIO.Seq: data ViewR a :: * -> *
+ RIO.Seq: deleteAt :: () => Int -> Seq a -> Seq a
+ RIO.Seq: drop :: () => Int -> Seq a -> Seq a
+ RIO.Seq: dropWhileL :: () => (a -> Bool) -> Seq a -> Seq a
+ RIO.Seq: dropWhileR :: () => (a -> Bool) -> Seq a -> Seq a
+ RIO.Seq: elemIndexL :: Eq a => a -> Seq a -> Maybe Int
+ RIO.Seq: elemIndexR :: Eq a => a -> Seq a -> Maybe Int
+ RIO.Seq: elemIndicesL :: Eq a => a -> Seq a -> [Int]
+ RIO.Seq: elemIndicesR :: Eq a => a -> Seq a -> [Int]
+ RIO.Seq: empty :: () => Seq a
+ RIO.Seq: filter :: () => (a -> Bool) -> Seq a -> Seq a
+ RIO.Seq: findIndexL :: () => (a -> Bool) -> Seq a -> Maybe Int
+ RIO.Seq: findIndexR :: () => (a -> Bool) -> Seq a -> Maybe Int
+ RIO.Seq: findIndicesL :: () => (a -> Bool) -> Seq a -> [Int]
+ RIO.Seq: findIndicesR :: () => (a -> Bool) -> Seq a -> [Int]
+ RIO.Seq: foldMapWithIndex :: Monoid m => (Int -> a -> m) -> Seq a -> m
+ RIO.Seq: foldlWithIndex :: () => (b -> Int -> a -> b) -> b -> Seq a -> b
+ RIO.Seq: foldrWithIndex :: () => (Int -> a -> b -> b) -> b -> Seq a -> b
+ RIO.Seq: fromArray :: Ix i => Array i a -> Seq a
+ RIO.Seq: fromFunction :: () => Int -> (Int -> a) -> Seq a
+ RIO.Seq: fromList :: () => [a] -> Seq a
+ RIO.Seq: index :: () => Seq a -> Int -> a
+ RIO.Seq: infixl 5 |>
+ RIO.Seq: infixr 5 ><
+ RIO.Seq: inits :: () => Seq a -> Seq Seq a
+ RIO.Seq: insertAt :: () => Int -> a -> Seq a -> Seq a
+ RIO.Seq: intersperse :: () => a -> Seq a -> Seq a
+ RIO.Seq: iterateN :: () => Int -> (a -> a) -> a -> Seq a
+ RIO.Seq: length :: () => Seq a -> Int
+ RIO.Seq: lookup :: () => Int -> Seq a -> Maybe a
+ RIO.Seq: mapWithIndex :: () => (Int -> a -> b) -> Seq a -> Seq b
+ RIO.Seq: null :: () => Seq a -> Bool
+ RIO.Seq: partition :: () => (a -> Bool) -> Seq a -> (Seq a, Seq a)
+ RIO.Seq: replicate :: () => Int -> a -> Seq a
+ RIO.Seq: replicateA :: Applicative f => Int -> f a -> f Seq a
+ RIO.Seq: replicateM :: Monad m => Int -> m a -> m Seq a
+ RIO.Seq: reverse :: () => Seq a -> Seq a
+ RIO.Seq: scanl :: () => (a -> b -> a) -> a -> Seq b -> Seq a
+ RIO.Seq: scanl1 :: () => (a -> a -> a) -> Seq a -> Seq a
+ RIO.Seq: scanr :: () => (a -> b -> b) -> b -> Seq a -> Seq b
+ RIO.Seq: scanr1 :: () => (a -> a -> a) -> Seq a -> Seq a
+ RIO.Seq: singleton :: () => a -> Seq a
+ RIO.Seq: sort :: Ord a => Seq a -> Seq a
+ RIO.Seq: sortBy :: () => (a -> a -> Ordering) -> Seq a -> Seq a
+ RIO.Seq: spanl :: () => (a -> Bool) -> Seq a -> (Seq a, Seq a)
+ RIO.Seq: spanr :: () => (a -> Bool) -> Seq a -> (Seq a, Seq a)
+ RIO.Seq: splitAt :: () => Int -> Seq a -> (Seq a, Seq a)
+ RIO.Seq: tails :: () => Seq a -> Seq Seq a
+ RIO.Seq: take :: () => Int -> Seq a -> Seq a
+ RIO.Seq: takeWhileL :: () => (a -> Bool) -> Seq a -> Seq a
+ RIO.Seq: takeWhileR :: () => (a -> Bool) -> Seq a -> Seq a
+ RIO.Seq: traverseWithIndex :: Applicative f => (Int -> a -> f b) -> Seq a -> f Seq b
+ RIO.Seq: unfoldl :: () => (b -> Maybe (b, a)) -> b -> Seq a
+ RIO.Seq: unfoldr :: () => (b -> Maybe (a, b)) -> b -> Seq a
+ RIO.Seq: unstableSort :: Ord a => Seq a -> Seq a
+ RIO.Seq: unstableSortBy :: () => (a -> a -> Ordering) -> Seq a -> Seq a
+ RIO.Seq: update :: () => Int -> a -> Seq a -> Seq a
+ RIO.Seq: viewl :: () => Seq a -> ViewL a
+ RIO.Seq: viewr :: () => Seq a -> ViewR a
+ RIO.Seq: zip :: () => Seq a -> Seq b -> Seq (a, b)
+ RIO.Seq: zip3 :: () => Seq a -> Seq b -> Seq c -> Seq (a, b, c)
+ RIO.Seq: zip4 :: () => Seq a -> Seq b -> Seq c -> Seq d -> Seq (a, b, c, d)
+ RIO.Seq: zipWith :: () => (a -> b -> c) -> Seq a -> Seq b -> Seq c
+ RIO.Seq: zipWith3 :: () => (a -> b -> c -> d) -> Seq a -> Seq b -> Seq c -> Seq d
+ RIO.Seq: zipWith4 :: () => (a -> b -> c -> d -> e) -> Seq a -> Seq b -> Seq c -> Seq d -> Seq e
+ RIO.Set: (\\) :: Ord a => Set a -> Set a -> Set a
+ RIO.Set: data Set a :: * -> *
+ RIO.Set: delete :: Ord a => a -> Set a -> Set a
+ RIO.Set: deleteMax :: () => Set a -> Set a
+ RIO.Set: deleteMin :: () => Set a -> Set a
+ RIO.Set: difference :: Ord a => Set a -> Set a -> Set a
+ RIO.Set: drop :: () => Int -> Set a -> Set a
+ RIO.Set: dropWhileAntitone :: () => (a -> Bool) -> Set a -> Set a
+ RIO.Set: elems :: () => Set a -> [a]
+ RIO.Set: empty :: () => Set a
+ RIO.Set: filter :: () => (a -> Bool) -> Set a -> Set a
+ RIO.Set: foldl :: () => (a -> b -> a) -> a -> Set b -> a
+ RIO.Set: foldl' :: () => (a -> b -> a) -> a -> Set b -> a
+ RIO.Set: foldr :: () => (a -> b -> b) -> b -> Set a -> b
+ RIO.Set: foldr' :: () => (a -> b -> b) -> b -> Set a -> b
+ RIO.Set: fromList :: Ord a => [a] -> Set a
+ RIO.Set: infixl 9 \\
+ RIO.Set: insert :: Ord a => a -> Set a -> Set a
+ RIO.Set: intersection :: Ord a => Set a -> Set a -> Set a
+ RIO.Set: isProperSubsetOf :: Ord a => Set a -> Set a -> Bool
+ RIO.Set: isSubsetOf :: Ord a => Set a -> Set a -> Bool
+ RIO.Set: lookupGE :: Ord a => a -> Set a -> Maybe a
+ RIO.Set: lookupGT :: Ord a => a -> Set a -> Maybe a
+ RIO.Set: lookupIndex :: Ord a => a -> Set a -> Maybe Int
+ RIO.Set: lookupLE :: Ord a => a -> Set a -> Maybe a
+ RIO.Set: lookupLT :: Ord a => a -> Set a -> Maybe a
+ RIO.Set: lookupMax :: () => Set a -> Maybe a
+ RIO.Set: lookupMin :: () => Set a -> Maybe a
+ RIO.Set: map :: Ord b => (a -> b) -> Set a -> Set b
+ RIO.Set: maxView :: () => Set a -> Maybe (a, Set a)
+ RIO.Set: member :: Ord a => a -> Set a -> Bool
+ RIO.Set: minView :: () => Set a -> Maybe (a, Set a)
+ RIO.Set: notMember :: Ord a => a -> Set a -> Bool
+ RIO.Set: null :: () => Set a -> Bool
+ RIO.Set: partition :: () => (a -> Bool) -> Set a -> (Set a, Set a)
+ RIO.Set: showTree :: Show a => Set a -> String
+ RIO.Set: showTreeWith :: Show a => Bool -> Bool -> Set a -> String
+ RIO.Set: singleton :: () => a -> Set a
+ RIO.Set: size :: () => Set a -> Int
+ RIO.Set: spanAntitone :: () => (a -> Bool) -> Set a -> (Set a, Set a)
+ RIO.Set: split :: Ord a => a -> Set a -> (Set a, Set a)
+ RIO.Set: splitAt :: () => Int -> Set a -> (Set a, Set a)
+ RIO.Set: splitMember :: Ord a => a -> Set a -> (Set a, Bool, Set a)
+ RIO.Set: splitRoot :: () => Set a -> [Set a]
+ RIO.Set: take :: () => Int -> Set a -> Set a
+ RIO.Set: takeWhileAntitone :: () => (a -> Bool) -> Set a -> Set a
+ RIO.Set: toAscList :: () => Set a -> [a]
+ RIO.Set: toDescList :: () => Set a -> [a]
+ RIO.Set: toList :: () => Set a -> [a]
+ RIO.Set: union :: Ord a => Set a -> Set a -> Set a
+ RIO.Set: unions :: Ord a => [Set a] -> Set a
+ RIO.Set: valid :: Ord a => Set a -> Bool
+ RIO.Set.Partial: deleteAt :: () => Int -> Set a -> Set a
+ RIO.Set.Partial: deleteFindMax :: () => Set a -> (a, Set a)
+ RIO.Set.Partial: deleteFindMin :: () => Set a -> (a, Set a)
+ RIO.Set.Partial: elemAt :: () => Int -> Set a -> a
+ RIO.Set.Partial: findIndex :: Ord a => a -> Set a -> Int
+ RIO.Set.Partial: findMax :: () => Set a -> a
+ RIO.Set.Partial: findMin :: () => Set a -> a
+ RIO.Set.Unchecked: fromAscList :: Eq a => [a] -> Set a
+ RIO.Set.Unchecked: fromDescList :: Eq a => [a] -> Set a
+ RIO.Set.Unchecked: fromDistinctAscList :: () => [a] -> Set a
+ RIO.Set.Unchecked: fromDistinctDescList :: () => [a] -> Set a
+ RIO.Set.Unchecked: mapMonotonic :: () => (a -> b) -> Set a -> Set b
+ RIO.Text: all :: (Char -> Bool) -> Text -> Bool
+ RIO.Text: any :: (Char -> Bool) -> Text -> Bool
+ RIO.Text: append :: Text -> Text -> Text
+ RIO.Text: break :: (Char -> Bool) -> Text -> (Text, Text)
+ RIO.Text: center :: Int -> Char -> Text -> Text
+ RIO.Text: chunksOf :: Int -> Text -> [Text]
+ RIO.Text: commonPrefixes :: Text -> Text -> Maybe (Text, Text, Text)
+ RIO.Text: compareLength :: Text -> Int -> Ordering
+ RIO.Text: concat :: [Text] -> Text
+ RIO.Text: concatMap :: (Char -> Text) -> Text -> Text
+ RIO.Text: cons :: Char -> Text -> Text
+ RIO.Text: copy :: Text -> Text
+ RIO.Text: data Text :: *
+ RIO.Text: drop :: Int -> Text -> Text
+ RIO.Text: dropAround :: (Char -> Bool) -> Text -> Text
+ RIO.Text: dropEnd :: Int -> Text -> Text
+ RIO.Text: dropWhile :: (Char -> Bool) -> Text -> Text
+ RIO.Text: dropWhileEnd :: (Char -> Bool) -> Text -> Text
+ RIO.Text: empty :: Text
+ RIO.Text: filter :: (Char -> Bool) -> Text -> Text
+ RIO.Text: find :: (Char -> Bool) -> Text -> Maybe Char
+ RIO.Text: findIndex :: (Char -> Bool) -> Text -> Maybe Int
+ RIO.Text: foldl :: () => (a -> Char -> a) -> a -> Text -> a
+ RIO.Text: foldl' :: () => (a -> Char -> a) -> a -> Text -> a
+ RIO.Text: foldr :: () => (Char -> a -> a) -> a -> Text -> a
+ RIO.Text: group :: Text -> [Text]
+ RIO.Text: groupBy :: (Char -> Char -> Bool) -> Text -> [Text]
+ RIO.Text: index :: Text -> Int -> Char
+ RIO.Text: infixr 5 `cons`
+ RIO.Text: inits :: Text -> [Text]
+ RIO.Text: intercalate :: Text -> [Text] -> Text
+ RIO.Text: intersperse :: Char -> Text -> Text
+ RIO.Text: isInfixOf :: Text -> Text -> Bool
+ RIO.Text: isPrefixOf :: Text -> Text -> Bool
+ RIO.Text: isSuffixOf :: Text -> Text -> Bool
+ RIO.Text: justifyLeft :: Int -> Char -> Text -> Text
+ RIO.Text: justifyRight :: Int -> Char -> Text -> Text
+ RIO.Text: length :: Text -> Int
+ RIO.Text: lines :: Text -> [Text]
+ RIO.Text: linesCR :: Text -> [Text]
+ RIO.Text: map :: (Char -> Char) -> Text -> Text
+ RIO.Text: mapAccumL :: () => (a -> Char -> (a, Char)) -> a -> Text -> (a, Text)
+ RIO.Text: mapAccumR :: () => (a -> Char -> (a, Char)) -> a -> Text -> (a, Text)
+ RIO.Text: null :: Text -> Bool
+ RIO.Text: pack :: String -> Text
+ RIO.Text: partition :: (Char -> Bool) -> Text -> (Text, Text)
+ RIO.Text: replicate :: Int -> Text -> Text
+ RIO.Text: reverse :: Text -> Text
+ RIO.Text: scanl :: (Char -> Char -> Char) -> Char -> Text -> Text
+ RIO.Text: scanl1 :: (Char -> Char -> Char) -> Text -> Text
+ RIO.Text: scanr :: (Char -> Char -> Char) -> Char -> Text -> Text
+ RIO.Text: scanr1 :: (Char -> Char -> Char) -> Text -> Text
+ RIO.Text: singleton :: Char -> Text
+ RIO.Text: snoc :: Text -> Char -> Text
+ RIO.Text: span :: (Char -> Bool) -> Text -> (Text, Text)
+ RIO.Text: split :: (Char -> Bool) -> Text -> [Text]
+ RIO.Text: splitAt :: Int -> Text -> (Text, Text)
+ RIO.Text: strip :: Text -> Text
+ RIO.Text: stripEnd :: Text -> Text
+ RIO.Text: stripPrefix :: Text -> Text -> Maybe Text
+ RIO.Text: stripStart :: Text -> Text
+ RIO.Text: stripSuffix :: Text -> Text -> Maybe Text
+ RIO.Text: tails :: Text -> [Text]
+ RIO.Text: take :: Int -> Text -> Text
+ RIO.Text: takeEnd :: Int -> Text -> Text
+ RIO.Text: takeWhile :: (Char -> Bool) -> Text -> Text
+ RIO.Text: takeWhileEnd :: (Char -> Bool) -> Text -> Text
+ RIO.Text: toCaseFold :: Text -> Text
+ RIO.Text: toLower :: Text -> Text
+ RIO.Text: toTitle :: Text -> Text
+ RIO.Text: toUpper :: Text -> Text
+ RIO.Text: transpose :: [Text] -> [Text]
+ RIO.Text: uncons :: Text -> Maybe (Char, Text)
+ RIO.Text: unfoldr :: () => (a -> Maybe (Char, a)) -> a -> Text
+ RIO.Text: unfoldrN :: () => Int -> (a -> Maybe (Char, a)) -> a -> Text
+ RIO.Text: unlines :: [Text] -> Text
+ RIO.Text: unpack :: Text -> String
+ RIO.Text: unpackCString# :: Addr# -> Text
+ RIO.Text: unwords :: [Text] -> Text
+ RIO.Text: words :: Text -> [Text]
+ RIO.Text: zip :: Text -> Text -> [(Char, Char)]
+ RIO.Text: zipWith :: (Char -> Char -> Char) -> Text -> Text -> Text
+ RIO.Text.Lazy: all :: (Char -> Bool) -> Text -> Bool
+ RIO.Text.Lazy: any :: (Char -> Bool) -> Text -> Bool
+ RIO.Text.Lazy: append :: Text -> Text -> Text
+ RIO.Text.Lazy: break :: (Char -> Bool) -> Text -> (Text, Text)
+ RIO.Text.Lazy: center :: Int64 -> Char -> Text -> Text
+ RIO.Text.Lazy: chunksOf :: Int64 -> Text -> [Text]
+ RIO.Text.Lazy: commonPrefixes :: Text -> Text -> Maybe (Text, Text, Text)
+ RIO.Text.Lazy: compareLength :: Text -> Int64 -> Ordering
+ RIO.Text.Lazy: concat :: [Text] -> Text
+ RIO.Text.Lazy: concatMap :: (Char -> Text) -> Text -> Text
+ RIO.Text.Lazy: cons :: Char -> Text -> Text
+ RIO.Text.Lazy: count :: Text -> Text -> Int64
+ RIO.Text.Lazy: cycle :: Text -> Text
+ RIO.Text.Lazy: data Text :: *
+ RIO.Text.Lazy: drop :: Int64 -> Text -> Text
+ RIO.Text.Lazy: dropAround :: (Char -> Bool) -> Text -> Text
+ RIO.Text.Lazy: dropEnd :: Int64 -> Text -> Text
+ RIO.Text.Lazy: dropWhile :: (Char -> Bool) -> Text -> Text
+ RIO.Text.Lazy: dropWhileEnd :: (Char -> Bool) -> Text -> Text
+ RIO.Text.Lazy: empty :: Text
+ RIO.Text.Lazy: filter :: (Char -> Bool) -> Text -> Text
+ RIO.Text.Lazy: find :: (Char -> Bool) -> Text -> Maybe Char
+ RIO.Text.Lazy: foldl :: () => (a -> Char -> a) -> a -> Text -> a
+ RIO.Text.Lazy: foldl' :: () => (a -> Char -> a) -> a -> Text -> a
+ RIO.Text.Lazy: foldlChunks :: () => (a -> Text -> a) -> a -> Text -> a
+ RIO.Text.Lazy: foldr :: () => (Char -> a -> a) -> a -> Text -> a
+ RIO.Text.Lazy: foldrChunks :: () => (Text -> a -> a) -> a -> Text -> a
+ RIO.Text.Lazy: fromChunks :: [Text] -> Text
+ RIO.Text.Lazy: fromStrict :: Text -> Text
+ RIO.Text.Lazy: group :: Text -> [Text]
+ RIO.Text.Lazy: groupBy :: (Char -> Char -> Bool) -> Text -> [Text]
+ RIO.Text.Lazy: index :: Text -> Int64 -> Char
+ RIO.Text.Lazy: infixr 5 `cons`
+ RIO.Text.Lazy: inits :: Text -> [Text]
+ RIO.Text.Lazy: intercalate :: Text -> [Text] -> Text
+ RIO.Text.Lazy: intersperse :: Char -> Text -> Text
+ RIO.Text.Lazy: isInfixOf :: Text -> Text -> Bool
+ RIO.Text.Lazy: isPrefixOf :: Text -> Text -> Bool
+ RIO.Text.Lazy: isSuffixOf :: Text -> Text -> Bool
+ RIO.Text.Lazy: iterate :: (Char -> Char) -> Char -> Text
+ RIO.Text.Lazy: justifyLeft :: Int64 -> Char -> Text -> Text
+ RIO.Text.Lazy: justifyRight :: Int64 -> Char -> Text -> Text
+ RIO.Text.Lazy: length :: Text -> Int64
+ RIO.Text.Lazy: lines :: Text -> [Text]
+ RIO.Text.Lazy: map :: (Char -> Char) -> Text -> Text
+ RIO.Text.Lazy: mapAccumL :: () => (a -> Char -> (a, Char)) -> a -> Text -> (a, Text)
+ RIO.Text.Lazy: mapAccumR :: () => (a -> Char -> (a, Char)) -> a -> Text -> (a, Text)
+ RIO.Text.Lazy: null :: Text -> Bool
+ RIO.Text.Lazy: pack :: String -> Text
+ RIO.Text.Lazy: partition :: (Char -> Bool) -> Text -> (Text, Text)
+ RIO.Text.Lazy: repeat :: Char -> Text
+ RIO.Text.Lazy: replicate :: Int64 -> Text -> Text
+ RIO.Text.Lazy: reverse :: Text -> Text
+ RIO.Text.Lazy: scanl :: (Char -> Char -> Char) -> Char -> Text -> Text
+ RIO.Text.Lazy: scanl1 :: (Char -> Char -> Char) -> Text -> Text
+ RIO.Text.Lazy: scanr :: (Char -> Char -> Char) -> Char -> Text -> Text
+ RIO.Text.Lazy: scanr1 :: (Char -> Char -> Char) -> Text -> Text
+ RIO.Text.Lazy: singleton :: Char -> Text
+ RIO.Text.Lazy: snoc :: Text -> Char -> Text
+ RIO.Text.Lazy: span :: (Char -> Bool) -> Text -> (Text, Text)
+ RIO.Text.Lazy: split :: (Char -> Bool) -> Text -> [Text]
+ RIO.Text.Lazy: splitAt :: Int64 -> Text -> (Text, Text)
+ RIO.Text.Lazy: strip :: Text -> Text
+ RIO.Text.Lazy: stripEnd :: Text -> Text
+ RIO.Text.Lazy: stripPrefix :: Text -> Text -> Maybe Text
+ RIO.Text.Lazy: stripStart :: Text -> Text
+ RIO.Text.Lazy: stripSuffix :: Text -> Text -> Maybe Text
+ RIO.Text.Lazy: tails :: Text -> [Text]
+ RIO.Text.Lazy: take :: Int64 -> Text -> Text
+ RIO.Text.Lazy: takeEnd :: Int64 -> Text -> Text
+ RIO.Text.Lazy: takeWhile :: (Char -> Bool) -> Text -> Text
+ RIO.Text.Lazy: takeWhileEnd :: (Char -> Bool) -> Text -> Text
+ RIO.Text.Lazy: toCaseFold :: Text -> Text
+ RIO.Text.Lazy: toChunks :: Text -> [Text]
+ RIO.Text.Lazy: toLower :: Text -> Text
+ RIO.Text.Lazy: toStrict :: Text -> Text
+ RIO.Text.Lazy: toTitle :: Text -> Text
+ RIO.Text.Lazy: toUpper :: Text -> Text
+ RIO.Text.Lazy: transpose :: [Text] -> [Text]
+ RIO.Text.Lazy: uncons :: Text -> Maybe (Char, Text)
+ RIO.Text.Lazy: unfoldr :: () => (a -> Maybe (Char, a)) -> a -> Text
+ RIO.Text.Lazy: unfoldrN :: () => Int64 -> (a -> Maybe (Char, a)) -> a -> Text
+ RIO.Text.Lazy: unlines :: [Text] -> Text
+ RIO.Text.Lazy: unpack :: Text -> String
+ RIO.Text.Lazy: unwords :: [Text] -> Text
+ RIO.Text.Lazy: words :: Text -> [Text]
+ RIO.Text.Lazy: zip :: Text -> Text -> [(Char, Char)]
+ RIO.Text.Lazy: zipWith :: (Char -> Char -> Char) -> Text -> Text -> Text
+ RIO.Text.Lazy.Partial: breakOn :: Text -> Text -> (Text, Text)
+ RIO.Text.Lazy.Partial: breakOnAll :: Text -> Text -> [(Text, Text)]
+ RIO.Text.Lazy.Partial: breakOnEnd :: Text -> Text -> (Text, Text)
+ RIO.Text.Lazy.Partial: foldl1 :: (Char -> Char -> Char) -> Text -> Char
+ RIO.Text.Lazy.Partial: foldl1' :: (Char -> Char -> Char) -> Text -> Char
+ RIO.Text.Lazy.Partial: foldr1 :: (Char -> Char -> Char) -> Text -> Char
+ RIO.Text.Lazy.Partial: head :: Text -> Char
+ RIO.Text.Lazy.Partial: init :: Text -> Text
+ RIO.Text.Lazy.Partial: last :: Text -> Char
+ RIO.Text.Lazy.Partial: maximum :: Text -> Char
+ RIO.Text.Lazy.Partial: minimum :: Text -> Char
+ RIO.Text.Lazy.Partial: replace :: Text -> Text -> Text -> Text
+ RIO.Text.Lazy.Partial: splitOn :: Text -> Text -> [Text]
+ RIO.Text.Lazy.Partial: tail :: Text -> Text
+ RIO.Text.Partial: breakOn :: Text -> Text -> (Text, Text)
+ RIO.Text.Partial: breakOnAll :: Text -> Text -> [(Text, Text)]
+ RIO.Text.Partial: breakOnEnd :: Text -> Text -> (Text, Text)
+ RIO.Text.Partial: count :: Text -> Text -> Int
+ RIO.Text.Partial: foldl1 :: (Char -> Char -> Char) -> Text -> Char
+ RIO.Text.Partial: foldl1' :: (Char -> Char -> Char) -> Text -> Char
+ RIO.Text.Partial: foldr1 :: (Char -> Char -> Char) -> Text -> Char
+ RIO.Text.Partial: head :: Text -> Char
+ RIO.Text.Partial: init :: Text -> Text
+ RIO.Text.Partial: last :: Text -> Char
+ RIO.Text.Partial: maximum :: Text -> Char
+ RIO.Text.Partial: minimum :: Text -> Char
+ RIO.Text.Partial: replace :: Text -> Text -> Text -> Text
+ RIO.Text.Partial: splitOn :: Text -> Text -> [Text]
+ RIO.Text.Partial: tail :: Text -> Text
+ RIO.Time: getCurrentTime :: MonadIO m => m UTCTime
+ RIO.Time: getCurrentTimeZone :: MonadIO m => m TimeZone
+ RIO.Time: getTimeZone :: MonadIO m => UTCTime -> m TimeZone
+ RIO.Time: getZonedTime :: MonadIO m => m ZonedTime
+ RIO.Time: utcToLocalZonedTime :: MonadIO m => UTCTime -> m ZonedTime
+ RIO.Vector: (!?) :: Vector v a => v a -> Int -> Maybe a
+ RIO.Vector: (++) :: Vector v a => v a -> v a -> v a
+ RIO.Vector: all :: Vector v a => (a -> Bool) -> v a -> Bool
+ RIO.Vector: and :: Vector v Bool => v Bool -> Bool
+ RIO.Vector: any :: Vector v a => (a -> Bool) -> v a -> Bool
+ RIO.Vector: break :: Vector v a => (a -> Bool) -> v a -> (v a, v a)
+ RIO.Vector: class MVector Mutable v a => Vector (v :: * -> *) a
+ RIO.Vector: clone :: Vector v a => v a -> New v a
+ RIO.Vector: cmp :: (Vector v a, Ord a) => v a -> v a -> Ordering
+ RIO.Vector: cmpBy :: (Vector v a, Vector v b) => (a -> b -> Ordering) -> v a -> v b -> Ordering
+ RIO.Vector: concat :: Vector v a => [v a] -> v a
+ RIO.Vector: concatMap :: (Vector v a, Vector v b) => (a -> v b) -> v a -> v b
+ RIO.Vector: concatNE :: Vector v a => NonEmpty v a -> v a
+ RIO.Vector: cons :: Vector v a => a -> v a -> v a
+ RIO.Vector: constructN :: Vector v a => Int -> (v a -> a) -> v a
+ RIO.Vector: constructrN :: Vector v a => Int -> (v a -> a) -> v a
+ RIO.Vector: convert :: (Vector v a, Vector w a) => v a -> w a
+ RIO.Vector: copy :: (PrimMonad m, Vector v a) => Mutable v PrimState m a -> v a -> m ()
+ RIO.Vector: create :: Vector v a => (forall s. () => ST s Mutable v s a) -> v a
+ RIO.Vector: createT :: (Traversable f, Vector v a) => (forall s. () => ST s f Mutable v s a) -> f v a
+ RIO.Vector: dataCast :: (Vector v a, Data a, Typeable (* -> *) v, Typeable (* -> *) t) => (forall d. Data d => c t d) -> Maybe c v a
+ RIO.Vector: drop :: Vector v a => Int -> v a -> v a
+ RIO.Vector: dropWhile :: Vector v a => (a -> Bool) -> v a -> v a
+ RIO.Vector: elem :: (Vector v a, Eq a) => a -> v a -> Bool
+ RIO.Vector: elemIndex :: (Vector v a, Eq a) => a -> v a -> Maybe Int
+ RIO.Vector: elemIndices :: (Vector v a, Vector v Int, Eq a) => a -> v a -> v Int
+ RIO.Vector: empty :: Vector v a => v a
+ RIO.Vector: enumFromN :: (Vector v a, Num a) => a -> Int -> v a
+ RIO.Vector: enumFromStepN :: (Vector v a, Num a) => a -> a -> Int -> v a
+ RIO.Vector: enumFromThenTo :: (Vector v a, Enum a) => a -> a -> a -> v a
+ RIO.Vector: enumFromTo :: (Vector v a, Enum a) => a -> a -> v a
+ RIO.Vector: eq :: (Vector v a, Eq a) => v a -> v a -> Bool
+ RIO.Vector: eqBy :: (Vector v a, Vector v b) => (a -> b -> Bool) -> v a -> v b -> Bool
+ RIO.Vector: filter :: Vector v a => (a -> Bool) -> v a -> v a
+ RIO.Vector: filterM :: (Monad m, Vector v a) => (a -> m Bool) -> v a -> m v a
+ RIO.Vector: find :: Vector v a => (a -> Bool) -> v a -> Maybe a
+ RIO.Vector: findIndex :: Vector v a => (a -> Bool) -> v a -> Maybe Int
+ RIO.Vector: findIndices :: (Vector v a, Vector v Int) => (a -> Bool) -> v a -> v Int
+ RIO.Vector: foldM :: (Monad m, Vector v b) => (a -> b -> m a) -> a -> v b -> m a
+ RIO.Vector: foldM' :: (Monad m, Vector v b) => (a -> b -> m a) -> a -> v b -> m a
+ RIO.Vector: foldM'_ :: (Monad m, Vector v b) => (a -> b -> m a) -> a -> v b -> m ()
+ RIO.Vector: foldM_ :: (Monad m, Vector v b) => (a -> b -> m a) -> a -> v b -> m ()
+ RIO.Vector: foldl :: Vector v b => (a -> b -> a) -> a -> v b -> a
+ RIO.Vector: foldl' :: Vector v b => (a -> b -> a) -> a -> v b -> a
+ RIO.Vector: foldr :: Vector v a => (a -> b -> b) -> b -> v a -> b
+ RIO.Vector: foldr' :: Vector v a => (a -> b -> b) -> b -> v a -> b
+ RIO.Vector: forM :: (Monad m, Vector v a, Vector v b) => v a -> (a -> m b) -> m v b
+ RIO.Vector: forM_ :: (Monad m, Vector v a) => v a -> (a -> m b) -> m ()
+ RIO.Vector: force :: Vector v a => v a -> v a
+ RIO.Vector: freeze :: (PrimMonad m, Vector v a) => Mutable v PrimState m a -> m v a
+ RIO.Vector: fromList :: Vector v a => [a] -> v a
+ RIO.Vector: fromListN :: Vector v a => Int -> [a] -> v a
+ RIO.Vector: generate :: Vector v a => Int -> (Int -> a) -> v a
+ RIO.Vector: generateM :: (Monad m, Vector v a) => Int -> (Int -> m a) -> m v a
+ RIO.Vector: gfoldl :: (Vector v a, Data a) => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. () => g -> c g) -> v a -> c v a
+ RIO.Vector: ifilter :: Vector v a => (Int -> a -> Bool) -> v a -> v a
+ RIO.Vector: ifoldM :: (Monad m, Vector v b) => (a -> Int -> b -> m a) -> a -> v b -> m a
+ RIO.Vector: ifoldM' :: (Monad m, Vector v b) => (a -> Int -> b -> m a) -> a -> v b -> m a
+ RIO.Vector: ifoldM'_ :: (Monad m, Vector v b) => (a -> Int -> b -> m a) -> a -> v b -> m ()
+ RIO.Vector: ifoldM_ :: (Monad m, Vector v b) => (a -> Int -> b -> m a) -> a -> v b -> m ()
+ RIO.Vector: ifoldl :: Vector v b => (a -> Int -> b -> a) -> a -> v b -> a
+ RIO.Vector: ifoldl' :: Vector v b => (a -> Int -> b -> a) -> a -> v b -> a
+ RIO.Vector: ifoldr :: Vector v a => (Int -> a -> b -> b) -> b -> v a -> b
+ RIO.Vector: ifoldr' :: Vector v a => (Int -> a -> b -> b) -> b -> v a -> b
+ RIO.Vector: imap :: (Vector v a, Vector v b) => (Int -> a -> b) -> v a -> v b
+ RIO.Vector: imapM :: (Monad m, Vector v a, Vector v b) => (Int -> a -> m b) -> v a -> m v b
+ RIO.Vector: imapM_ :: (Monad m, Vector v a) => (Int -> a -> m b) -> v a -> m ()
+ RIO.Vector: imapMaybe :: (Vector v a, Vector v b) => (Int -> a -> Maybe b) -> v a -> v b
+ RIO.Vector: indexed :: (Vector v a, Vector v (Int, a)) => v a -> v (Int, a)
+ RIO.Vector: infix 4 `notElem`
+ RIO.Vector: infixl 9 !?
+ RIO.Vector: infixr 5 ++
+ RIO.Vector: iscanl :: (Vector v a, Vector v b) => (Int -> a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: iscanl' :: (Vector v a, Vector v b) => (Int -> a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: iscanr :: (Vector v a, Vector v b) => (Int -> a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: iscanr' :: (Vector v a, Vector v b) => (Int -> a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: iterateN :: Vector v a => Int -> (a -> a) -> a -> v a
+ RIO.Vector: iterateNM :: (Monad m, Vector v a) => Int -> (a -> m a) -> a -> m v a
+ RIO.Vector: izipWith :: (Vector v a, Vector v b, Vector v c) => (Int -> a -> b -> c) -> v a -> v b -> v c
+ RIO.Vector: izipWith3 :: (Vector v a, Vector v b, Vector v c, Vector v d) => (Int -> a -> b -> c -> d) -> v a -> v b -> v c -> v d
+ RIO.Vector: izipWith4 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e) => (Int -> a -> b -> c -> d -> e) -> v a -> v b -> v c -> v d -> v e
+ RIO.Vector: izipWith5 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v f) => (Int -> a -> b -> c -> d -> e -> f) -> v a -> v b -> v c -> v d -> v e -> v f
+ RIO.Vector: izipWith6 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v f, Vector v g) => (Int -> a -> b -> c -> d -> e -> f -> g) -> v a -> v b -> v c -> v d -> v e -> v f -> v g
+ RIO.Vector: izipWithM :: (Monad m, Vector v a, Vector v b, Vector v c) => (Int -> a -> b -> m c) -> v a -> v b -> m v c
+ RIO.Vector: izipWithM_ :: (Monad m, Vector v a, Vector v b) => (Int -> a -> b -> m c) -> v a -> v b -> m ()
+ RIO.Vector: length :: Vector v a => v a -> Int
+ RIO.Vector: liftReadsPrec :: Vector v a => (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS v a
+ RIO.Vector: liftShowsPrec :: Vector v a => (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> v a -> ShowS
+ RIO.Vector: map :: (Vector v a, Vector v b) => (a -> b) -> v a -> v b
+ RIO.Vector: mapM :: (Monad m, Vector v a, Vector v b) => (a -> m b) -> v a -> m v b
+ RIO.Vector: mapM_ :: (Monad m, Vector v a) => (a -> m b) -> v a -> m ()
+ RIO.Vector: mapMaybe :: (Vector v a, Vector v b) => (a -> Maybe b) -> v a -> v b
+ RIO.Vector: mkType :: String -> DataType
+ RIO.Vector: modify :: Vector v a => (forall s. () => Mutable v s a -> ST s ()) -> v a -> v a
+ RIO.Vector: new :: Vector v a => New v a -> v a
+ RIO.Vector: notElem :: (Vector v a, Eq a) => a -> v a -> Bool
+ RIO.Vector: null :: Vector v a => v a -> Bool
+ RIO.Vector: or :: Vector v Bool => v Bool -> Bool
+ RIO.Vector: partition :: Vector v a => (a -> Bool) -> v a -> (v a, v a)
+ RIO.Vector: postscanl :: (Vector v a, Vector v b) => (a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: postscanl' :: (Vector v a, Vector v b) => (a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: postscanr :: (Vector v a, Vector v b) => (a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: postscanr' :: (Vector v a, Vector v b) => (a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: prescanl :: (Vector v a, Vector v b) => (a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: prescanl' :: (Vector v a, Vector v b) => (a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: prescanr :: (Vector v a, Vector v b) => (a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: prescanr' :: (Vector v a, Vector v b) => (a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: product :: (Vector v a, Num a) => v a -> a
+ RIO.Vector: readPrec :: (Vector v a, Read a) => ReadPrec v a
+ RIO.Vector: replicate :: Vector v a => Int -> a -> v a
+ RIO.Vector: replicateM :: (Monad m, Vector v a) => Int -> m a -> m v a
+ RIO.Vector: reverse :: Vector v a => v a -> v a
+ RIO.Vector: scanl :: (Vector v a, Vector v b) => (a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: scanl' :: (Vector v a, Vector v b) => (a -> b -> a) -> a -> v b -> v a
+ RIO.Vector: scanr :: (Vector v a, Vector v b) => (a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: scanr' :: (Vector v a, Vector v b) => (a -> b -> b) -> b -> v a -> v b
+ RIO.Vector: sequence :: (Monad m, Vector v a, Vector v m a) => v m a -> m v a
+ RIO.Vector: sequence_ :: (Monad m, Vector v m a) => v m a -> m ()
+ RIO.Vector: showsPrec :: (Vector v a, Show a) => Int -> v a -> ShowS
+ RIO.Vector: singleton :: Vector v a => a -> v a
+ RIO.Vector: slice :: Vector v a => Int -> Int -> v a -> v a
+ RIO.Vector: snoc :: Vector v a => v a -> a -> v a
+ RIO.Vector: span :: Vector v a => (a -> Bool) -> v a -> (v a, v a)
+ RIO.Vector: splitAt :: Vector v a => Int -> v a -> (v a, v a)
+ RIO.Vector: stream :: Vector v a => v a -> Bundle v a
+ RIO.Vector: streamR :: Vector v a => v a -> Bundle u a
+ RIO.Vector: sum :: (Vector v a, Num a) => v a -> a
+ RIO.Vector: take :: Vector v a => Int -> v a -> v a
+ RIO.Vector: takeWhile :: Vector v a => (a -> Bool) -> v a -> v a
+ RIO.Vector: thaw :: (PrimMonad m, Vector v a) => v a -> m Mutable v PrimState m a
+ RIO.Vector: toList :: Vector v a => v a -> [a]
+ RIO.Vector: unfoldr :: Vector v a => (b -> Maybe (a, b)) -> b -> v a
+ RIO.Vector: unfoldrM :: (Monad m, Vector v a) => (b -> m Maybe (a, b)) -> b -> m v a
+ RIO.Vector: unfoldrN :: Vector v a => Int -> (b -> Maybe (a, b)) -> b -> v a
+ RIO.Vector: unfoldrNM :: (Monad m, Vector v a) => Int -> (b -> m Maybe (a, b)) -> b -> m v a
+ RIO.Vector: uniq :: (Vector v a, Eq a) => v a -> v a
+ RIO.Vector: unstablePartition :: Vector v a => (a -> Bool) -> v a -> (v a, v a)
+ RIO.Vector: unstream :: Vector v a => Bundle v a -> v a
+ RIO.Vector: unstreamR :: Vector v a => Bundle v a -> v a
+ RIO.Vector: unzip :: (Vector v a, Vector v b, Vector v (a, b)) => v (a, b) -> (v a, v b)
+ RIO.Vector: unzip3 :: (Vector v a, Vector v b, Vector v c, Vector v (a, b, c)) => v (a, b, c) -> (v a, v b, v c)
+ RIO.Vector: unzip4 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v (a, b, c, d)) => v (a, b, c, d) -> (v a, v b, v c, v d)
+ RIO.Vector: unzip5 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v (a, b, c, d, e)) => v (a, b, c, d, e) -> (v a, v b, v c, v d, v e)
+ RIO.Vector: unzip6 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v f, Vector v (a, b, c, d, e, f)) => v (a, b, c, d, e, f) -> (v a, v b, v c, v d, v e, v f)
+ RIO.Vector: zip :: (Vector v a, Vector v b, Vector v (a, b)) => v a -> v b -> v (a, b)
+ RIO.Vector: zip3 :: (Vector v a, Vector v b, Vector v c, Vector v (a, b, c)) => v a -> v b -> v c -> v (a, b, c)
+ RIO.Vector: zip4 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v (a, b, c, d)) => v a -> v b -> v c -> v d -> v (a, b, c, d)
+ RIO.Vector: zip5 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v (a, b, c, d, e)) => v a -> v b -> v c -> v d -> v e -> v (a, b, c, d, e)
+ RIO.Vector: zip6 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v f, Vector v (a, b, c, d, e, f)) => v a -> v b -> v c -> v d -> v e -> v f -> v (a, b, c, d, e, f)
+ RIO.Vector: zipWith :: (Vector v a, Vector v b, Vector v c) => (a -> b -> c) -> v a -> v b -> v c
+ RIO.Vector: zipWith3 :: (Vector v a, Vector v b, Vector v c, Vector v d) => (a -> b -> c -> d) -> v a -> v b -> v c -> v d
+ RIO.Vector: zipWith4 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e) => (a -> b -> c -> d -> e) -> v a -> v b -> v c -> v d -> v e
+ RIO.Vector: zipWith5 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v f) => (a -> b -> c -> d -> e -> f) -> v a -> v b -> v c -> v d -> v e -> v f
+ RIO.Vector: zipWith6 :: (Vector v a, Vector v b, Vector v c, Vector v d, Vector v e, Vector v f, Vector v g) => (a -> b -> c -> d -> e -> f -> g) -> v a -> v b -> v c -> v d -> v e -> v f -> v g
+ RIO.Vector: zipWithM :: (Monad m, Vector v a, Vector v b, Vector v c) => (a -> b -> m c) -> v a -> v b -> m v c
+ RIO.Vector: zipWithM_ :: (Monad m, Vector v a, Vector v b) => (a -> b -> m c) -> v a -> v b -> m ()
+ RIO.Vector.Boxed: (!?) :: () => Vector a -> Int -> Maybe a
+ RIO.Vector.Boxed: (++) :: () => Vector a -> Vector a -> Vector a
+ RIO.Vector.Boxed: all :: () => (a -> Bool) -> Vector a -> Bool
+ RIO.Vector.Boxed: and :: Vector Bool -> Bool
+ RIO.Vector.Boxed: any :: () => (a -> Bool) -> Vector a -> Bool
+ RIO.Vector.Boxed: break :: () => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Boxed: concat :: () => [Vector a] -> Vector a
+ RIO.Vector.Boxed: concatMap :: () => (a -> Vector b) -> Vector a -> Vector b
+ RIO.Vector.Boxed: cons :: () => a -> Vector a -> Vector a
+ RIO.Vector.Boxed: constructN :: () => Int -> (Vector a -> a) -> Vector a
+ RIO.Vector.Boxed: constructrN :: () => Int -> (Vector a -> a) -> Vector a
+ RIO.Vector.Boxed: convert :: (Vector v a, Vector w a) => v a -> w a
+ RIO.Vector.Boxed: copy :: PrimMonad m => MVector PrimState m a -> Vector a -> m ()
+ RIO.Vector.Boxed: create :: () => (forall s. () => ST s MVector s a) -> Vector a
+ RIO.Vector.Boxed: createT :: Traversable f => (forall s. () => ST s f MVector s a) -> f Vector a
+ RIO.Vector.Boxed: data MVector s a :: * -> * -> *
+ RIO.Vector.Boxed: data Vector a :: * -> *
+ RIO.Vector.Boxed: drop :: () => Int -> Vector a -> Vector a
+ RIO.Vector.Boxed: dropWhile :: () => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Boxed: elem :: Eq a => a -> Vector a -> Bool
+ RIO.Vector.Boxed: elemIndex :: Eq a => a -> Vector a -> Maybe Int
+ RIO.Vector.Boxed: elemIndices :: Eq a => a -> Vector a -> Vector Int
+ RIO.Vector.Boxed: empty :: () => Vector a
+ RIO.Vector.Boxed: enumFromN :: Num a => a -> Int -> Vector a
+ RIO.Vector.Boxed: enumFromStepN :: Num a => a -> a -> Int -> Vector a
+ RIO.Vector.Boxed: enumFromThenTo :: Enum a => a -> a -> a -> Vector a
+ RIO.Vector.Boxed: enumFromTo :: Enum a => a -> a -> Vector a
+ RIO.Vector.Boxed: filter :: () => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Boxed: filterM :: Monad m => (a -> m Bool) -> Vector a -> m Vector a
+ RIO.Vector.Boxed: find :: () => (a -> Bool) -> Vector a -> Maybe a
+ RIO.Vector.Boxed: findIndex :: () => (a -> Bool) -> Vector a -> Maybe Int
+ RIO.Vector.Boxed: findIndices :: () => (a -> Bool) -> Vector a -> Vector Int
+ RIO.Vector.Boxed: foldM :: Monad m => (a -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Boxed: foldM' :: Monad m => (a -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Boxed: foldM'_ :: Monad m => (a -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Boxed: foldM_ :: Monad m => (a -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Boxed: foldl :: () => (a -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Boxed: foldl' :: () => (a -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Boxed: foldr :: () => (a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Boxed: foldr' :: () => (a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Boxed: forM :: Monad m => Vector a -> (a -> m b) -> m Vector b
+ RIO.Vector.Boxed: forM_ :: Monad m => Vector a -> (a -> m b) -> m ()
+ RIO.Vector.Boxed: force :: () => Vector a -> Vector a
+ RIO.Vector.Boxed: freeze :: PrimMonad m => MVector PrimState m a -> m Vector a
+ RIO.Vector.Boxed: fromList :: () => [a] -> Vector a
+ RIO.Vector.Boxed: fromListN :: () => Int -> [a] -> Vector a
+ RIO.Vector.Boxed: generate :: () => Int -> (Int -> a) -> Vector a
+ RIO.Vector.Boxed: generateM :: Monad m => Int -> (Int -> m a) -> m Vector a
+ RIO.Vector.Boxed: ifilter :: () => (Int -> a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Boxed: ifoldM :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Boxed: ifoldM' :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Boxed: ifoldM'_ :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Boxed: ifoldM_ :: Monad m => (a -> Int -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Boxed: ifoldl :: () => (a -> Int -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Boxed: ifoldl' :: () => (a -> Int -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Boxed: ifoldr :: () => (Int -> a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Boxed: ifoldr' :: () => (Int -> a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Boxed: imap :: () => (Int -> a -> b) -> Vector a -> Vector b
+ RIO.Vector.Boxed: imapM :: Monad m => (Int -> a -> m b) -> Vector a -> m Vector b
+ RIO.Vector.Boxed: imapM_ :: Monad m => (Int -> a -> m b) -> Vector a -> m ()
+ RIO.Vector.Boxed: imapMaybe :: () => (Int -> a -> Maybe b) -> Vector a -> Vector b
+ RIO.Vector.Boxed: indexed :: () => Vector a -> Vector (Int, a)
+ RIO.Vector.Boxed: infix 4 `notElem`
+ RIO.Vector.Boxed: infixr 5 ++
+ RIO.Vector.Boxed: iscanl :: () => (Int -> a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: iscanl' :: () => (Int -> a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: iscanr :: () => (Int -> a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: iscanr' :: () => (Int -> a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: iterateN :: () => Int -> (a -> a) -> a -> Vector a
+ RIO.Vector.Boxed: iterateNM :: Monad m => Int -> (a -> m a) -> a -> m Vector a
+ RIO.Vector.Boxed: izipWith :: () => (Int -> a -> b -> c) -> Vector a -> Vector b -> Vector c
+ RIO.Vector.Boxed: izipWith3 :: () => (Int -> a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
+ RIO.Vector.Boxed: izipWith4 :: () => (Int -> a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e
+ RIO.Vector.Boxed: izipWith5 :: () => (Int -> a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f
+ RIO.Vector.Boxed: izipWith6 :: () => (Int -> a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g
+ RIO.Vector.Boxed: izipWithM :: Monad m => (Int -> a -> b -> m c) -> Vector a -> Vector b -> m Vector c
+ RIO.Vector.Boxed: izipWithM_ :: Monad m => (Int -> a -> b -> m c) -> Vector a -> Vector b -> m ()
+ RIO.Vector.Boxed: length :: () => Vector a -> Int
+ RIO.Vector.Boxed: map :: () => (a -> b) -> Vector a -> Vector b
+ RIO.Vector.Boxed: mapM :: Monad m => (a -> m b) -> Vector a -> m Vector b
+ RIO.Vector.Boxed: mapM_ :: Monad m => (a -> m b) -> Vector a -> m ()
+ RIO.Vector.Boxed: mapMaybe :: () => (a -> Maybe b) -> Vector a -> Vector b
+ RIO.Vector.Boxed: modify :: () => (forall s. () => MVector s a -> ST s ()) -> Vector a -> Vector a
+ RIO.Vector.Boxed: notElem :: Eq a => a -> Vector a -> Bool
+ RIO.Vector.Boxed: null :: () => Vector a -> Bool
+ RIO.Vector.Boxed: or :: Vector Bool -> Bool
+ RIO.Vector.Boxed: partition :: () => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Boxed: postscanl :: () => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: postscanl' :: () => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: postscanr :: () => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: postscanr' :: () => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: prescanl :: () => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: prescanl' :: () => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: prescanr :: () => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: prescanr' :: () => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: product :: Num a => Vector a -> a
+ RIO.Vector.Boxed: replicate :: () => Int -> a -> Vector a
+ RIO.Vector.Boxed: replicateM :: Monad m => Int -> m a -> m Vector a
+ RIO.Vector.Boxed: reverse :: () => Vector a -> Vector a
+ RIO.Vector.Boxed: scanl :: () => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: scanl' :: () => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Boxed: scanr :: () => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: scanr' :: () => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Boxed: sequence :: Monad m => Vector m a -> m Vector a
+ RIO.Vector.Boxed: sequence_ :: Monad m => Vector m a -> m ()
+ RIO.Vector.Boxed: singleton :: () => a -> Vector a
+ RIO.Vector.Boxed: slice :: () => Int -> Int -> Vector a -> Vector a
+ RIO.Vector.Boxed: snoc :: () => Vector a -> a -> Vector a
+ RIO.Vector.Boxed: span :: () => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Boxed: splitAt :: () => Int -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Boxed: sum :: Num a => Vector a -> a
+ RIO.Vector.Boxed: take :: () => Int -> Vector a -> Vector a
+ RIO.Vector.Boxed: takeWhile :: () => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Boxed: thaw :: PrimMonad m => Vector a -> m MVector PrimState m a
+ RIO.Vector.Boxed: toList :: () => Vector a -> [a]
+ RIO.Vector.Boxed: unfoldr :: () => (b -> Maybe (a, b)) -> b -> Vector a
+ RIO.Vector.Boxed: unfoldrM :: Monad m => (b -> m Maybe (a, b)) -> b -> m Vector a
+ RIO.Vector.Boxed: unfoldrN :: () => Int -> (b -> Maybe (a, b)) -> b -> Vector a
+ RIO.Vector.Boxed: unfoldrNM :: Monad m => Int -> (b -> m Maybe (a, b)) -> b -> m Vector a
+ RIO.Vector.Boxed: uniq :: Eq a => Vector a -> Vector a
+ RIO.Vector.Boxed: unstablePartition :: () => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Boxed: unzip :: () => Vector (a, b) -> (Vector a, Vector b)
+ RIO.Vector.Boxed: unzip3 :: () => Vector (a, b, c) -> (Vector a, Vector b, Vector c)
+ RIO.Vector.Boxed: unzip4 :: () => Vector (a, b, c, d) -> (Vector a, Vector b, Vector c, Vector d)
+ RIO.Vector.Boxed: unzip5 :: () => Vector (a, b, c, d, e) -> (Vector a, Vector b, Vector c, Vector d, Vector e)
+ RIO.Vector.Boxed: unzip6 :: () => Vector (a, b, c, d, e, f) -> (Vector a, Vector b, Vector c, Vector d, Vector e, Vector f)
+ RIO.Vector.Boxed: zip :: () => Vector a -> Vector b -> Vector (a, b)
+ RIO.Vector.Boxed: zip3 :: () => Vector a -> Vector b -> Vector c -> Vector (a, b, c)
+ RIO.Vector.Boxed: zip4 :: () => Vector a -> Vector b -> Vector c -> Vector d -> Vector (a, b, c, d)
+ RIO.Vector.Boxed: zip5 :: () => Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector (a, b, c, d, e)
+ RIO.Vector.Boxed: zip6 :: () => Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector (a, b, c, d, e, f)
+ RIO.Vector.Boxed: zipWith :: () => (a -> b -> c) -> Vector a -> Vector b -> Vector c
+ RIO.Vector.Boxed: zipWith3 :: () => (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
+ RIO.Vector.Boxed: zipWith4 :: () => (a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e
+ RIO.Vector.Boxed: zipWith5 :: () => (a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f
+ RIO.Vector.Boxed: zipWith6 :: () => (a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g
+ RIO.Vector.Boxed: zipWithM :: Monad m => (a -> b -> m c) -> Vector a -> Vector b -> m Vector c
+ RIO.Vector.Boxed: zipWithM_ :: Monad m => (a -> b -> m c) -> Vector a -> Vector b -> m ()
+ RIO.Vector.Boxed.Partial: (!) :: () => Vector a -> Int -> a
+ RIO.Vector.Boxed.Partial: (//) :: () => Vector a -> [(Int, a)] -> Vector a
+ RIO.Vector.Boxed.Partial: accum :: () => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
+ RIO.Vector.Boxed.Partial: accumulate :: () => (a -> b -> a) -> Vector a -> Vector (Int, b) -> Vector a
+ RIO.Vector.Boxed.Partial: accumulate_ :: () => (a -> b -> a) -> Vector a -> Vector Int -> Vector b -> Vector a
+ RIO.Vector.Boxed.Partial: backpermute :: () => Vector a -> Vector Int -> Vector a
+ RIO.Vector.Boxed.Partial: fold1M :: Monad m => (a -> a -> m a) -> Vector a -> m a
+ RIO.Vector.Boxed.Partial: fold1M' :: Monad m => (a -> a -> m a) -> Vector a -> m a
+ RIO.Vector.Boxed.Partial: fold1M'_ :: Monad m => (a -> a -> m a) -> Vector a -> m ()
+ RIO.Vector.Boxed.Partial: fold1M_ :: Monad m => (a -> a -> m a) -> Vector a -> m ()
+ RIO.Vector.Boxed.Partial: foldl1 :: () => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Boxed.Partial: foldl1' :: () => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Boxed.Partial: foldr1 :: () => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Boxed.Partial: foldr1' :: () => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Boxed.Partial: head :: () => Vector a -> a
+ RIO.Vector.Boxed.Partial: headM :: Monad m => Vector a -> m a
+ RIO.Vector.Boxed.Partial: indexM :: Monad m => Vector a -> Int -> m a
+ RIO.Vector.Boxed.Partial: init :: () => Vector a -> Vector a
+ RIO.Vector.Boxed.Partial: last :: () => Vector a -> a
+ RIO.Vector.Boxed.Partial: lastM :: Monad m => Vector a -> m a
+ RIO.Vector.Boxed.Partial: maxIndex :: Ord a => Vector a -> Int
+ RIO.Vector.Boxed.Partial: maxIndexBy :: () => (a -> a -> Ordering) -> Vector a -> Int
+ RIO.Vector.Boxed.Partial: maximum :: Ord a => Vector a -> a
+ RIO.Vector.Boxed.Partial: maximumBy :: () => (a -> a -> Ordering) -> Vector a -> a
+ RIO.Vector.Boxed.Partial: minIndex :: Ord a => Vector a -> Int
+ RIO.Vector.Boxed.Partial: minIndexBy :: () => (a -> a -> Ordering) -> Vector a -> Int
+ RIO.Vector.Boxed.Partial: minimum :: Ord a => Vector a -> a
+ RIO.Vector.Boxed.Partial: minimumBy :: () => (a -> a -> Ordering) -> Vector a -> a
+ RIO.Vector.Boxed.Partial: scanl1 :: () => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Boxed.Partial: scanl1' :: () => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Boxed.Partial: scanr1 :: () => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Boxed.Partial: scanr1' :: () => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Boxed.Partial: tail :: () => Vector a -> Vector a
+ RIO.Vector.Boxed.Partial: update :: () => Vector a -> Vector (Int, a) -> Vector a
+ RIO.Vector.Boxed.Partial: update_ :: () => Vector a -> Vector Int -> Vector a -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeAccum :: () => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeAccumulate :: () => (a -> b -> a) -> Vector a -> Vector (Int, b) -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeAccumulate_ :: () => (a -> b -> a) -> Vector a -> Vector Int -> Vector b -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeBackpermute :: () => Vector a -> Vector Int -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeCopy :: PrimMonad m => MVector PrimState m a -> Vector a -> m ()
+ RIO.Vector.Boxed.Unsafe: unsafeDrop :: () => Int -> Vector a -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeFreeze :: PrimMonad m => MVector PrimState m a -> m Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeHead :: () => Vector a -> a
+ RIO.Vector.Boxed.Unsafe: unsafeHeadM :: Monad m => Vector a -> m a
+ RIO.Vector.Boxed.Unsafe: unsafeIndex :: () => Vector a -> Int -> a
+ RIO.Vector.Boxed.Unsafe: unsafeIndexM :: Monad m => Vector a -> Int -> m a
+ RIO.Vector.Boxed.Unsafe: unsafeInit :: () => Vector a -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeLast :: () => Vector a -> a
+ RIO.Vector.Boxed.Unsafe: unsafeLastM :: Monad m => Vector a -> m a
+ RIO.Vector.Boxed.Unsafe: unsafeSlice :: () => Int -> Int -> Vector a -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeTail :: () => Vector a -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeTake :: () => Int -> Vector a -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeThaw :: PrimMonad m => Vector a -> m MVector PrimState m a
+ RIO.Vector.Boxed.Unsafe: unsafeUpd :: () => Vector a -> [(Int, a)] -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeUpdate :: () => Vector a -> Vector (Int, a) -> Vector a
+ RIO.Vector.Boxed.Unsafe: unsafeUpdate_ :: () => Vector a -> Vector Int -> Vector a -> Vector a
+ RIO.Vector.Partial: (!) :: Vector v a => v a -> Int -> a
+ RIO.Vector.Partial: (//) :: Vector v a => v a -> [(Int, a)] -> v a
+ RIO.Vector.Partial: accum :: Vector v a => (a -> b -> a) -> v a -> [(Int, b)] -> v a
+ RIO.Vector.Partial: accumulate :: (Vector v a, Vector v (Int, b)) => (a -> b -> a) -> v a -> v (Int, b) -> v a
+ RIO.Vector.Partial: accumulate_ :: (Vector v a, Vector v Int, Vector v b) => (a -> b -> a) -> v a -> v Int -> v b -> v a
+ RIO.Vector.Partial: backpermute :: (Vector v a, Vector v Int) => v a -> v Int -> v a
+ RIO.Vector.Partial: fold1M :: (Monad m, Vector v a) => (a -> a -> m a) -> v a -> m a
+ RIO.Vector.Partial: fold1M' :: (Monad m, Vector v a) => (a -> a -> m a) -> v a -> m a
+ RIO.Vector.Partial: fold1M'_ :: (Monad m, Vector v a) => (a -> a -> m a) -> v a -> m ()
+ RIO.Vector.Partial: fold1M_ :: (Monad m, Vector v a) => (a -> a -> m a) -> v a -> m ()
+ RIO.Vector.Partial: foldl1 :: Vector v a => (a -> a -> a) -> v a -> a
+ RIO.Vector.Partial: foldl1' :: Vector v a => (a -> a -> a) -> v a -> a
+ RIO.Vector.Partial: foldr1 :: Vector v a => (a -> a -> a) -> v a -> a
+ RIO.Vector.Partial: foldr1' :: Vector v a => (a -> a -> a) -> v a -> a
+ RIO.Vector.Partial: head :: Vector v a => v a -> a
+ RIO.Vector.Partial: headM :: (Vector v a, Monad m) => v a -> m a
+ RIO.Vector.Partial: indexM :: (Vector v a, Monad m) => v a -> Int -> m a
+ RIO.Vector.Partial: infixl 9 !
+ RIO.Vector.Partial: init :: Vector v a => v a -> v a
+ RIO.Vector.Partial: last :: Vector v a => v a -> a
+ RIO.Vector.Partial: lastM :: (Vector v a, Monad m) => v a -> m a
+ RIO.Vector.Partial: maxIndex :: (Vector v a, Ord a) => v a -> Int
+ RIO.Vector.Partial: maxIndexBy :: Vector v a => (a -> a -> Ordering) -> v a -> Int
+ RIO.Vector.Partial: maximum :: (Vector v a, Ord a) => v a -> a
+ RIO.Vector.Partial: maximumBy :: Vector v a => (a -> a -> Ordering) -> v a -> a
+ RIO.Vector.Partial: minIndex :: (Vector v a, Ord a) => v a -> Int
+ RIO.Vector.Partial: minIndexBy :: Vector v a => (a -> a -> Ordering) -> v a -> Int
+ RIO.Vector.Partial: minimum :: (Vector v a, Ord a) => v a -> a
+ RIO.Vector.Partial: minimumBy :: Vector v a => (a -> a -> Ordering) -> v a -> a
+ RIO.Vector.Partial: scanl1 :: Vector v a => (a -> a -> a) -> v a -> v a
+ RIO.Vector.Partial: scanl1' :: Vector v a => (a -> a -> a) -> v a -> v a
+ RIO.Vector.Partial: scanr1 :: Vector v a => (a -> a -> a) -> v a -> v a
+ RIO.Vector.Partial: scanr1' :: Vector v a => (a -> a -> a) -> v a -> v a
+ RIO.Vector.Partial: tail :: Vector v a => v a -> v a
+ RIO.Vector.Partial: update :: (Vector v a, Vector v (Int, a)) => v a -> v (Int, a) -> v a
+ RIO.Vector.Partial: update_ :: (Vector v a, Vector v Int) => v a -> v Int -> v a -> v a
+ RIO.Vector.Storable: (!?) :: Storable a => Vector a -> Int -> Maybe a
+ RIO.Vector.Storable: (++) :: Storable a => Vector a -> Vector a -> Vector a
+ RIO.Vector.Storable: MVector :: {-# UNPACK #-} !Int -> {-# UNPACK #-} !ForeignPtr a -> MVector s a
+ RIO.Vector.Storable: all :: Storable a => (a -> Bool) -> Vector a -> Bool
+ RIO.Vector.Storable: and :: Vector Bool -> Bool
+ RIO.Vector.Storable: any :: Storable a => (a -> Bool) -> Vector a -> Bool
+ RIO.Vector.Storable: break :: Storable a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Storable: class Storable a
+ RIO.Vector.Storable: concat :: Storable a => [Vector a] -> Vector a
+ RIO.Vector.Storable: concatMap :: (Storable a, Storable b) => (a -> Vector b) -> Vector a -> Vector b
+ RIO.Vector.Storable: cons :: Storable a => a -> Vector a -> Vector a
+ RIO.Vector.Storable: constructN :: Storable a => Int -> (Vector a -> a) -> Vector a
+ RIO.Vector.Storable: constructrN :: Storable a => Int -> (Vector a -> a) -> Vector a
+ RIO.Vector.Storable: convert :: (Vector v a, Vector w a) => v a -> w a
+ RIO.Vector.Storable: copy :: (Storable a, PrimMonad m) => MVector PrimState m a -> Vector a -> m ()
+ RIO.Vector.Storable: create :: Storable a => (forall s. () => ST s MVector s a) -> Vector a
+ RIO.Vector.Storable: createT :: (Traversable f, Storable a) => (forall s. () => ST s f MVector s a) -> f Vector a
+ RIO.Vector.Storable: data MVector s a :: * -> * -> *
+ RIO.Vector.Storable: data Vector a :: * -> *
+ RIO.Vector.Storable: drop :: Storable a => Int -> Vector a -> Vector a
+ RIO.Vector.Storable: dropWhile :: Storable a => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Storable: elem :: (Storable a, Eq a) => a -> Vector a -> Bool
+ RIO.Vector.Storable: elemIndex :: (Storable a, Eq a) => a -> Vector a -> Maybe Int
+ RIO.Vector.Storable: elemIndices :: (Storable a, Eq a) => a -> Vector a -> Vector Int
+ RIO.Vector.Storable: empty :: Storable a => Vector a
+ RIO.Vector.Storable: enumFromN :: (Storable a, Num a) => a -> Int -> Vector a
+ RIO.Vector.Storable: enumFromStepN :: (Storable a, Num a) => a -> a -> Int -> Vector a
+ RIO.Vector.Storable: enumFromThenTo :: (Storable a, Enum a) => a -> a -> a -> Vector a
+ RIO.Vector.Storable: enumFromTo :: (Storable a, Enum a) => a -> a -> Vector a
+ RIO.Vector.Storable: filter :: Storable a => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Storable: filterM :: (Monad m, Storable a) => (a -> m Bool) -> Vector a -> m Vector a
+ RIO.Vector.Storable: find :: Storable a => (a -> Bool) -> Vector a -> Maybe a
+ RIO.Vector.Storable: findIndex :: Storable a => (a -> Bool) -> Vector a -> Maybe Int
+ RIO.Vector.Storable: findIndices :: Storable a => (a -> Bool) -> Vector a -> Vector Int
+ RIO.Vector.Storable: foldM :: (Monad m, Storable b) => (a -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Storable: foldM' :: (Monad m, Storable b) => (a -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Storable: foldM'_ :: (Monad m, Storable b) => (a -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Storable: foldM_ :: (Monad m, Storable b) => (a -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Storable: foldl :: Storable b => (a -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Storable: foldl' :: Storable b => (a -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Storable: foldr :: Storable a => (a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Storable: foldr' :: Storable a => (a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Storable: forM :: (Monad m, Storable a, Storable b) => Vector a -> (a -> m b) -> m Vector b
+ RIO.Vector.Storable: forM_ :: (Monad m, Storable a) => Vector a -> (a -> m b) -> m ()
+ RIO.Vector.Storable: force :: Storable a => Vector a -> Vector a
+ RIO.Vector.Storable: freeze :: (Storable a, PrimMonad m) => MVector PrimState m a -> m Vector a
+ RIO.Vector.Storable: fromList :: Storable a => [a] -> Vector a
+ RIO.Vector.Storable: fromListN :: Storable a => Int -> [a] -> Vector a
+ RIO.Vector.Storable: generate :: Storable a => Int -> (Int -> a) -> Vector a
+ RIO.Vector.Storable: generateM :: (Monad m, Storable a) => Int -> (Int -> m a) -> m Vector a
+ RIO.Vector.Storable: ifilter :: Storable a => (Int -> a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Storable: ifoldl :: Storable b => (a -> Int -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Storable: ifoldl' :: Storable b => (a -> Int -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Storable: ifoldr :: Storable a => (Int -> a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Storable: ifoldr' :: Storable a => (Int -> a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Storable: imap :: (Storable a, Storable b) => (Int -> a -> b) -> Vector a -> Vector b
+ RIO.Vector.Storable: imapMaybe :: (Storable a, Storable b) => (Int -> a -> Maybe b) -> Vector a -> Vector b
+ RIO.Vector.Storable: infix 4 `notElem`
+ RIO.Vector.Storable: infixr 5 ++
+ RIO.Vector.Storable: iterateN :: Storable a => Int -> (a -> a) -> a -> Vector a
+ RIO.Vector.Storable: iterateNM :: (Monad m, Storable a) => Int -> (a -> m a) -> a -> m Vector a
+ RIO.Vector.Storable: izipWith :: (Storable a, Storable b, Storable c) => (Int -> a -> b -> c) -> Vector a -> Vector b -> Vector c
+ RIO.Vector.Storable: izipWith3 :: (Storable a, Storable b, Storable c, Storable d) => (Int -> a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
+ RIO.Vector.Storable: izipWith4 :: (Storable a, Storable b, Storable c, Storable d, Storable e) => (Int -> a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e
+ RIO.Vector.Storable: izipWith5 :: (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f) => (Int -> a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f
+ RIO.Vector.Storable: izipWith6 :: (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f, Storable g) => (Int -> a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g
+ RIO.Vector.Storable: length :: Storable a => Vector a -> Int
+ RIO.Vector.Storable: map :: (Storable a, Storable b) => (a -> b) -> Vector a -> Vector b
+ RIO.Vector.Storable: mapM :: (Monad m, Storable a, Storable b) => (a -> m b) -> Vector a -> m Vector b
+ RIO.Vector.Storable: mapM_ :: (Monad m, Storable a) => (a -> m b) -> Vector a -> m ()
+ RIO.Vector.Storable: mapMaybe :: (Storable a, Storable b) => (a -> Maybe b) -> Vector a -> Vector b
+ RIO.Vector.Storable: modify :: Storable a => (forall s. () => MVector s a -> ST s ()) -> Vector a -> Vector a
+ RIO.Vector.Storable: notElem :: (Storable a, Eq a) => a -> Vector a -> Bool
+ RIO.Vector.Storable: null :: Storable a => Vector a -> Bool
+ RIO.Vector.Storable: or :: Vector Bool -> Bool
+ RIO.Vector.Storable: partition :: Storable a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Storable: postscanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Storable: postscanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Storable: postscanr :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Storable: postscanr' :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Storable: prescanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Storable: prescanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Storable: prescanr :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Storable: prescanr' :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Storable: product :: (Storable a, Num a) => Vector a -> a
+ RIO.Vector.Storable: replicate :: Storable a => Int -> a -> Vector a
+ RIO.Vector.Storable: replicateM :: (Monad m, Storable a) => Int -> m a -> m Vector a
+ RIO.Vector.Storable: reverse :: Storable a => Vector a -> Vector a
+ RIO.Vector.Storable: scanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Storable: scanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Storable: scanr :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Storable: scanr' :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Storable: singleton :: Storable a => a -> Vector a
+ RIO.Vector.Storable: slice :: Storable a => Int -> Int -> Vector a -> Vector a
+ RIO.Vector.Storable: snoc :: Storable a => Vector a -> a -> Vector a
+ RIO.Vector.Storable: span :: Storable a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Storable: splitAt :: Storable a => Int -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Storable: sum :: (Storable a, Num a) => Vector a -> a
+ RIO.Vector.Storable: take :: Storable a => Int -> Vector a -> Vector a
+ RIO.Vector.Storable: takeWhile :: Storable a => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Storable: thaw :: (Storable a, PrimMonad m) => Vector a -> m MVector PrimState m a
+ RIO.Vector.Storable: toList :: Storable a => Vector a -> [a]
+ RIO.Vector.Storable: unfoldr :: Storable a => (b -> Maybe (a, b)) -> b -> Vector a
+ RIO.Vector.Storable: unfoldrM :: (Monad m, Storable a) => (b -> m Maybe (a, b)) -> b -> m Vector a
+ RIO.Vector.Storable: unfoldrN :: Storable a => Int -> (b -> Maybe (a, b)) -> b -> Vector a
+ RIO.Vector.Storable: unfoldrNM :: (Monad m, Storable a) => Int -> (b -> m Maybe (a, b)) -> b -> m Vector a
+ RIO.Vector.Storable: uniq :: (Storable a, Eq a) => Vector a -> Vector a
+ RIO.Vector.Storable: unstablePartition :: Storable a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Storable: zipWith :: (Storable a, Storable b, Storable c) => (a -> b -> c) -> Vector a -> Vector b -> Vector c
+ RIO.Vector.Storable: zipWith3 :: (Storable a, Storable b, Storable c, Storable d) => (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
+ RIO.Vector.Storable: zipWith4 :: (Storable a, Storable b, Storable c, Storable d, Storable e) => (a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e
+ RIO.Vector.Storable: zipWith5 :: (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f) => (a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f
+ RIO.Vector.Storable: zipWith6 :: (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f, Storable g) => (a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g
+ RIO.Vector.Storable: zipWithM :: (Monad m, Storable a, Storable b, Storable c) => (a -> b -> m c) -> Vector a -> Vector b -> m Vector c
+ RIO.Vector.Storable: zipWithM_ :: (Monad m, Storable a, Storable b) => (a -> b -> m c) -> Vector a -> Vector b -> m ()
+ RIO.Vector.Storable.Partial: (!) :: Storable a => Vector a -> Int -> a
+ RIO.Vector.Storable.Partial: (//) :: Storable a => Vector a -> [(Int, a)] -> Vector a
+ RIO.Vector.Storable.Partial: accum :: Storable a => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
+ RIO.Vector.Storable.Partial: accumulate_ :: (Storable a, Storable b) => (a -> b -> a) -> Vector a -> Vector Int -> Vector b -> Vector a
+ RIO.Vector.Storable.Partial: backpermute :: Storable a => Vector a -> Vector Int -> Vector a
+ RIO.Vector.Storable.Partial: fold1M :: (Monad m, Storable a) => (a -> a -> m a) -> Vector a -> m a
+ RIO.Vector.Storable.Partial: fold1M' :: (Monad m, Storable a) => (a -> a -> m a) -> Vector a -> m a
+ RIO.Vector.Storable.Partial: fold1M'_ :: (Monad m, Storable a) => (a -> a -> m a) -> Vector a -> m ()
+ RIO.Vector.Storable.Partial: fold1M_ :: (Monad m, Storable a) => (a -> a -> m a) -> Vector a -> m ()
+ RIO.Vector.Storable.Partial: foldl1 :: Storable a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Storable.Partial: foldl1' :: Storable a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Storable.Partial: foldr1 :: Storable a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Storable.Partial: foldr1' :: Storable a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Storable.Partial: head :: Storable a => Vector a -> a
+ RIO.Vector.Storable.Partial: headM :: (Storable a, Monad m) => Vector a -> m a
+ RIO.Vector.Storable.Partial: indexM :: (Storable a, Monad m) => Vector a -> Int -> m a
+ RIO.Vector.Storable.Partial: init :: Storable a => Vector a -> Vector a
+ RIO.Vector.Storable.Partial: last :: Storable a => Vector a -> a
+ RIO.Vector.Storable.Partial: lastM :: (Storable a, Monad m) => Vector a -> m a
+ RIO.Vector.Storable.Partial: maxIndex :: (Storable a, Ord a) => Vector a -> Int
+ RIO.Vector.Storable.Partial: maxIndexBy :: Storable a => (a -> a -> Ordering) -> Vector a -> Int
+ RIO.Vector.Storable.Partial: maximum :: (Storable a, Ord a) => Vector a -> a
+ RIO.Vector.Storable.Partial: maximumBy :: Storable a => (a -> a -> Ordering) -> Vector a -> a
+ RIO.Vector.Storable.Partial: minIndex :: (Storable a, Ord a) => Vector a -> Int
+ RIO.Vector.Storable.Partial: minIndexBy :: Storable a => (a -> a -> Ordering) -> Vector a -> Int
+ RIO.Vector.Storable.Partial: minimum :: (Storable a, Ord a) => Vector a -> a
+ RIO.Vector.Storable.Partial: minimumBy :: Storable a => (a -> a -> Ordering) -> Vector a -> a
+ RIO.Vector.Storable.Partial: scanl1 :: Storable a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Storable.Partial: scanl1' :: Storable a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Storable.Partial: scanr1 :: Storable a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Storable.Partial: scanr1' :: Storable a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Storable.Partial: tail :: Storable a => Vector a -> Vector a
+ RIO.Vector.Storable.Partial: update_ :: Storable a => Vector a -> Vector Int -> Vector a -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeAccum :: Storable a => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeAccumulate_ :: (Storable a, Storable b) => (a -> b -> a) -> Vector a -> Vector Int -> Vector b -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeBackpermute :: Storable a => Vector a -> Vector Int -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeCopy :: (Storable a, PrimMonad m) => MVector PrimState m a -> Vector a -> m ()
+ RIO.Vector.Storable.Unsafe: unsafeDrop :: Storable a => Int -> Vector a -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeFreeze :: (Storable a, PrimMonad m) => MVector PrimState m a -> m Vector a
+ RIO.Vector.Storable.Unsafe: unsafeFromForeignPtr :: Storable a => ForeignPtr a -> Int -> Int -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeFromForeignPtr0 :: Storable a => ForeignPtr a -> Int -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeHead :: Storable a => Vector a -> a
+ RIO.Vector.Storable.Unsafe: unsafeHeadM :: (Storable a, Monad m) => Vector a -> m a
+ RIO.Vector.Storable.Unsafe: unsafeIndex :: Storable a => Vector a -> Int -> a
+ RIO.Vector.Storable.Unsafe: unsafeIndexM :: (Storable a, Monad m) => Vector a -> Int -> m a
+ RIO.Vector.Storable.Unsafe: unsafeInit :: Storable a => Vector a -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeLast :: Storable a => Vector a -> a
+ RIO.Vector.Storable.Unsafe: unsafeLastM :: (Storable a, Monad m) => Vector a -> m a
+ RIO.Vector.Storable.Unsafe: unsafeSlice :: Storable a => Int -> Int -> Vector a -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeTail :: Storable a => Vector a -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeTake :: Storable a => Int -> Vector a -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeThaw :: (Storable a, PrimMonad m) => Vector a -> m MVector PrimState m a
+ RIO.Vector.Storable.Unsafe: unsafeToForeignPtr :: Storable a => Vector a -> (ForeignPtr a, Int, Int)
+ RIO.Vector.Storable.Unsafe: unsafeToForeignPtr0 :: Storable a => Vector a -> (ForeignPtr a, Int)
+ RIO.Vector.Storable.Unsafe: unsafeUpd :: Storable a => Vector a -> [(Int, a)] -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeUpdate_ :: Storable a => Vector a -> Vector Int -> Vector a -> Vector a
+ RIO.Vector.Storable.Unsafe: unsafeWith :: (MonadUnliftIO m, Storable a) => Vector a -> (Ptr a -> m b) -> m b
+ RIO.Vector.Unboxed: (!?) :: Unbox a => Vector a -> Int -> Maybe a
+ RIO.Vector.Unboxed: (++) :: Unbox a => Vector a -> Vector a -> Vector a
+ RIO.Vector.Unboxed: all :: Unbox a => (a -> Bool) -> Vector a -> Bool
+ RIO.Vector.Unboxed: and :: Vector Bool -> Bool
+ RIO.Vector.Unboxed: any :: Unbox a => (a -> Bool) -> Vector a -> Bool
+ RIO.Vector.Unboxed: break :: Unbox a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Unboxed: class (Vector Vector a, MVector MVector a) => Unbox a
+ RIO.Vector.Unboxed: concat :: Unbox a => [Vector a] -> Vector a
+ RIO.Vector.Unboxed: concatMap :: (Unbox a, Unbox b) => (a -> Vector b) -> Vector a -> Vector b
+ RIO.Vector.Unboxed: cons :: Unbox a => a -> Vector a -> Vector a
+ RIO.Vector.Unboxed: constructN :: Unbox a => Int -> (Vector a -> a) -> Vector a
+ RIO.Vector.Unboxed: constructrN :: Unbox a => Int -> (Vector a -> a) -> Vector a
+ RIO.Vector.Unboxed: convert :: (Vector v a, Vector w a) => v a -> w a
+ RIO.Vector.Unboxed: copy :: (Unbox a, PrimMonad m) => MVector PrimState m a -> Vector a -> m ()
+ RIO.Vector.Unboxed: create :: Unbox a => (forall s. () => ST s MVector s a) -> Vector a
+ RIO.Vector.Unboxed: createT :: (Traversable f, Unbox a) => (forall s. () => ST s f MVector s a) -> f Vector a
+ RIO.Vector.Unboxed: drop :: Unbox a => Int -> Vector a -> Vector a
+ RIO.Vector.Unboxed: dropWhile :: Unbox a => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Unboxed: elem :: (Unbox a, Eq a) => a -> Vector a -> Bool
+ RIO.Vector.Unboxed: elemIndex :: (Unbox a, Eq a) => a -> Vector a -> Maybe Int
+ RIO.Vector.Unboxed: elemIndices :: (Unbox a, Eq a) => a -> Vector a -> Vector Int
+ RIO.Vector.Unboxed: empty :: Unbox a => Vector a
+ RIO.Vector.Unboxed: enumFromN :: (Unbox a, Num a) => a -> Int -> Vector a
+ RIO.Vector.Unboxed: enumFromStepN :: (Unbox a, Num a) => a -> a -> Int -> Vector a
+ RIO.Vector.Unboxed: enumFromThenTo :: (Unbox a, Enum a) => a -> a -> a -> Vector a
+ RIO.Vector.Unboxed: enumFromTo :: (Unbox a, Enum a) => a -> a -> Vector a
+ RIO.Vector.Unboxed: filter :: Unbox a => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Unboxed: filterM :: (Monad m, Unbox a) => (a -> m Bool) -> Vector a -> m Vector a
+ RIO.Vector.Unboxed: find :: Unbox a => (a -> Bool) -> Vector a -> Maybe a
+ RIO.Vector.Unboxed: findIndex :: Unbox a => (a -> Bool) -> Vector a -> Maybe Int
+ RIO.Vector.Unboxed: findIndices :: Unbox a => (a -> Bool) -> Vector a -> Vector Int
+ RIO.Vector.Unboxed: foldM :: (Monad m, Unbox b) => (a -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Unboxed: foldM' :: (Monad m, Unbox b) => (a -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Unboxed: foldM'_ :: (Monad m, Unbox b) => (a -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Unboxed: foldM_ :: (Monad m, Unbox b) => (a -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Unboxed: foldl :: Unbox b => (a -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Unboxed: foldl' :: Unbox b => (a -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Unboxed: foldr :: Unbox a => (a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Unboxed: foldr' :: Unbox a => (a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Unboxed: forM :: (Monad m, Unbox a, Unbox b) => Vector a -> (a -> m b) -> m Vector b
+ RIO.Vector.Unboxed: forM_ :: (Monad m, Unbox a) => Vector a -> (a -> m b) -> m ()
+ RIO.Vector.Unboxed: force :: Unbox a => Vector a -> Vector a
+ RIO.Vector.Unboxed: freeze :: (Unbox a, PrimMonad m) => MVector PrimState m a -> m Vector a
+ RIO.Vector.Unboxed: fromList :: Unbox a => [a] -> Vector a
+ RIO.Vector.Unboxed: fromListN :: Unbox a => Int -> [a] -> Vector a
+ RIO.Vector.Unboxed: generate :: Unbox a => Int -> (Int -> a) -> Vector a
+ RIO.Vector.Unboxed: generateM :: (Monad m, Unbox a) => Int -> (Int -> m a) -> m Vector a
+ RIO.Vector.Unboxed: ifilter :: Unbox a => (Int -> a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Unboxed: ifoldM :: (Monad m, Unbox b) => (a -> Int -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Unboxed: ifoldM' :: (Monad m, Unbox b) => (a -> Int -> b -> m a) -> a -> Vector b -> m a
+ RIO.Vector.Unboxed: ifoldM'_ :: (Monad m, Unbox b) => (a -> Int -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Unboxed: ifoldM_ :: (Monad m, Unbox b) => (a -> Int -> b -> m a) -> a -> Vector b -> m ()
+ RIO.Vector.Unboxed: ifoldl :: Unbox b => (a -> Int -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Unboxed: ifoldl' :: Unbox b => (a -> Int -> b -> a) -> a -> Vector b -> a
+ RIO.Vector.Unboxed: ifoldr :: Unbox a => (Int -> a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Unboxed: ifoldr' :: Unbox a => (Int -> a -> b -> b) -> b -> Vector a -> b
+ RIO.Vector.Unboxed: imap :: (Unbox a, Unbox b) => (Int -> a -> b) -> Vector a -> Vector b
+ RIO.Vector.Unboxed: imapM :: (Monad m, Unbox a, Unbox b) => (Int -> a -> m b) -> Vector a -> m Vector b
+ RIO.Vector.Unboxed: imapM_ :: (Monad m, Unbox a) => (Int -> a -> m b) -> Vector a -> m ()
+ RIO.Vector.Unboxed: imapMaybe :: (Unbox a, Unbox b) => (Int -> a -> Maybe b) -> Vector a -> Vector b
+ RIO.Vector.Unboxed: indexed :: Unbox a => Vector a -> Vector (Int, a)
+ RIO.Vector.Unboxed: infix 4 `notElem`
+ RIO.Vector.Unboxed: infixr 5 ++
+ RIO.Vector.Unboxed: iterateN :: Unbox a => Int -> (a -> a) -> a -> Vector a
+ RIO.Vector.Unboxed: iterateNM :: (Monad m, Unbox a) => Int -> (a -> m a) -> a -> m Vector a
+ RIO.Vector.Unboxed: izipWith :: (Unbox a, Unbox b, Unbox c) => (Int -> a -> b -> c) -> Vector a -> Vector b -> Vector c
+ RIO.Vector.Unboxed: izipWith3 :: (Unbox a, Unbox b, Unbox c, Unbox d) => (Int -> a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
+ RIO.Vector.Unboxed: izipWith4 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => (Int -> a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e
+ RIO.Vector.Unboxed: izipWith5 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => (Int -> a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f
+ RIO.Vector.Unboxed: izipWith6 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f, Unbox g) => (Int -> a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g
+ RIO.Vector.Unboxed: izipWithM :: (Monad m, Unbox a, Unbox b, Unbox c) => (Int -> a -> b -> m c) -> Vector a -> Vector b -> m Vector c
+ RIO.Vector.Unboxed: izipWithM_ :: (Monad m, Unbox a, Unbox b) => (Int -> a -> b -> m c) -> Vector a -> Vector b -> m ()
+ RIO.Vector.Unboxed: length :: Unbox a => Vector a -> Int
+ RIO.Vector.Unboxed: map :: (Unbox a, Unbox b) => (a -> b) -> Vector a -> Vector b
+ RIO.Vector.Unboxed: mapM :: (Monad m, Unbox a, Unbox b) => (a -> m b) -> Vector a -> m Vector b
+ RIO.Vector.Unboxed: mapM_ :: (Monad m, Unbox a) => (a -> m b) -> Vector a -> m ()
+ RIO.Vector.Unboxed: mapMaybe :: (Unbox a, Unbox b) => (a -> Maybe b) -> Vector a -> Vector b
+ RIO.Vector.Unboxed: modify :: Unbox a => (forall s. () => MVector s a -> ST s ()) -> Vector a -> Vector a
+ RIO.Vector.Unboxed: notElem :: (Unbox a, Eq a) => a -> Vector a -> Bool
+ RIO.Vector.Unboxed: null :: Unbox a => Vector a -> Bool
+ RIO.Vector.Unboxed: or :: Vector Bool -> Bool
+ RIO.Vector.Unboxed: partition :: Unbox a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Unboxed: postscanl :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Unboxed: postscanl' :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Unboxed: postscanr :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Unboxed: postscanr' :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Unboxed: prescanl :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Unboxed: prescanl' :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Unboxed: prescanr :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Unboxed: prescanr' :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Unboxed: product :: (Unbox a, Num a) => Vector a -> a
+ RIO.Vector.Unboxed: replicate :: Unbox a => Int -> a -> Vector a
+ RIO.Vector.Unboxed: replicateM :: (Monad m, Unbox a) => Int -> m a -> m Vector a
+ RIO.Vector.Unboxed: reverse :: Unbox a => Vector a -> Vector a
+ RIO.Vector.Unboxed: scanl :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Unboxed: scanl' :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector b -> Vector a
+ RIO.Vector.Unboxed: scanr :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Unboxed: scanr' :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector a -> Vector b
+ RIO.Vector.Unboxed: singleton :: Unbox a => a -> Vector a
+ RIO.Vector.Unboxed: slice :: Unbox a => Int -> Int -> Vector a -> Vector a
+ RIO.Vector.Unboxed: snoc :: Unbox a => Vector a -> a -> Vector a
+ RIO.Vector.Unboxed: span :: Unbox a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Unboxed: splitAt :: Unbox a => Int -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Unboxed: sum :: (Unbox a, Num a) => Vector a -> a
+ RIO.Vector.Unboxed: take :: Unbox a => Int -> Vector a -> Vector a
+ RIO.Vector.Unboxed: takeWhile :: Unbox a => (a -> Bool) -> Vector a -> Vector a
+ RIO.Vector.Unboxed: thaw :: (Unbox a, PrimMonad m) => Vector a -> m MVector PrimState m a
+ RIO.Vector.Unboxed: toList :: Unbox a => Vector a -> [a]
+ RIO.Vector.Unboxed: unfoldr :: Unbox a => (b -> Maybe (a, b)) -> b -> Vector a
+ RIO.Vector.Unboxed: unfoldrM :: (Monad m, Unbox a) => (b -> m Maybe (a, b)) -> b -> m Vector a
+ RIO.Vector.Unboxed: unfoldrN :: Unbox a => Int -> (b -> Maybe (a, b)) -> b -> Vector a
+ RIO.Vector.Unboxed: unfoldrNM :: (Monad m, Unbox a) => Int -> (b -> m Maybe (a, b)) -> b -> m Vector a
+ RIO.Vector.Unboxed: uniq :: (Unbox a, Eq a) => Vector a -> Vector a
+ RIO.Vector.Unboxed: unstablePartition :: Unbox a => (a -> Bool) -> Vector a -> (Vector a, Vector a)
+ RIO.Vector.Unboxed: unzip :: (Unbox a, Unbox b) => Vector (a, b) -> (Vector a, Vector b)
+ RIO.Vector.Unboxed: unzip3 :: (Unbox a, Unbox b, Unbox c) => Vector (a, b, c) -> (Vector a, Vector b, Vector c)
+ RIO.Vector.Unboxed: unzip4 :: (Unbox a, Unbox b, Unbox c, Unbox d) => Vector (a, b, c, d) -> (Vector a, Vector b, Vector c, Vector d)
+ RIO.Vector.Unboxed: unzip5 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => Vector (a, b, c, d, e) -> (Vector a, Vector b, Vector c, Vector d, Vector e)
+ RIO.Vector.Unboxed: unzip6 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => Vector (a, b, c, d, e, f) -> (Vector a, Vector b, Vector c, Vector d, Vector e, Vector f)
+ RIO.Vector.Unboxed: zip :: (Unbox a, Unbox b) => Vector a -> Vector b -> Vector (a, b)
+ RIO.Vector.Unboxed: zip3 :: (Unbox a, Unbox b, Unbox c) => Vector a -> Vector b -> Vector c -> Vector (a, b, c)
+ RIO.Vector.Unboxed: zip4 :: (Unbox a, Unbox b, Unbox c, Unbox d) => Vector a -> Vector b -> Vector c -> Vector d -> Vector (a, b, c, d)
+ RIO.Vector.Unboxed: zip5 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector (a, b, c, d, e)
+ RIO.Vector.Unboxed: zip6 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector (a, b, c, d, e, f)
+ RIO.Vector.Unboxed: zipWith :: (Unbox a, Unbox b, Unbox c) => (a -> b -> c) -> Vector a -> Vector b -> Vector c
+ RIO.Vector.Unboxed: zipWith3 :: (Unbox a, Unbox b, Unbox c, Unbox d) => (a -> b -> c -> d) -> Vector a -> Vector b -> Vector c -> Vector d
+ RIO.Vector.Unboxed: zipWith4 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => (a -> b -> c -> d -> e) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e
+ RIO.Vector.Unboxed: zipWith5 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => (a -> b -> c -> d -> e -> f) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f
+ RIO.Vector.Unboxed: zipWith6 :: (Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f, Unbox g) => (a -> b -> c -> d -> e -> f -> g) -> Vector a -> Vector b -> Vector c -> Vector d -> Vector e -> Vector f -> Vector g
+ RIO.Vector.Unboxed: zipWithM :: (Monad m, Unbox a, Unbox b, Unbox c) => (a -> b -> m c) -> Vector a -> Vector b -> m Vector c
+ RIO.Vector.Unboxed: zipWithM_ :: (Monad m, Unbox a, Unbox b) => (a -> b -> m c) -> Vector a -> Vector b -> m ()
+ RIO.Vector.Unboxed.Partial: (!) :: Unbox a => Vector a -> Int -> a
+ RIO.Vector.Unboxed.Partial: (//) :: Unbox a => Vector a -> [(Int, a)] -> Vector a
+ RIO.Vector.Unboxed.Partial: accum :: Unbox a => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
+ RIO.Vector.Unboxed.Partial: accumulate :: (Unbox a, Unbox b) => (a -> b -> a) -> Vector a -> Vector (Int, b) -> Vector a
+ RIO.Vector.Unboxed.Partial: accumulate_ :: (Unbox a, Unbox b) => (a -> b -> a) -> Vector a -> Vector Int -> Vector b -> Vector a
+ RIO.Vector.Unboxed.Partial: backpermute :: Unbox a => Vector a -> Vector Int -> Vector a
+ RIO.Vector.Unboxed.Partial: fold1M :: (Monad m, Unbox a) => (a -> a -> m a) -> Vector a -> m a
+ RIO.Vector.Unboxed.Partial: fold1M' :: (Monad m, Unbox a) => (a -> a -> m a) -> Vector a -> m a
+ RIO.Vector.Unboxed.Partial: fold1M'_ :: (Monad m, Unbox a) => (a -> a -> m a) -> Vector a -> m ()
+ RIO.Vector.Unboxed.Partial: fold1M_ :: (Monad m, Unbox a) => (a -> a -> m a) -> Vector a -> m ()
+ RIO.Vector.Unboxed.Partial: foldl1 :: Unbox a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Unboxed.Partial: foldl1' :: Unbox a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Unboxed.Partial: foldr1 :: Unbox a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Unboxed.Partial: foldr1' :: Unbox a => (a -> a -> a) -> Vector a -> a
+ RIO.Vector.Unboxed.Partial: head :: Unbox a => Vector a -> a
+ RIO.Vector.Unboxed.Partial: headM :: (Unbox a, Monad m) => Vector a -> m a
+ RIO.Vector.Unboxed.Partial: indexM :: (Unbox a, Monad m) => Vector a -> Int -> m a
+ RIO.Vector.Unboxed.Partial: init :: Unbox a => Vector a -> Vector a
+ RIO.Vector.Unboxed.Partial: last :: Unbox a => Vector a -> a
+ RIO.Vector.Unboxed.Partial: lastM :: (Unbox a, Monad m) => Vector a -> m a
+ RIO.Vector.Unboxed.Partial: maxIndex :: (Unbox a, Ord a) => Vector a -> Int
+ RIO.Vector.Unboxed.Partial: maxIndexBy :: Unbox a => (a -> a -> Ordering) -> Vector a -> Int
+ RIO.Vector.Unboxed.Partial: maximum :: (Unbox a, Ord a) => Vector a -> a
+ RIO.Vector.Unboxed.Partial: maximumBy :: Unbox a => (a -> a -> Ordering) -> Vector a -> a
+ RIO.Vector.Unboxed.Partial: minIndex :: (Unbox a, Ord a) => Vector a -> Int
+ RIO.Vector.Unboxed.Partial: minIndexBy :: Unbox a => (a -> a -> Ordering) -> Vector a -> Int
+ RIO.Vector.Unboxed.Partial: minimum :: (Unbox a, Ord a) => Vector a -> a
+ RIO.Vector.Unboxed.Partial: minimumBy :: Unbox a => (a -> a -> Ordering) -> Vector a -> a
+ RIO.Vector.Unboxed.Partial: scanl1 :: Unbox a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Partial: scanl1' :: Unbox a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Partial: scanr1 :: Unbox a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Partial: scanr1' :: Unbox a => (a -> a -> a) -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Partial: tail :: Unbox a => Vector a -> Vector a
+ RIO.Vector.Unboxed.Partial: update :: Unbox a => Vector a -> Vector (Int, a) -> Vector a
+ RIO.Vector.Unboxed.Partial: update_ :: Unbox a => Vector a -> Vector Int -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeAccum :: Unbox a => (a -> b -> a) -> Vector a -> [(Int, b)] -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeAccumulate :: (Unbox a, Unbox b) => (a -> b -> a) -> Vector a -> Vector (Int, b) -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeAccumulate_ :: (Unbox a, Unbox b) => (a -> b -> a) -> Vector a -> Vector Int -> Vector b -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeBackpermute :: Unbox a => Vector a -> Vector Int -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeCopy :: (Unbox a, PrimMonad m) => MVector PrimState m a -> Vector a -> m ()
+ RIO.Vector.Unboxed.Unsafe: unsafeDrop :: Unbox a => Int -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeFreeze :: (Unbox a, PrimMonad m) => MVector PrimState m a -> m Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeHead :: Unbox a => Vector a -> a
+ RIO.Vector.Unboxed.Unsafe: unsafeHeadM :: (Unbox a, Monad m) => Vector a -> m a
+ RIO.Vector.Unboxed.Unsafe: unsafeIndex :: Unbox a => Vector a -> Int -> a
+ RIO.Vector.Unboxed.Unsafe: unsafeIndexM :: (Unbox a, Monad m) => Vector a -> Int -> m a
+ RIO.Vector.Unboxed.Unsafe: unsafeInit :: Unbox a => Vector a -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeLast :: Unbox a => Vector a -> a
+ RIO.Vector.Unboxed.Unsafe: unsafeLastM :: (Unbox a, Monad m) => Vector a -> m a
+ RIO.Vector.Unboxed.Unsafe: unsafeSlice :: Unbox a => Int -> Int -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeTail :: Unbox a => Vector a -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeTake :: Unbox a => Int -> Vector a -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeThaw :: (Unbox a, PrimMonad m) => Vector a -> m MVector PrimState m a
+ RIO.Vector.Unboxed.Unsafe: unsafeUpd :: Unbox a => Vector a -> [(Int, a)] -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeUpdate :: Unbox a => Vector a -> Vector (Int, a) -> Vector a
+ RIO.Vector.Unboxed.Unsafe: unsafeUpdate_ :: Unbox a => Vector a -> Vector Int -> Vector a -> Vector a
+ RIO.Vector.Unsafe: basicLength :: Vector v a => v a -> Int
+ RIO.Vector.Unsafe: basicUnsafeCopy :: (Vector v a, PrimMonad m) => Mutable v PrimState m a -> v a -> m ()
+ RIO.Vector.Unsafe: basicUnsafeFreeze :: (Vector v a, PrimMonad m) => Mutable v PrimState m a -> m v a
+ RIO.Vector.Unsafe: basicUnsafeIndexM :: (Vector v a, Monad m) => v a -> Int -> m a
+ RIO.Vector.Unsafe: basicUnsafeSlice :: Vector v a => Int -> Int -> v a -> v a
+ RIO.Vector.Unsafe: basicUnsafeThaw :: (Vector v a, PrimMonad m) => v a -> m Mutable v PrimState m a
+ RIO.Vector.Unsafe: class MVector Mutable v a => Vector (v :: * -> *) a
+ RIO.Vector.Unsafe: elemseq :: Vector v a => v a -> a -> b -> b
+ RIO.Vector.Unsafe: unsafeAccum :: Vector v a => (a -> b -> a) -> v a -> [(Int, b)] -> v a
+ RIO.Vector.Unsafe: unsafeAccumulate :: (Vector v a, Vector v (Int, b)) => (a -> b -> a) -> v a -> v (Int, b) -> v a
+ RIO.Vector.Unsafe: unsafeAccumulate_ :: (Vector v a, Vector v Int, Vector v b) => (a -> b -> a) -> v a -> v Int -> v b -> v a
+ RIO.Vector.Unsafe: unsafeBackpermute :: (Vector v a, Vector v Int) => v a -> v Int -> v a
+ RIO.Vector.Unsafe: unsafeCopy :: (PrimMonad m, Vector v a) => Mutable v PrimState m a -> v a -> m ()
+ RIO.Vector.Unsafe: unsafeDrop :: Vector v a => Int -> v a -> v a
+ RIO.Vector.Unsafe: unsafeFreeze :: (PrimMonad m, Vector v a) => Mutable v PrimState m a -> m v a
+ RIO.Vector.Unsafe: unsafeHead :: Vector v a => v a -> a
+ RIO.Vector.Unsafe: unsafeHeadM :: (Vector v a, Monad m) => v a -> m a
+ RIO.Vector.Unsafe: unsafeIndex :: Vector v a => v a -> Int -> a
+ RIO.Vector.Unsafe: unsafeIndexM :: (Vector v a, Monad m) => v a -> Int -> m a
+ RIO.Vector.Unsafe: unsafeInit :: Vector v a => v a -> v a
+ RIO.Vector.Unsafe: unsafeLast :: Vector v a => v a -> a
+ RIO.Vector.Unsafe: unsafeLastM :: (Vector v a, Monad m) => v a -> m a
+ RIO.Vector.Unsafe: unsafeSlice :: Vector v a => Int -> Int -> v a -> v a
+ RIO.Vector.Unsafe: unsafeTail :: Vector v a => v a -> v a
+ RIO.Vector.Unsafe: unsafeTake :: Vector v a => Int -> v a -> v a
+ RIO.Vector.Unsafe: unsafeThaw :: (PrimMonad m, Vector v a) => v a -> m Mutable v PrimState m a
+ RIO.Vector.Unsafe: unsafeUpd :: Vector v a => v a -> [(Int, a)] -> v a
+ RIO.Vector.Unsafe: unsafeUpdate :: (Vector v a, Vector v (Int, a)) => v a -> v (Int, a) -> v a
+ RIO.Vector.Unsafe: unsafeUpdate_ :: (Vector v a, Vector v Int) => v a -> v Int -> v a -> v a

Files

ChangeLog.md view
@@ -1,3 +1,9 @@+# Changelog for rio++## 0.1.0.0++* Initial stable release+ ## 0.0  __NOTE__ All releases beginning with 0.0 are considered
README.md view
@@ -106,6 +106,11 @@   recommended qualified names in the modules themselves. For example,   `import qualified RIO.ByteString as B`. See the module documentation   for more information.+* Infix operators may be imported unqualified, with a separate import+  line if necessary. For example, `import RIO.Map ((?!), (\\))`. Do+  this only if your module contains no overlapping infix names,+  regardless of qualification. For instance, if you are importing both+  `RIO.Map.\\` and `RIO.List.\\` do not import either one unqualified.  __TODO__ In the future, we may have editor integration or external tooling to help with import management. Also, see project template@@ -326,6 +331,25 @@   exceptions. * Do all resource allocations with functions like `bracket` and   `finally`.++It’s a good idea to define an app-wide exception type:++```haskell+data AppExceptions+  = NetworkChangeError Text+  | FilePathError FilePath+  | ImpossibleError+  deriving (Typeable)++instance Exception AppExceptions++instance Show AppExceptions where+  show =+    \case+      NetworkChangeError err -> "network error: " <> (unpack err)+      FilePathError fp -> "error accessing filepath at: " <> fp+      ImpossibleError -> "this codepath should never have been executed. Please report a bug."+```  ### Strict data fields 
rio.cabal view
@@ -1,13 +1,13 @@--- This file has been generated from package.yaml by hpack version 0.21.2.+-- This file has been generated from package.yaml by hpack version 0.28.2. -- -- see: https://github.com/sol/hpack ----- hash: 03ea77dc722a584f48bb591def1080ab6f6e2d687ff376c32027b008640c377e+-- hash: fbb7c4b9567f7b9802c00b874f404950b8358f767ddc06a21b77c66e3e4cfabd  name:           rio-version:        0.0.3.0+version:        0.1.0.0 synopsis:       A standard library for Haskell-description:    Work in progress library, see README at <https://github.com/commercialhaskell/rio#readme>+description:    See README and Haddocks at <https://www.stackage.org/package/rio> category:       Control homepage:       https://github.com/commercialhaskell/rio#readme bug-reports:    https://github.com/commercialhaskell/rio/issues@@ -17,7 +17,6 @@ license-file:   LICENSE build-type:     Simple cabal-version:  >= 1.10- extra-source-files:     ChangeLog.md     README.md@@ -27,6 +26,58 @@   location: https://github.com/commercialhaskell/rio  library+  exposed-modules:+      RIO+      RIO.ByteString+      RIO.ByteString.Lazy+      RIO.ByteString.Lazy.Partial+      RIO.ByteString.Partial+      RIO.Char+      RIO.Char.Partial+      RIO.Directory+      RIO.FilePath+      RIO.HashMap+      RIO.HashMap.Partial+      RIO.HashSet+      RIO.List+      RIO.List.Partial+      RIO.Map+      RIO.Map.Partial+      RIO.Map.Unchecked+      RIO.Process+      RIO.Seq+      RIO.Set+      RIO.Set.Partial+      RIO.Set.Unchecked+      RIO.Text+      RIO.Text.Lazy+      RIO.Text.Lazy.Partial+      RIO.Text.Partial+      RIO.Time+      RIO.Vector+      RIO.Vector.Boxed+      RIO.Vector.Boxed.Partial+      RIO.Vector.Boxed.Unsafe+      RIO.Vector.Partial+      RIO.Vector.Storable+      RIO.Vector.Storable.Partial+      RIO.Vector.Storable.Unsafe+      RIO.Vector.Unboxed+      RIO.Vector.Unboxed.Partial+      RIO.Vector.Unboxed.Unsafe+      RIO.Vector.Unsafe+  other-modules:+      RIO.Prelude.Display+      RIO.Prelude.Extra+      RIO.Prelude.IO+      RIO.Prelude.Lens+      RIO.Prelude.Logger+      RIO.Prelude.Reexports+      RIO.Prelude.Renames+      RIO.Prelude.RIO+      RIO.Prelude.Text+      RIO.Prelude.Trace+      RIO.Prelude.URef   hs-source-dirs:       src/   build-depends:@@ -44,8 +95,8 @@     , process     , text     , time-    , typed-process >=0.2.1.0-    , unliftio >=0.2.4.0+    , typed-process >=0.2.2.0+    , unliftio >=0.2.6.0     , unordered-containers     , vector   if os(windows)@@ -55,43 +106,18 @@   else     build-depends:         unix-  exposed-modules:-      RIO-      RIO.ByteString-      RIO.ByteString.Lazy-      RIO.Char-      RIO.Directory-      RIO.FilePath-      RIO.HashMap-      RIO.HashSet-      RIO.List-      RIO.Map-      RIO.Prelude.Display-      RIO.Prelude.Extra-      RIO.Prelude.IO-      RIO.Prelude.Lens-      RIO.Prelude.Logger-      RIO.Prelude.Reexports-      RIO.Prelude.Renames-      RIO.Prelude.RIO-      RIO.Prelude.Text-      RIO.Prelude.URef-      RIO.Process-      RIO.Set-      RIO.Text-      RIO.Text.Lazy-      RIO.Time-      RIO.Vector-      RIO.Vector.Boxed-      RIO.Vector.Storable-      RIO.Vector.Unboxed-  other-modules:-      Paths_rio   default-language: Haskell2010  test-suite spec   type: exitcode-stdio-1.0   main-is: Spec.hs+  other-modules:+      RIO.ListSpec+      RIO.LoggerSpec+      RIO.Prelude.IOSpec+      RIO.PreludeSpec+      RIO.TextSpec+      Paths_rio   hs-source-dirs:       test   build-depends:@@ -111,8 +137,8 @@     , rio     , text     , time-    , typed-process >=0.2.1.0-    , unliftio >=0.2.4.0+    , typed-process >=0.2.2.0+    , unliftio >=0.2.6.0     , unordered-containers     , vector   if os(windows)@@ -122,10 +148,4 @@   else     build-depends:         unix-  other-modules:-      RIO.ListSpec-      RIO.LoggerSpec-      RIO.PreludeSpec-      RIO.TextSpec-      Paths_rio   default-language: Haskell2010
src/RIO.hs view
@@ -8,6 +8,7 @@   , module RIO.Prelude.Reexports   , module RIO.Prelude.Renames   , module RIO.Prelude.Text+  , module RIO.Prelude.Trace   , module RIO.Prelude.URef   ) where @@ -20,4 +21,5 @@ import RIO.Prelude.Reexports import RIO.Prelude.Renames import RIO.Prelude.Text+import RIO.Prelude.Trace import RIO.Prelude.URef
src/RIO/ByteString/Lazy.hs view
@@ -1,8 +1,211 @@ -- | Lazy @ByteString@. Import as: ----- > import qualified RIO.ByteString.Lazy as B.Lazy+-- > import qualified RIO.ByteString.Lazy as BL+{-# LANGUAGE NoImplicitPrelude #-} module RIO.ByteString.Lazy-  ( module Data.ByteString.Lazy+  (+  -- * The @ByteString@ type+    Data.ByteString.Lazy.ByteString++  -- * Introducing and eliminating 'ByteString's+  , Data.ByteString.Lazy.empty+  , Data.ByteString.Lazy.singleton+  , Data.ByteString.Lazy.pack+  , Data.ByteString.Lazy.unpack+  , Data.ByteString.Lazy.fromStrict+  , Data.ByteString.Lazy.toStrict+  , Data.ByteString.Lazy.fromChunks+  , Data.ByteString.Lazy.toChunks+  , Data.ByteString.Lazy.foldrChunks+  , Data.ByteString.Lazy.foldlChunks++  -- * Basic interface+  , Data.ByteString.Lazy.cons+  , Data.ByteString.Lazy.cons'+  , Data.ByteString.Lazy.snoc+  , Data.ByteString.Lazy.append+  , Data.ByteString.Lazy.uncons+  , Data.ByteString.Lazy.unsnoc+  , Data.ByteString.Lazy.null+  , Data.ByteString.Lazy.length++  -- * Transforming ByteStrings+  , Data.ByteString.Lazy.map+  , Data.ByteString.Lazy.reverse+  , Data.ByteString.Lazy.intersperse+  , Data.ByteString.Lazy.intercalate+  , Data.ByteString.Lazy.transpose++  -- * Reducing 'ByteString's (folds)+  , Data.ByteString.Lazy.foldl+  , Data.ByteString.Lazy.foldl'+  , Data.ByteString.Lazy.foldr++  -- ** Special folds+  , Data.ByteString.Lazy.concat+  , Data.ByteString.Lazy.concatMap+  , Data.ByteString.Lazy.any+  , Data.ByteString.Lazy.all++  -- * Building ByteStrings+  -- ** Scans+  , Data.ByteString.Lazy.scanl++  -- ** Accumulating maps+  , Data.ByteString.Lazy.mapAccumL+  , Data.ByteString.Lazy.mapAccumR++  -- ** Infinite ByteStrings+  , Data.ByteString.Lazy.repeat+  , Data.ByteString.Lazy.replicate+  , Data.ByteString.Lazy.cycle+  , Data.ByteString.Lazy.iterate++  -- ** Unfolding ByteStrings+  , Data.ByteString.Lazy.unfoldr++  -- * Substrings+  -- ** Breaking strings+  , Data.ByteString.Lazy.take+  , Data.ByteString.Lazy.drop+  , Data.ByteString.Lazy.splitAt+  , Data.ByteString.Lazy.takeWhile+  , Data.ByteString.Lazy.dropWhile+  , Data.ByteString.Lazy.span+  , Data.ByteString.Lazy.break+  , Data.ByteString.Lazy.group+  , Data.ByteString.Lazy.groupBy+  , Data.ByteString.Lazy.inits+  , Data.ByteString.Lazy.tails+  , Data.ByteString.Lazy.stripPrefix+  , Data.ByteString.Lazy.stripSuffix++  -- ** Breaking into many substrings+  , Data.ByteString.Lazy.split+  , Data.ByteString.Lazy.splitWith++  -- * Predicates+  , Data.ByteString.Lazy.isPrefixOf+  , Data.ByteString.Lazy.isSuffixOf++  -- * Search ByteStrings+  -- ** Searching by equality+  , Data.ByteString.Lazy.elem+  , Data.ByteString.Lazy.notElem++  -- ** Searching with a predicate+  , Data.ByteString.Lazy.find+  , Data.ByteString.Lazy.filter+  , Data.ByteString.Lazy.partition++  -- * Indexing ByteStrings+  , Data.ByteString.Lazy.index+  , Data.ByteString.Lazy.elemIndex+  , Data.ByteString.Lazy.elemIndexEnd+  , Data.ByteString.Lazy.elemIndices+  , Data.ByteString.Lazy.findIndex+  , Data.ByteString.Lazy.findIndices+  , Data.ByteString.Lazy.count++  -- * Zipping and unzipping ByteStrings+  , Data.ByteString.Lazy.zip+  , Data.ByteString.Lazy.zipWith+  , Data.ByteString.Lazy.unzip++  -- * Low level conversions+  -- ** Copying ByteStrings+  , Data.ByteString.Lazy.copy++  -- * I\/O with 'ByteString's+  -- ** Standard input and output+  , getContents+  , putStr+  , putStrLn+  , interact++  -- ** Files+  , readFile+  , writeFile+  , appendFile++  -- ** I\/O with Handles+  , hGetContents+  , hGet+  , hGetNonBlocking+  , hPut+  , hPutNonBlocking+  , hPutStr   ) where -import Data.ByteString.Lazy+import Data.ByteString.Lazy hiding+  (+    getContents+  , putStr+  , putStrLn+  , interact+  , readFile+  , writeFile+  , appendFile+  , hGetContents+  , hGet+  , hGetNonBlocking+  , hPut+  , hPutNonBlocking+  , hPutStr+  )+import qualified Data.ByteString.Lazy+import qualified Data.ByteString.Lazy.Char8+import RIO++-- | Lifted 'Data.ByteString.Lazy.getContents'+getContents :: MonadIO m => m LByteString+getContents = liftIO Data.ByteString.Lazy.getContents++-- | Lifted 'Data.ByteString.Lazy.putStr'+putStr :: MonadIO m => LByteString -> m ()+putStr = liftIO . Data.ByteString.Lazy.putStr++-- | Lifted 'Data.ByteString.Lazy.putStrLn'+putStrLn :: MonadIO m => LByteString -> m ()+putStrLn = liftIO . Data.ByteString.Lazy.Char8.putStrLn++-- | Lifted 'Data.ByteString.Lazy.interact'+interact :: MonadIO m => (LByteString -> LByteString) -> m ()+interact = liftIO . Data.ByteString.Lazy.interact++-- | Lifted 'Data.ByteString.Lazy.readFile'+readFile :: MonadIO m => FilePath -> m LByteString+readFile = liftIO . Data.ByteString.Lazy.readFile++-- | Lifted 'Data.ByteString.Lazy.writeFile'+writeFile :: MonadIO m => FilePath -> LByteString -> m ()+writeFile fp contents =+  liftIO $ Data.ByteString.Lazy.writeFile fp contents++-- | Lifted 'Data.ByteString.Lazy.appendFile'+appendFile :: MonadIO m => FilePath -> LByteString -> m ()+appendFile fp = liftIO . Data.ByteString.Lazy.appendFile fp++-- | Lifted 'Data.ByteString.Lazy.hGet'+hGet :: MonadIO m => Handle -> Int -> m LByteString+hGet handle' count' = liftIO $ Data.ByteString.Lazy.hGet handle' count'++-- | Lifted 'Data.ByteString.Lazy.hGetContents'+hGetContents :: MonadIO m => Handle -> m LByteString+hGetContents = liftIO . Data.ByteString.Lazy.hGetContents++-- | Lifted 'Data.ByteString.Lazy.hGetNonBlocking'+hGetNonBlocking :: MonadIO m => Handle -> Int -> m LByteString+hGetNonBlocking h = liftIO . Data.ByteString.Lazy.hGetNonBlocking h++-- | Lifted 'Data.ByteString.Lazy.hPut'+hPut :: MonadIO m => Handle -> LByteString -> m ()+hPut h = liftIO . Data.ByteString.Lazy.hPut h++-- | Lifted 'Data.ByteString.Lazy.hPutNonBlocking'+hPutNonBlocking :: MonadIO m => Handle -> LByteString -> m LByteString+hPutNonBlocking h = liftIO . Data.ByteString.Lazy.hPutNonBlocking h++-- | Lifted 'Data.ByteString.Lazy.hPutStr'+hPutStr :: MonadIO m => Handle -> LByteString -> m ()+hPutStr h = liftIO . Data.ByteString.Lazy.hPutStr h
+ src/RIO/ByteString/Lazy/Partial.hs view
@@ -0,0 +1,21 @@+-- | This module exports all the partial functions from "Data.ByteString.Lazy"++module RIO.ByteString.Lazy.Partial+  (+  -- * Basic interface+    Data.ByteString.Lazy.head+  , Data.ByteString.Lazy.last+  , Data.ByteString.Lazy.tail+  , Data.ByteString.Lazy.init++  -- * Reducing 'ByteString's (folds)+  , Data.ByteString.Lazy.foldl1+  , Data.ByteString.Lazy.foldl1'+  , Data.ByteString.Lazy.foldr1++  -- ** Special folds+  , Data.ByteString.Lazy.maximum+  , Data.ByteString.Lazy.minimum+  ) where++import qualified Data.ByteString.Lazy
+ src/RIO/ByteString/Partial.hs view
@@ -0,0 +1,22 @@+-- | This module exports all the partial functions from 'Data.ByteString'++module RIO.ByteString.Partial+  (+  -- * Basic interface+    Data.ByteString.head+  , Data.ByteString.last+  , Data.ByteString.tail+  , Data.ByteString.init++  -- * Reducing 'ByteString's (folds)+  , Data.ByteString.foldl1+  , Data.ByteString.foldl1'+  , Data.ByteString.foldr1+  , Data.ByteString.foldr1'++  -- * Special folds+  , Data.ByteString.maximum+  , Data.ByteString.minimum+  ) where++import qualified Data.ByteString
src/RIO/Char.hs view
@@ -2,7 +2,52 @@ -- -- > import qualified RIO.Char as C module RIO.Char-  ( module Data.Char+  (+    Data.Char.Char++  -- * Character classification+  -- | Unicode characters are divided into letters, Data.Char.numbers, marks,+  -- punctuation, Data.Char.symbols, separators (including spaces) and others+  -- (including control characters).+  , Data.Char.isControl+  , Data.Char.isSpace+  , Data.Char.isLower+  , Data.Char.isUpper+  , Data.Char.isAlpha+  , Data.Char.isAlphaNum+  , Data.Char.isPrint+  , Data.Char.isDigit+  , Data.Char.isOctDigit+  , Data.Char.isHexDigit+  , Data.Char.isLetter+  , Data.Char.isMark+  , Data.Char.isNumber+  , Data.Char.isPunctuation+  , Data.Char.isSymbol+  , Data.Char.isSeparator++  -- ** Subranges+  , Data.Char.isAscii+  , Data.Char.isLatin1+  , Data.Char.isAsciiUpper+  , Data.Char.isAsciiLower++  -- ** Unicode general categories+  , Data.Char.GeneralCategory(..)+  , Data.Char.generalCategory++  -- * Case conversion+  , Data.Char.toUpper+  , Data.Char.toLower+  , Data.Char.toTitle++  -- * Numeric representations+  , Data.Char.ord++  -- * String representations+  , Data.Char.showLitChar+  , Data.Char.lexLitChar+  , Data.Char.readLitChar   ) where -import Data.Char+import qualified Data.Char
+ src/RIO/Char/Partial.hs view
@@ -0,0 +1,11 @@+module RIO.Char.Partial+  (+  -- * Single digit characters+    Data.Char.digitToInt+  , Data.Char.intToDigit++  -- * Numeric representations+  , Data.Char.chr+  ) where++import qualified Data.Char
src/RIO/Directory.hs view
@@ -1,5 +1,7 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE NoImplicitPrelude #-} module RIO.Directory-  ( module System.Directory+  ( module UnliftIO.Directory   ) where -import System.Directory+import UnliftIO.Directory
src/RIO/FilePath.hs view
@@ -1,5 +1,12 @@ module RIO.FilePath   ( module System.FilePath+  , getSearchPath   ) where -import System.FilePath+import Control.Monad.IO.Class+import System.FilePath hiding(getSearchPath)+import qualified System.FilePath++-- | Lifted version of 'System.FilePath.getSearchPath'+getSearchPath :: MonadIO m => m [FilePath]+getSearchPath = liftIO System.FilePath.getSearchPath
src/RIO/HashMap.hs view
@@ -1,8 +1,66 @@ -- | Strict @Map@ with hashed keys. Import as: ----- > import qualified RIO.HashMap as M.Hash+-- > import qualified RIO.HashMap as HM module RIO.HashMap-  ( module Data.HashMap.Strict+  (+    Data.HashMap.Strict.HashMap++    -- * Construction+  , Data.HashMap.Strict.empty+  , Data.HashMap.Strict.singleton++    -- * Basic interface+  , Data.HashMap.Strict.null+  , Data.HashMap.Strict.size+  , Data.HashMap.Strict.member+  , Data.HashMap.Strict.lookup+  , Data.HashMap.Strict.lookupDefault+  , Data.HashMap.Strict.insert+  , Data.HashMap.Strict.insertWith+  , Data.HashMap.Strict.delete+  , Data.HashMap.Strict.adjust+  , Data.HashMap.Strict.update+  , Data.HashMap.Strict.alter++    -- * Combine+    -- ** Union+  , Data.HashMap.Strict.union+  , Data.HashMap.Strict.unionWith+  , Data.HashMap.Strict.unionWithKey+  , Data.HashMap.Strict.unions++    -- * Transformations+  , Data.HashMap.Strict.map+  , Data.HashMap.Strict.mapWithKey+  , Data.HashMap.Strict.traverseWithKey++    -- * Difference and intersection+  , Data.HashMap.Strict.difference+  , Data.HashMap.Strict.differenceWith+  , Data.HashMap.Strict.intersection+  , Data.HashMap.Strict.intersectionWith+  , Data.HashMap.Strict.intersectionWithKey++    -- * Folds+  , Data.HashMap.Strict.foldl'+  , Data.HashMap.Strict.foldlWithKey'+  , Data.HashMap.Strict.foldr+  , Data.HashMap.Strict.foldrWithKey++    -- * Filter+  , Data.HashMap.Strict.filter+  , Data.HashMap.Strict.filterWithKey+  , Data.HashMap.Strict.mapMaybe+  , Data.HashMap.Strict.mapMaybeWithKey++    -- * Conversions+  , Data.HashMap.Strict.keys+  , Data.HashMap.Strict.elems++    -- ** Lists+  , Data.HashMap.Strict.toList+  , Data.HashMap.Strict.fromList+  , Data.HashMap.Strict.fromListWith   ) where  import Data.HashMap.Strict
+ src/RIO/HashMap/Partial.hs view
@@ -0,0 +1,7 @@+module RIO.HashMap.Partial+  (+  -- * Basic interface+    (Data.HashMap.Strict.!)+  ) where++import qualified Data.HashMap.Strict
src/RIO/HashSet.hs view
@@ -1,8 +1,48 @@ -- | @Set@ with hashed members. Import as: ----- > import qualified RIO.HashSet as S.Hash+-- > import qualified RIO.HashSet as HS module RIO.HashSet-  ( module Data.HashSet+  (+    Data.HashSet.HashSet++  -- * Construction+  , Data.HashSet.empty+  , Data.HashSet.singleton++  -- * Combine+  , Data.HashSet.union+  , Data.HashSet.unions++  -- * Basic interface+  , Data.HashSet.null+  , Data.HashSet.size+  , Data.HashSet.member+  , Data.HashSet.insert+  , Data.HashSet.delete++  -- * Transformations+  , Data.HashSet.map++    -- * Difference and intersection+  , Data.HashSet.difference+  , Data.HashSet.intersection++  -- * Folds+  , Data.HashSet.foldl'+  , Data.HashSet.foldr++  -- * Filter+  , Data.HashSet.filter++  -- * Conversions++  -- ** Lists+  , Data.HashSet.toList+  , Data.HashSet.fromList++  -- * HashMaps+  , Data.HashSet.toMap+  , Data.HashSet.fromMap   ) where -import Data.HashSet+import qualified Data.HashSet
src/RIO/List.hs view
@@ -2,13 +2,201 @@ -- -- > import qualified RIO.List as L module RIO.List-  ( module Data.List+  (+  -- * Basic functions+    (Data.List.++)+  , Data.List.uncons+  , Data.List.null+  , Data.List.length++  -- * List transformations+  , Data.List.map+  , Data.List.reverse++  , Data.List.intersperse+  , Data.List.intercalate+  , Data.List.transpose++  , Data.List.subsequences+  , Data.List.permutations++  -- * Reducing lists (folds)++  , Data.List.foldl+  , Data.List.foldl'+  , Data.List.foldr++  -- ** Special folds++  , Data.List.concat+  , Data.List.concatMap+  , Data.List.and+  , Data.List.or+  , Data.List.any+  , Data.List.all+  , Data.List.sum+  , Data.List.product++  -- * Building lists++  -- ** Scans+  , Data.List.scanl+  , Data.List.scanl'+  , Data.List.scanr++  -- ** Accumulating maps+  , Data.List.mapAccumL+  , Data.List.mapAccumR++  -- ** Infinite lists+  , Data.List.iterate+  , Data.List.repeat+  , Data.List.replicate+  , Data.List.cycle++  -- ** Unfolding+  , Data.List.unfoldr++  -- * Sublists++  -- ** Extracting sublists+  , Data.List.take+  , Data.List.drop+  , Data.List.splitAt++  , Data.List.takeWhile+  , Data.List.dropWhile+  , Data.List.dropWhileEnd+  , Data.List.span+  , Data.List.break++  , Data.List.stripPrefix   , stripSuffix   , dropPrefix   , dropSuffix++  , Data.List.group++  , Data.List.inits+  , Data.List.tails++  -- ** Predicates+  , Data.List.isPrefixOf+  , Data.List.isSuffixOf+  , Data.List.isInfixOf+  , Data.List.isSubsequenceOf++  -- * Searching lists++  -- ** Searching by equality+  , Data.List.elem+  , Data.List.notElem+  , Data.List.lookup++  -- ** Searching with a predicate+  , Data.List.find+  , Data.List.filter+  , Data.List.partition++  -- * Indexing lists+  -- | These functions treat a list @xs@ as a indexed collection,+  -- with indices ranging from 0 to @'length' xs - 1@.++  , Data.List.elemIndex+  , Data.List.elemIndices++  , Data.List.findIndex+  , Data.List.findIndices++  -- * Zipping and unzipping lists++  , Data.List.zip+  , Data.List.zip3+  , Data.List.zip4+  , Data.List.zip5+  , Data.List.zip6+  , Data.List.zip7++  , Data.List.zipWith+  , Data.List.zipWith3+  , Data.List.zipWith4+  , Data.List.zipWith5+  , Data.List.zipWith6+  , Data.List.zipWith7++  , Data.List.unzip+  , Data.List.unzip3+  , Data.List.unzip4+  , Data.List.unzip5+  , Data.List.unzip6+  , Data.List.unzip7++  -- * Special lists++  -- ** Functions on strings+  , Data.List.lines+  , linesCR+  , Data.List.words+  , Data.List.unlines+  , Data.List.unwords++  -- ** \"Set\" operations++  , Data.List.nub++  , Data.List.delete+  , (Data.List.\\)++  , Data.List.union+  , Data.List.intersect++  -- ** Ordered lists+  , Data.List.sort+  , Data.List.sortOn+  , Data.List.insert++  -- * Generalized functions++  -- ** The \"@By@\" operations+  -- | By convention, overloaded functions have a non-overloaded+  -- counterpart whose name is suffixed with \`@By@\'.+  --+  -- It is often convenient to use these functions together with+  -- 'Data.Function.on', for instance @'sortBy' ('compare'+  -- \`on\` 'fst')@.++  -- *** User-supplied equality (replacing an @Eq@ context)+  -- | The predicate is assumed to define an equivalence.+  , Data.List.nubBy+  , Data.List.deleteBy+  , Data.List.deleteFirstsBy+  , Data.List.unionBy+  , Data.List.intersectBy+  , Data.List.groupBy++  -- *** User-supplied comparison (replacing an @Ord@ context)+  -- | The function is assumed to define a total ordering.+  , Data.List.sortBy+  , Data.List.insertBy+  , Data.List.maximumBy+  , Data.List.minimumBy++  -- ** The \"@generic@\" operations+  -- | The prefix \`@generic@\' indicates an overloaded function that+  -- is a generalized version of a "Prelude" function.++  , Data.List.genericLength+  , Data.List.genericTake+  , Data.List.genericDrop+  , Data.List.genericSplitAt+  , Data.List.genericIndex+  , Data.List.genericReplicate+   ) where -import Data.List+import qualified Data.List++import Data.List(stripPrefix) import Data.Maybe (fromMaybe)  -- | Remove the suffix from the given list, if present@@ -38,3 +226,12 @@            -> [a]            -> [a] dropSuffix suffix t = fromMaybe t (stripSuffix suffix t)++-- | 'linesCR' breaks a 'String' up into a list of `String`s at newline+-- 'Char's. It is very similar to 'lines', but it also removes any+-- trailing @'\r'@ 'Char's. The resulting 'String' values do not contain+-- newlines or trailing @'\r'@ characters.+--+-- @since 0.1.0.0+linesCR :: String -> [String]+linesCR = map (dropSuffix "\r") . lines
+ src/RIO/List/Partial.hs view
@@ -0,0 +1,29 @@+module RIO.List.Partial+  (+  -- * Basic functions+    Data.List.head+  , Data.List.last+  , Data.List.tail+  , Data.List.init++  -- * Reducing lists (folds)+  , Data.List.foldl1+  , Data.List.foldl1'+  , Data.List.foldr1++  -- ** Special folds+  , Data.List.maximum+  , Data.List.minimum++  -- * Building lists++  -- ** Scans+  , Data.List.scanl1+  , Data.List.scanr1++  -- * Indexing lists+  , (Data.List.!!)+  ) where++import qualified Data.List+
src/RIO/Map.hs view
@@ -1,8 +1,179 @@+{-# LANGUAGE CPP #-} -- | Strict @Map@. Import as: ----- > import qualified RIO.Map as M+-- > import qualified RIO.Map as Map module RIO.Map-  ( module Data.Map.Strict+  (+  -- * Map type+    Data.Map.Strict.Map++  -- * Operators+#if MIN_VERSION_containers(0,5,9)+  , (Data.Map.Strict.!?)+#endif+  , (Data.Map.Strict.\\)++  -- * Query+  , Data.Map.Strict.null+  , Data.Map.Strict.size+  , Data.Map.Strict.member+  , Data.Map.Strict.notMember+  , Data.Map.Strict.lookup+  , Data.Map.Strict.findWithDefault+  , Data.Map.Strict.lookupLT+  , Data.Map.Strict.lookupGT+  , Data.Map.Strict.lookupLE+  , Data.Map.Strict.lookupGE++  -- * Construction+  , Data.Map.Strict.empty+  , Data.Map.Strict.singleton++  -- ** Insertion+  , Data.Map.Strict.insert+  , Data.Map.Strict.insertWith+  , Data.Map.Strict.insertWithKey+  , Data.Map.Strict.insertLookupWithKey++  -- ** Delete\/Update+  , Data.Map.Strict.delete+  , Data.Map.Strict.adjust+  , Data.Map.Strict.adjustWithKey+  , Data.Map.Strict.update+  , Data.Map.Strict.updateWithKey+  , Data.Map.Strict.updateLookupWithKey+  , Data.Map.Strict.alter+#if MIN_VERSION_containers(0,5,8)+  , Data.Map.Strict.alterF+#endif++  -- * Combine++  -- ** Union+  , Data.Map.Strict.union+  , Data.Map.Strict.unionWith+  , Data.Map.Strict.unionWithKey+  , Data.Map.Strict.unions+  , Data.Map.Strict.unionsWith++  -- ** Difference+  , Data.Map.Strict.difference+  , Data.Map.Strict.differenceWith+  , Data.Map.Strict.differenceWithKey++  -- ** Intersection+  , Data.Map.Strict.intersection+  , Data.Map.Strict.intersectionWith+  , Data.Map.Strict.intersectionWithKey++  -- ** General combining functions+  -- | See "Data.Map.Merge.Strict"++  -- ** Deprecated general combining function++  , Data.Map.Strict.mergeWithKey++  -- * Traversal+  -- ** Map+  , Data.Map.Strict.map+  , Data.Map.Strict.mapWithKey+  , Data.Map.Strict.traverseWithKey+#if MIN_VERSION_containers(0,5,8)+  , Data.Map.Strict.traverseMaybeWithKey+#endif+  , Data.Map.Strict.mapAccum+  , Data.Map.Strict.mapAccumWithKey+  , Data.Map.Strict.mapAccumRWithKey+  , Data.Map.Strict.mapKeys+  , Data.Map.Strict.mapKeysWith++  -- * Folds+  , Data.Map.Strict.foldr+  , Data.Map.Strict.foldl+  , Data.Map.Strict.foldrWithKey+  , Data.Map.Strict.foldlWithKey+  , Data.Map.Strict.foldMapWithKey++  -- ** Strict folds+  , Data.Map.Strict.foldr'+  , Data.Map.Strict.foldl'+  , Data.Map.Strict.foldrWithKey'+  , Data.Map.Strict.foldlWithKey'++  -- * Conversion+  , Data.Map.Strict.elems+  , Data.Map.Strict.keys+  , Data.Map.Strict.assocs+  , Data.Map.Strict.keysSet+  , Data.Map.Strict.fromSet++  -- ** Lists+  , Data.Map.Strict.toList+  , Data.Map.Strict.fromList+  , Data.Map.Strict.fromListWith+  , Data.Map.Strict.fromListWithKey++  -- * Filter+  , Data.Map.Strict.filter+  , Data.Map.Strict.filterWithKey+#if MIN_VERSION_containers(0,5,8)+  , Data.Map.Strict.restrictKeys+  , Data.Map.Strict.withoutKeys+#endif+  , Data.Map.Strict.partition+  , Data.Map.Strict.partitionWithKey++#if MIN_VERSION_containers(0,5,8)+  , Data.Map.Strict.takeWhileAntitone+  , Data.Map.Strict.dropWhileAntitone+  , Data.Map.Strict.spanAntitone+#endif++  , Data.Map.Strict.mapMaybe+  , Data.Map.Strict.mapMaybeWithKey+  , Data.Map.Strict.mapEither+  , Data.Map.Strict.mapEitherWithKey++  , Data.Map.Strict.split+  , Data.Map.Strict.splitLookup+  , Data.Map.Strict.splitRoot++  -- * Submap+  , Data.Map.Strict.isSubmapOf+  , Data.Map.Strict.isSubmapOfBy+  , Data.Map.Strict.isProperSubmapOf+  , Data.Map.Strict.isProperSubmapOfBy++  -- * Indexed+  , Data.Map.Strict.lookupIndex+  , Data.Map.Strict.elemAt+  , Data.Map.Strict.deleteAt+#if MIN_VERSION_containers(0,5,8)+  , Data.Map.Strict.take+  , Data.Map.Strict.drop+  , Data.Map.Strict.splitAt+#endif++  -- * Min\/Max+#if MIN_VERSION_containers(0,5,9)+  , Data.Map.Strict.lookupMin+  , Data.Map.Strict.lookupMax+#endif+  , Data.Map.Strict.deleteMin+  , Data.Map.Strict.deleteMax+  , Data.Map.Strict.updateMin+  , Data.Map.Strict.updateMax+  , Data.Map.Strict.updateMinWithKey+  , Data.Map.Strict.updateMaxWithKey+  , Data.Map.Strict.minView+  , Data.Map.Strict.maxView+  , Data.Map.Strict.minViewWithKey+  , Data.Map.Strict.maxViewWithKey++  -- * Debugging+  , Data.Map.Strict.showTree+  , Data.Map.Strict.showTreeWith+  , Data.Map.Strict.valid   ) where -import Data.Map.Strict+import qualified Data.Map.Strict
+ src/RIO/Map/Partial.hs view
@@ -0,0 +1,18 @@+module RIO.Map.Partial+  (+  -- * Operators+    (Data.Map.Strict.!)+  -- * Indexed+  , Data.Map.Strict.elemAt+  , Data.Map.Strict.deleteAt+  , Data.Map.Strict.findIndex+  , Data.Map.Strict.updateAt++  -- * Min\/Max+  , Data.Map.Strict.findMin+  , Data.Map.Strict.findMax+  , Data.Map.Strict.deleteFindMin+  , Data.Map.Strict.deleteFindMax+  ) where++import qualified Data.Map.Strict
+ src/RIO/Map/Unchecked.hs view
@@ -0,0 +1,30 @@+{-# LANGUAGE CPP #-}+-- | This module contains functions from "Data.Map.strict" that have unchecked+--   preconditions on their input.  If these preconditions are not satisfied,+--   the data structure may end up in an invalid state and other operations+--   may misbehave.++module RIO.Map.Unchecked+  (+  -- * Traversal+  -- ** Map+    Data.Map.Strict.mapKeysMonotonic++  -- * Conversion+  -- ** Ordered lists+  , Data.Map.Strict.toAscList+  , Data.Map.Strict.fromAscList+  , Data.Map.Strict.fromAscListWith+  , Data.Map.Strict.fromAscListWithKey+  , Data.Map.Strict.fromDistinctAscList+#if MIN_VERSION_containers(0,5,8)+  , Data.Map.Strict.toDescList+  , Data.Map.Strict.fromDescList+  , Data.Map.Strict.fromDescListWith+  , Data.Map.Strict.fromDescListWithKey+  , Data.Map.Strict.fromDistinctDescList+#endif++  ) where++import qualified Data.Map.Strict
src/RIO/Prelude/Display.hs view
@@ -1,11 +1,12 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} module RIO.Prelude.Display-  ( DisplayBuilder (..)+  ( Utf8Builder (..)   , Display (..)   , displayShow-  , displayBuilderToText+  , utf8BuilderToText+  , utf8BuilderToLazyText   , displayBytesUtf8-  , writeFileDisplayBuilder+  , writeFileUtf8Builder   ) where  import Data.String (IsString (..))@@ -16,35 +17,132 @@ import           Data.Semigroup           (Semigroup) import           Data.Text                (Text) import qualified Data.Text.Lazy           as TL+import qualified Data.Text.Lazy.Encoding  as TL import UnliftIO import           Data.Text.Encoding       (decodeUtf8With, encodeUtf8Builder) import           Data.Text.Encoding.Error (lenientDecode)+import           Data.Int+import           Data.Word+import           System.Process.Typed     (ProcessConfig, setEnvInherit) -newtype DisplayBuilder = DisplayBuilder { getUtf8Builder :: Builder }+-- | A builder of binary data, with the invariant that the underlying+-- data is supposed to be UTF-8 encoded.+--+-- @since 0.1.0.0+newtype Utf8Builder = Utf8Builder { getUtf8Builder :: Builder }   deriving (Semigroup, Monoid) -instance IsString DisplayBuilder where-  fromString = DisplayBuilder . BB.stringUtf8+-- | @since 0.1.0.0+instance IsString Utf8Builder where+  fromString = Utf8Builder . BB.stringUtf8 +-- | A typeclass for values which can be converted to a+-- 'Utf8Builder'. The intention of this typeclass is to provide a+-- human-friendly display of the data.+--+-- @since 0.1.0.0 class Display a where-  display :: a -> DisplayBuilder+  display :: a -> Utf8Builder++-- | @since 0.1.0.0+instance Display Utf8Builder where+  display = id+-- | @since 0.1.0.0 instance Display Text where-  display = DisplayBuilder . encodeUtf8Builder+  display = Utf8Builder . encodeUtf8Builder+-- | @since 0.1.0.0 instance Display TL.Text where   display = foldMap display . TL.toChunks+-- | @since 0.1.0.0+instance Display Char where+  display = Utf8Builder . BB.charUtf8++-- | @since 0.1.0.0+instance Display Integer where+  display = Utf8Builder . BB.integerDec+-- | @since 0.1.0.0+instance Display Float where+  display = Utf8Builder . BB.floatDec+instance Display Double where+  display = Utf8Builder . BB.doubleDec++-- | @since 0.1.0.0 instance Display Int where-  display = DisplayBuilder . BB.intDec+  display = Utf8Builder . BB.intDec+-- | @since 0.1.0.0+instance Display Int8 where+  display = Utf8Builder . BB.int8Dec+-- | @since 0.1.0.0+instance Display Int16 where+  display = Utf8Builder . BB.int16Dec+-- | @since 0.1.0.0+instance Display Int32 where+  display = Utf8Builder . BB.int32Dec+-- | @since 0.1.0.0+instance Display Int64 where+  display = Utf8Builder . BB.int64Dec -displayShow :: Show a => a -> DisplayBuilder+-- | @since 0.1.0.0+instance Display Word where+  display = Utf8Builder . BB.wordDec+-- | @since 0.1.0.0+instance Display Word8 where+  display = Utf8Builder . BB.word8Dec+-- | @since 0.1.0.0+instance Display Word16 where+  display = Utf8Builder . BB.word16Dec+-- | @since 0.1.0.0+instance Display Word32 where+  display = Utf8Builder . BB.word32Dec+-- | @since 0.1.0.0+instance Display Word64 where+  display = Utf8Builder . BB.word64Dec++-- | @since 0.1.0.0+instance Display SomeException where+  display = fromString . displayException+-- | @since 0.1.0.0+instance Display IOException where+  display = fromString . displayException++-- | @since 0.1.0.0+instance Display (ProcessConfig a b c) where+  display = displayShow . setEnvInherit++-- | Use the 'Show' instance for a value to convert it to a+-- 'Utf8Builder'.+--+-- @since 0.1.0.0+displayShow :: Show a => a -> Utf8Builder displayShow = fromString . show -displayBytesUtf8 :: ByteString -> DisplayBuilder-displayBytesUtf8 = DisplayBuilder . BB.byteString+-- | Convert a 'ByteString' into a 'Utf8Builder'.+--+-- /NOTE/ This function performs no checks to ensure that the data is,+-- in fact, UTF8 encoded. If you provide non-UTF8 data, later+-- functions may fail.+--+-- @since 0.1.0.0+displayBytesUtf8 :: ByteString -> Utf8Builder+displayBytesUtf8 = Utf8Builder . BB.byteString -displayBuilderToText :: DisplayBuilder -> Text-displayBuilderToText =+-- | Convert a 'Utf8Builder' value into a strict 'Text'.+--+-- @since 0.1.0.0+utf8BuilderToText :: Utf8Builder -> Text+utf8BuilderToText =   decodeUtf8With lenientDecode . BL.toStrict . BB.toLazyByteString . getUtf8Builder -writeFileDisplayBuilder :: MonadIO m => FilePath -> DisplayBuilder -> m ()-writeFileDisplayBuilder fp (DisplayBuilder builder) =+-- | Convert a 'Utf8Builder' value into a lazy 'Text'.+--+-- @since 0.1.0.0+utf8BuilderToLazyText :: Utf8Builder -> TL.Text+utf8BuilderToLazyText =+  TL.decodeUtf8With lenientDecode . BB.toLazyByteString . getUtf8Builder++-- | Write the given 'Utf8Builder' value to a file.+--+-- @since 0.1.0.0+writeFileUtf8Builder :: MonadIO m => FilePath -> Utf8Builder -> m ()+writeFileUtf8Builder fp (Utf8Builder builder) =   liftIO $ withBinaryFile fp WriteMode $ \h -> BB.hPutBuilder h builder
src/RIO/Prelude/Extra.hs view
@@ -7,16 +7,20 @@   , forMaybeA   , forMaybeM   , nubOrd+  , whenM+  , unlessM   ) where  import qualified Data.Set as Set import Data.Monoid (First (..)) import RIO.Prelude.Reexports +-- | Apply a function to a 'Left' constructor mapLeft :: (a1 -> a2) -> Either a1 b -> Either a2 b mapLeft f (Left a1) = Left (f a1) mapLeft _ (Right b) = Right b +-- | Get a 'First' value with a default fallback fromFirst :: a -> First a -> a fromFirst x = fromMaybe x . getFirst @@ -36,6 +40,7 @@ forMaybeM :: Monad m => [a] -> (a -> m (Maybe b)) -> m [b] forMaybeM = flip mapMaybeM +-- | Strip out duplicates nubOrd :: Ord a => [a] -> [a] nubOrd =   loop mempty@@ -44,3 +49,15 @@     loop !s (a:as)       | a `Set.member` s = loop s as       | otherwise = a : loop (Set.insert a s) as++-- | Run the second value if the first value returns 'True'+whenM :: Monad m => m Bool -> m () -> m ()+whenM boolM action = do+  x <- boolM+  if x then action else return ()++-- | Run the second value if the first value returns 'False'+unlessM :: Monad m => m Bool -> m () -> m ()+unlessM boolM action = do+  x <- boolM+  if x then return () else action
src/RIO/Prelude/IO.hs view
@@ -2,7 +2,6 @@   ( withLazyFile   , readFileBinary   , writeFileBinary-  , ReadFileUtf8Exception (..)   , readFileUtf8   , writeFileUtf8   , hPutBuilder@@ -12,6 +11,8 @@ import qualified Data.ByteString.Builder  as BB import qualified Data.ByteString          as B import qualified Data.ByteString.Lazy     as BL+import qualified Data.Text.IO             as T+import           System.IO                (hSetEncoding, utf8)  -- | Lazily get the contents of a file. Unlike 'BL.readFile', this -- ensures that if an exception is thrown, the file handle is closed@@ -19,13 +20,13 @@ withLazyFile :: MonadUnliftIO m => FilePath -> (BL.ByteString -> m a) -> m a withLazyFile fp inner = withBinaryFile fp ReadMode $ inner <=< liftIO . BL.hGetContents -data ReadFileUtf8Exception = ReadFileUtf8Exception !FilePath !UnicodeException-  deriving (Show, Typeable)-instance Exception ReadFileUtf8Exception- -- | Write a file in UTF8 encoding+--+-- This function will use OS-specific line ending handling. writeFileUtf8 :: MonadIO m => FilePath -> Text -> m ()-writeFileUtf8 fp = writeFileBinary fp . encodeUtf8+writeFileUtf8 fp text = liftIO $ withFile fp WriteMode $ \h -> do+  hSetEncoding h utf8+  T.hPutStr h text  hPutBuilder :: MonadIO m => Handle -> Builder -> m () hPutBuilder h = liftIO . BB.hPutBuilder h@@ -41,9 +42,9 @@  -- | Read a file in UTF8 encoding, throwing an exception on invalid character -- encoding.+--+-- This function will use OS-specific line ending handling. readFileUtf8 :: MonadIO m => FilePath -> m Text-readFileUtf8 fp = do-  bs <- readFileBinary fp-  case decodeUtf8' bs of-    Left e     -> throwIO $ ReadFileUtf8Exception fp e-    Right text -> return text+readFileUtf8 fp = liftIO $ withFile fp ReadMode $ \h -> do+  hSetEncoding h utf8+  T.hGetContents h
src/RIO/Prelude/Logger.hs view
@@ -40,6 +40,8 @@   , CallStack     -- * Convenience functions   , displayCallStack+    -- * Accessors+  , logFuncUseColorL   ) where  import RIO.Prelude.Reexports hiding ((<>))@@ -88,28 +90,32 @@ -- including printing to standard output or no action at all. -- -- @since 0.0.0.0-newtype LogFunc = LogFunc-  { _unLogFunc :: CallStack -> LogSource -> LogLevel -> DisplayBuilder -> IO ()+data LogFunc = LogFunc+  { unLogFunc :: !(CallStack -> LogSource -> LogLevel -> Utf8Builder -> IO ())+  , lfOptions :: !(Maybe LogOptions)   }  -- | Perform both sets of actions per log entry. -- -- @since 0.0.0.0 instance Semigroup LogFunc where-  LogFunc f <> LogFunc g = LogFunc $ \a b c d -> f a b c d *> g a b c d+  LogFunc f o1 <> LogFunc g o2 = LogFunc+    { unLogFunc = \a b c d -> f a b c d *> g a b c d+    , lfOptions = o1 `mplus` o2+    }  -- | 'mempty' peforms no logging. -- -- @since 0.0.0.0 instance Monoid LogFunc where-  mempty = LogFunc $ \_ _ _ _ -> return ()+  mempty = mkLogFunc $ \_ _ _ _ -> return ()   mappend = (<>)  -- | Create a 'LogFunc' from the given function. -- -- @since 0.0.0.0-mkLogFunc :: (CallStack -> LogSource -> LogLevel -> DisplayBuilder -> IO ()) -> LogFunc-mkLogFunc = LogFunc+mkLogFunc :: (CallStack -> LogSource -> LogLevel -> Utf8Builder -> IO ()) -> LogFunc+mkLogFunc f = LogFunc f Nothing  -- | Generic, basic function for creating other logging functions. --@@ -118,10 +124,10 @@   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)   => LogSource   -> LogLevel-  -> DisplayBuilder+  -> Utf8Builder   -> m () logGeneric src level str = do-  LogFunc logFunc <- view logFuncL+  LogFunc logFunc _ <- view logFuncL   liftIO $ logFunc callStack src level str  -- | Log a debug level message with no source.@@ -129,7 +135,7 @@ -- @since 0.0.0.0 logDebug   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)-  => DisplayBuilder+  => Utf8Builder   -> m () logDebug = logGeneric "" LevelDebug @@ -138,7 +144,7 @@ -- @since 0.0.0.0 logInfo   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)-  => DisplayBuilder+  => Utf8Builder   -> m () logInfo = logGeneric "" LevelInfo @@ -147,7 +153,7 @@ -- @since 0.0.0.0 logWarn   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)-  => DisplayBuilder+  => Utf8Builder   -> m () logWarn = logGeneric "" LevelWarn @@ -156,7 +162,7 @@ -- @since 0.0.0.0 logError   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)-  => DisplayBuilder+  => Utf8Builder   -> m () logError = logGeneric "" LevelError @@ -166,7 +172,7 @@ logOther   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)   => Text -- ^ level-  -> DisplayBuilder+  -> Utf8Builder   -> m () logOther = logGeneric "" . LevelOther @@ -176,7 +182,7 @@ logDebugS   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)   => LogSource-  -> DisplayBuilder+  -> Utf8Builder   -> m () logDebugS src = logGeneric src LevelDebug @@ -186,7 +192,7 @@ logInfoS   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)   => LogSource-  -> DisplayBuilder+  -> Utf8Builder   -> m () logInfoS src = logGeneric src LevelInfo @@ -196,7 +202,7 @@ logWarnS   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)   => LogSource-  -> DisplayBuilder+  -> Utf8Builder   -> m () logWarnS src = logGeneric src LevelWarn @@ -206,7 +212,7 @@ logErrorS   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)   => LogSource-  -> DisplayBuilder+  -> Utf8Builder   -> m () logErrorS src = logGeneric src LevelError @@ -218,7 +224,7 @@   :: (MonadIO m, MonadReader env m, HasLogFunc env, HasCallStack)   => Text -- ^ level   -> LogSource-  -> DisplayBuilder+  -> Utf8Builder   -> m () logOtherS src = logGeneric src . LevelOther @@ -234,7 +240,7 @@ -- provided by this module does. -- -- @since 0.0.0.0-logSticky :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => DisplayBuilder -> m ()+logSticky :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => Utf8Builder -> m () logSticky = logOther "sticky"  -- | This will print out the given message with a newline and disable@@ -242,7 +248,7 @@ -- happens. -- -- @since 0.0.0.0-logStickyDone :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => DisplayBuilder -> m ()+logStickyDone :: (MonadIO m, HasCallStack, MonadReader env m, HasLogFunc env) => Utf8Builder -> m () logStickyDone = logOther "sticky-done"  -- TODO It might be better at some point to have a 'runSticky' function@@ -348,10 +354,17 @@             (\var -> do                 state <- takeMVar var                 unless (B.null state) (logSend options "\n"))-            (\var -> run $ inner $ LogFunc $ stickyImpl var options (simpleLogFunc options))+            (\var -> run $ inner $ LogFunc+                { unLogFunc = stickyImpl var options (simpleLogFunc options)+                , lfOptions = Just options+                }+            )     else-      run $ inner $ LogFunc $ \cs src level str ->-      simpleLogFunc options cs src (noSticky level) str+      run $ inner $ LogFunc+        { unLogFunc = \cs src level str ->+             simpleLogFunc options cs src (noSticky level) str+        , lfOptions = Just options+        }  -- | Replace Unicode characters with non-Unicode equivalents replaceUnicode :: Char -> Char@@ -420,7 +433,7 @@ setLogUseColor :: Bool -> LogOptions -> LogOptions setLogUseColor c options = options { logUseColor = c } -simpleLogFunc :: LogOptions -> CallStack -> LogSource -> LogLevel -> DisplayBuilder -> IO ()+simpleLogFunc :: LogOptions -> CallStack -> LogSource -> LogLevel -> Utf8Builder -> IO () simpleLogFunc lo cs _src level msg =     when (level >= logMinLevel lo) $ do       timestamp <- getTimestamp@@ -441,11 +454,11 @@    setRed = "\ESC[31m"    setMagenta = "\ESC[35m" -   ansi :: DisplayBuilder -> DisplayBuilder+   ansi :: Utf8Builder -> Utf8Builder    ansi xs | logUseColor lo = xs            | otherwise = mempty -   getTimestamp :: IO DisplayBuilder+   getTimestamp :: IO Utf8Builder    getTimestamp      | logVerboseFormat lo && logUseTime lo =        do now <- getZonedTime@@ -455,7 +468,7 @@        formatTime' =            take timestampLength . formatTime defaultTimeLocale "%F %T.%q" -   getLevel :: DisplayBuilder+   getLevel :: Utf8Builder    getLevel      | logVerboseFormat lo =          case level of@@ -470,18 +483,18 @@              "] "      | otherwise = mempty -   getLoc :: DisplayBuilder+   getLoc :: Utf8Builder    getLoc      | logVerboseFormat lo = ansi setBlack <> "\n@(" <> displayCallStack cs <> ")"      | otherwise = mempty --- | Convert a 'CallStack' value into a 'DisplayBuilder' indicating+-- | Convert a 'CallStack' value into a 'Utf8Builder' indicating -- the first source location. -- -- TODO Consider showing the entire call stack instead. -- -- @since 0.0.0.0-displayCallStack :: CallStack -> DisplayBuilder+displayCallStack :: CallStack -> Utf8Builder displayCallStack cs =      case reverse $ getCallStack cs of        [] -> "<no call stack found>"@@ -501,8 +514,8 @@  stickyImpl     :: MVar ByteString -> LogOptions-    -> (CallStack -> LogSource -> LogLevel -> DisplayBuilder -> IO ())-    -> CallStack -> LogSource -> LogLevel -> DisplayBuilder -> IO ()+    -> (CallStack -> LogSource -> LogLevel -> Utf8Builder -> IO ())+    -> CallStack -> LogSource -> LogLevel -> Utf8Builder -> IO () stickyImpl ref lo logFunc loc src level msgOrig = modifyMVar_ ref $ \sticky -> do   let backSpaceChar = '\8'       repeating = mconcat . replicate (B.length sticky) . char7@@ -528,3 +541,12 @@           unless (B.null sticky) $ logSend lo (byteString sticky <> flush)           return sticky       | otherwise -> return sticky++-- | Is the log func configured to use color output?+--+-- Intended for use by code which wants to optionally add additional color to+-- its log messages.+--+-- @since 0.1.0.0+logFuncUseColorL :: HasLogFunc env => SimpleGetter env Bool+logFuncUseColorL = logFuncL.to (maybe False logUseColor . lfOptions)
src/RIO/Prelude/RIO.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE TypeFamilies #-} module RIO.Prelude.RIO   ( RIO (..)   , runRIO@@ -30,3 +31,7 @@     askUnliftIO = RIO $ ReaderT $ \r ->                   withUnliftIO $ \u ->                   return (UnliftIO (unliftIO u . flip runReaderT r . unRIO))++instance PrimMonad (RIO env) where+    type PrimState (RIO env) = PrimState IO+    primitive = RIO . ReaderT . const . primitive
src/RIO/Prelude/Reexports.hs view
@@ -2,7 +2,13 @@ module RIO.Prelude.Reexports   ( module UnliftIO   -- List imports from UnliftIO?+  , UnliftIO.Concurrent.ThreadId+  , UnliftIO.Concurrent.myThreadId+  , UnliftIO.Concurrent.isCurrentThreadBound+  , UnliftIO.Concurrent.threadWaitRead+  , UnliftIO.Concurrent.threadWaitWrite   , UnliftIO.Concurrent.threadDelay+  , yieldThread   , Control.Applicative.Alternative   , Control.Applicative.Applicative (..)   , Control.Applicative.liftA@@ -48,6 +54,7 @@   , Control.Monad.Reader.asks   , Control.Monad.Reader.local   , Data.Bool.Bool(..)+  , Data.Bool.bool   , Data.Bool.not   , Data.Bool.otherwise   , (Data.Bool.&&)@@ -142,19 +149,11 @@   , Data.Maybe.mapMaybe   , Data.Maybe.maybe   , Data.Maybe.maybeToList-  , Data.Monoid.All (..)-  , Data.Monoid.Any (..)-  , Data.Monoid.Endo (..)-  , Data.Monoid.First (..)-  , Data.Monoid.Last (..)   , Data.Monoid.Monoid (..)-  , Data.Monoid.Product (..)-  , Data.Monoid.Sum (..)-  , (Data.Monoid.<>)   , Data.Ord.Ord(..)   , Data.Ord.Ordering(..)   , Data.Ord.comparing-  , Data.Semigroup.Semigroup+  , Data.Semigroup.Semigroup (..)   , Data.Set.Set   , Data.String.IsString(..)   , Data.Text.Text@@ -240,9 +239,9 @@ import           Data.Functor             (Functor (..)) import           Data.Int                 (Int) import           Data.Maybe               (Maybe, catMaybes, fromMaybe)-import           Data.Monoid              (First (..), Monoid (..))+import           Data.Monoid              (Monoid (..)) import           Data.Ord                 (Ord)-import           Data.Semigroup           (Semigroup)+import           Data.Semigroup           (Semigroup (..)) import           Data.String              (IsString (..)) import           Data.Text                (Text) import           Data.Text.Encoding       (decodeUtf8', decodeUtf8With,@@ -283,7 +282,6 @@ import qualified Data.List import qualified Data.Map.Strict import qualified Data.Maybe-import qualified Data.Monoid import qualified Data.Ord import qualified Data.Set import qualified Data.Text.Encoding.Error@@ -297,3 +295,7 @@ import qualified Prelude import qualified System.Exit import qualified Text.Read++yieldThread :: MonadIO m => m ()+yieldThread = UnliftIO.Concurrent.yield+{-# INLINE yieldThread #-}
src/RIO/Prelude/Text.hs view
@@ -1,7 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} module RIO.Prelude.Text-  ( stripCR-  , decodeUtf8Lenient+  ( decodeUtf8Lenient   , tshow   ) where @@ -9,10 +8,6 @@ import Data.Text.Encoding (decodeUtf8With) import RIO.Prelude.Reexports import Data.Text.Encoding.Error (lenientDecode)---- | Strip trailing carriage return from Text-stripCR :: Text -> Text-stripCR t = fromMaybe t (T.stripSuffix "\r" t)  tshow :: Show a => a -> Text tshow = T.pack . show
+ src/RIO/Prelude/Trace.hs view
@@ -0,0 +1,186 @@+module RIO.Prelude.Trace+  ( -- * Text+    trace+  , traceId+  , traceIO+  , traceM+  , traceEvent+  , traceEventIO+  , traceMarker+  , traceMarkerIO+  , traceStack+    -- * Show+  , traceShow+  , traceShowId+  , traceShowIO+  , traceShowM+  , traceShowEvent+  , traceShowEventIO+  , traceShowMarker+  , traceShowMarkerIO+  , traceShowStack+    -- * Display+  , traceDisplay+  , traceDisplayId+  , traceDisplayIO+  , traceDisplayM+  , traceDisplayEvent+  , traceDisplayEventIO+  , traceDisplayMarker+  , traceDisplayMarkerIO+  , traceDisplayStack+  ) where++import qualified Debug.Trace as Trace++import           Control.Monad.IO.Class(MonadIO(..))+import           RIO.Prelude.Display+import           RIO.Text         (Text)+import qualified RIO.Text as Text++----------------------------------------------------+-- Text+----------------------------------------------------++{-# WARNING trace "Trace statement left in code" #-}+-- | @since 0.1.0.0+trace :: Text -> a -> a+trace = Trace.trace . Text.unpack++{-# WARNING traceId "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceId :: Text -> Text+traceId str = Trace.trace (Text.unpack str) str++{-# WARNING traceIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceIO :: MonadIO m => Text -> m ()+traceIO = liftIO . Trace.traceIO . Text.unpack++{-# WARNING traceM "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceM :: Applicative f => Text -> f ()+traceM = Trace.traceM . Text.unpack++{-# WARNING traceEvent "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceEvent :: Text -> a -> a+traceEvent = Trace.traceEvent . Text.unpack++{-# WARNING traceEventIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceEventIO :: MonadIO m => Text -> m ()+traceEventIO = liftIO . Trace.traceEventIO . Text.unpack++{-# WARNING traceMarker "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceMarker :: Text -> a -> a+traceMarker = Trace.traceMarker . Text.unpack++{-# WARNING traceMarkerIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceMarkerIO :: MonadIO m => Text -> m ()+traceMarkerIO = liftIO . Trace.traceMarkerIO . Text.unpack++{-# WARNING traceStack "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceStack :: Text -> a -> a+traceStack = Trace.traceStack . Text.unpack++----------------------------------------------------+-- Show+----------------------------------------------------++{-# WARNING traceShow "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShow :: Show a => a -> b -> b+traceShow = Trace.traceShow++{-# WARNING traceShowId "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowId :: Show a => a -> a+traceShowId = Trace.traceShowId++{-# WARNING traceShowIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowIO :: (Show a, MonadIO m) => a -> m ()+traceShowIO = liftIO . Trace.traceIO . show++{-# WARNING traceShowM "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowM :: (Show a, Applicative f) => a -> f ()+traceShowM = Trace.traceM . show++{-# WARNING traceShowEvent "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowEvent :: Show a => a -> b -> b+traceShowEvent = Trace.traceEvent . show++{-# WARNING traceShowEventIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowEventIO :: (Show a, MonadIO m) => a -> m ()+traceShowEventIO = liftIO . Trace.traceEventIO . show++{-# WARNING traceShowMarker "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowMarker :: Show a => a -> b -> b+traceShowMarker = Trace.traceMarker . show++{-# WARNING traceShowMarkerIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowMarkerIO :: (Show a, MonadIO m) => a -> m ()+traceShowMarkerIO = liftIO . Trace.traceMarkerIO . show++{-# WARNING traceShowStack "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceShowStack :: Show a => a -> b -> b+traceShowStack = Trace.traceStack . show++----------------------------------------------------+-- Display+----------------------------------------------------++{-# WARNING traceDisplay "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplay :: Display a => a -> b -> b+traceDisplay = trace . utf8BuilderToText . display++{-# WARNING traceDisplayId "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayId :: Display a => a -> a+traceDisplayId x = traceDisplay x x++{-# WARNING traceDisplayIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayIO :: (Display a, MonadIO m) => a -> m ()+traceDisplayIO = traceIO . utf8BuilderToText . display++{-# WARNING traceDisplayM "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayM :: (Display a, Applicative f) => a -> f ()+traceDisplayM = traceM . utf8BuilderToText . display++{-# WARNING traceDisplayEvent "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayEvent :: Display a => a -> b -> b+traceDisplayEvent = traceEvent . utf8BuilderToText . display++{-# WARNING traceDisplayEventIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayEventIO :: (Display a, MonadIO m) => a -> m ()+traceDisplayEventIO = traceEventIO . utf8BuilderToText . display++{-# WARNING traceDisplayMarker "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayMarker :: Display a => a -> b -> b+traceDisplayMarker = traceMarker . utf8BuilderToText . display++{-# WARNING traceDisplayMarkerIO "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayMarkerIO :: (Display a, MonadIO m) => a -> m ()+traceDisplayMarkerIO = traceMarkerIO . utf8BuilderToText . display++{-# WARNING traceDisplayStack "Trace statement left in code" #-}+-- | @since 0.1.0.0+traceDisplayStack :: Display a => a -> b -> b+traceDisplayStack = traceStack . utf8BuilderToText . display
src/RIO/Process.hs view
@@ -379,17 +379,16 @@   x <- proc'   end <- getMonotonicTime   let diff = end - start-  -- useAnsi <- asks getAnsiTerminal FIXME-  let useAnsi = True+  useColor <- view logFuncUseColorL   logDebug       ("Process finished in " <>-      (if useAnsi then "\ESC[92m" else "") <> -- green+      (if useColor then "\ESC[92m" else "") <> -- green       timeSpecMilliSecondText diff <>-      (if useAnsi then "\ESC[0m" else "") <> -- reset+      (if useColor then "\ESC[0m" else "") <> -- reset        ": " <> display cmdText)   return x -timeSpecMilliSecondText :: Double -> DisplayBuilder+timeSpecMilliSecondText :: Double -> Utf8Builder timeSpecMilliSecondText d = display (round (d * 1000) :: Int) <> "ms"  -- | Provide a 'ProcessConfig' based on the 'ProcessContext' in
+ src/RIO/Seq.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE CPP #-}+-- | @Seq@. Import as:+--+-- > import qualified RIO.Seq as Seq+module RIO.Seq+  (+    Data.Sequence.Seq(..)++    -- * Construction+  , Data.Sequence.empty+  , Data.Sequence.singleton+  , (Data.Sequence.<|)+  , (Data.Sequence.|>)+  , (Data.Sequence.><)+  , Data.Sequence.fromList+  , Data.Sequence.fromFunction+  , Data.Sequence.fromArray++    -- ** Repetition+  , Data.Sequence.replicate+  , Data.Sequence.replicateA+  , Data.Sequence.replicateM+#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.cycleTaking+#endif++    -- ** Iterative construction+  , Data.Sequence.iterateN+  , Data.Sequence.unfoldr+  , Data.Sequence.unfoldl++    -- * Deconstruction+    -- | Additional functions for deconstructing sequences are available via the+    -- 'Foldable' instance of 'Seq'.++    -- ** Queries+  , Data.Sequence.null+  , Data.Sequence.length+    -- ** Views+  , Data.Sequence.ViewL(..)+  , Data.Sequence.viewl+  , Data.Sequence.ViewR(..)+  , Data.Sequence.viewr++    -- * Scans+  , Data.Sequence.scanl+  , Data.Sequence.scanl1+  , Data.Sequence.scanr+  , Data.Sequence.scanr1++    -- * Sublists+  , Data.Sequence.tails+  , Data.Sequence.inits+#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.chunksOf+#endif++    -- ** Sequential searches+  , Data.Sequence.takeWhileL+  , Data.Sequence.takeWhileR+  , Data.Sequence.dropWhileL+  , Data.Sequence.dropWhileR+  , Data.Sequence.spanl+  , Data.Sequence.spanr+  , Data.Sequence.breakl+  , Data.Sequence.breakr+  , Data.Sequence.partition+  , Data.Sequence.filter++    -- * Sorting+  , Data.Sequence.sort+  , Data.Sequence.sortBy+  , Data.Sequence.unstableSort+  , Data.Sequence.unstableSortBy++    -- * Indexing+#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.lookup+  , (Data.Sequence.!?)+#endif+  , Data.Sequence.index+  , Data.Sequence.adjust++#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.adjust'+#endif+  , Data.Sequence.update+  , Data.Sequence.take+  , Data.Sequence.drop+#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.insertAt+  , Data.Sequence.deleteAt+#endif+  , Data.Sequence.splitAt++    -- ** Indexing with predicates+    -- | These functions perform sequential searches from the left or right ends+    -- of the sequence elements.+  , Data.Sequence.elemIndexL+  , Data.Sequence.elemIndicesL+  , Data.Sequence.elemIndexR+  , Data.Sequence.elemIndicesR+  , Data.Sequence.findIndexL+  , Data.Sequence.findIndicesL+  , Data.Sequence.findIndexR+  , Data.Sequence.findIndicesR++    -- * Folds+    -- | General folds are available via the 'Foldable' instance of 'Seq'.+#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.foldMapWithIndex+#endif+  , Data.Sequence.foldlWithIndex+  , Data.Sequence.foldrWithIndex++    -- * Transformations+  , Data.Sequence.mapWithIndex+#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.traverseWithIndex+#endif+  , Data.Sequence.reverse+#if MIN_VERSION_containers(0, 5, 8)+  , Data.Sequence.intersperse+#endif++    -- ** Zips+  , Data.Sequence.zip+  , Data.Sequence.zipWith+  , Data.Sequence.zip3+  , Data.Sequence.zipWith3+  , Data.Sequence.zip4+  , Data.Sequence.zipWith4+  ) where++import qualified Data.Sequence
src/RIO/Set.hs view
@@ -1,8 +1,94 @@+{-# LANGUAGE CPP #-} -- | @Set@. Import as: ----- > import qualified RIO.Set as S+-- > import qualified RIO.Set as Set module RIO.Set-  ( module Data.Set+  (+  -- * Set type+    Data.Set.Set++  -- * Operators+  , (Data.Set.\\)++  -- * Query+  , Data.Set.null+  , Data.Set.size+  , Data.Set.member+  , Data.Set.notMember+  , Data.Set.lookupLT+  , Data.Set.lookupGT+  , Data.Set.lookupLE+  , Data.Set.lookupGE+  , Data.Set.isSubsetOf+  , Data.Set.isProperSubsetOf++  -- * Construction+  , Data.Set.empty+  , Data.Set.singleton+  , Data.Set.insert+  , Data.Set.delete++  -- * Combine+  , Data.Set.union+  , Data.Set.unions+  , Data.Set.difference+  , Data.Set.intersection++  -- * Filter+  , Data.Set.filter+#if MIN_VERSION_containers(0,5,8)+  , Data.Set.takeWhileAntitone+  , Data.Set.dropWhileAntitone+  , Data.Set.spanAntitone+#endif+  , Data.Set.partition+  , Data.Set.split+  , Data.Set.splitMember+  , Data.Set.splitRoot++  -- * Indexed+  , Data.Set.lookupIndex+#if MIN_VERSION_containers(0,5,8)+  , Data.Set.take+  , Data.Set.drop+  , Data.Set.splitAt+#endif++  -- * Map+  , Data.Set.map++  -- * Folds+  , Data.Set.foldr+  , Data.Set.foldl+  -- ** Strict folds+  , Data.Set.foldr'+  , Data.Set.foldl'++  -- * Min\/Max+#if MIN_VERSION_containers(0,5,9)+  , Data.Set.lookupMin+  , Data.Set.lookupMax+#endif+  , Data.Set.deleteMin+  , Data.Set.deleteMax+  , Data.Set.maxView+  , Data.Set.minView++  -- * Conversion++  -- ** List+  , Data.Set.elems+  , Data.Set.toList+  , Data.Set.fromList++  -- ** Ordered list+  , Data.Set.toAscList+  , Data.Set.toDescList++  -- * Debugging+  , Data.Set.showTree+  , Data.Set.showTreeWith+  , Data.Set.valid   ) where -import Data.Set+import qualified Data.Set
+ src/RIO/Set/Partial.hs view
@@ -0,0 +1,15 @@+module RIO.Set.Partial+  (+  -- * Indexed+    Data.Set.findIndex+  , Data.Set.elemAt+  , Data.Set.deleteAt++  -- * Min\/Max+  , Data.Set.findMin+  , Data.Set.findMax+  , Data.Set.deleteFindMin+  , Data.Set.deleteFindMax+  ) where++import qualified Data.Set
+ src/RIO/Set/Unchecked.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE CPP #-}++-- | This module contains functions from "Data.Set" that have unchecked+--   preconditions on their input.  If these preconditions are not satisfied,+--   the data structure may end up in an invalid state and other operations+--   may misbehave.+module RIO.Set.Unchecked+  (+  -- * Map+    Data.Set.mapMonotonic++  -- * Ordered list+  , Data.Set.fromAscList+#if MIN_VERSION_containers(0,5,8)+  , Data.Set.fromDescList+#endif+  , Data.Set.fromDistinctAscList+#if MIN_VERSION_containers(0,5,8)+  , Data.Set.fromDistinctDescList+#endif+  ) where++import qualified Data.Set
src/RIO/Text.hs view
@@ -1,20 +1,153 @@+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE OverloadedStrings #-}+ -- | Strict @Text@. Import as: ----- > import qualified RIO.Text as T+-- > import qualified RIO.Text as Text+--+-- This module does not export any partial functions.  For those, see+-- "RIO.Text.Partial" module RIO.Text-  ( module Data.Text-  , Data.Text.Encoding.encodeUtf8-  , Data.Text.Encoding.decodeUtf8With-  , Data.Text.Encoding.decodeUtf8'-  , Data.Text.Encoding.Error.lenientDecode-  , dropPrefix-  , dropSuffix-  ) where+    (+    -- * Types+      Data.Text.Text -import           Data.Text -- FIXME hide partials+    -- * Creation and elimination+    , Data.Text.pack+    , Data.Text.unpack+    , Data.Text.singleton+    , Data.Text.empty++    -- * Basic interface+    , Data.Text.cons+    , Data.Text.snoc+    , Data.Text.append+    , Data.Text.uncons+    , Data.Text.null+    , Data.Text.length+    , Data.Text.compareLength++    -- * Transformations+    , Data.Text.map+    , Data.Text.intercalate+    , Data.Text.intersperse+    , Data.Text.transpose+    , Data.Text.reverse++    -- ** Case conversion+    , Data.Text.toCaseFold+    , Data.Text.toLower+    , Data.Text.toUpper+    , Data.Text.toTitle++    -- ** Justification+    , Data.Text.justifyLeft+    , Data.Text.justifyRight+    , Data.Text.center++    -- * Folds+    , Data.Text.foldl+    , Data.Text.foldl'+    , Data.Text.foldr++    -- ** Special folds+    , Data.Text.concat+    , Data.Text.concatMap+    , Data.Text.any+    , Data.Text.all++    -- * Construction++    -- ** Scans+    , Data.Text.scanl+    , Data.Text.scanl1 -- scanl1 and scanr1 are /not/ partial+    , Data.Text.scanr+    , Data.Text.scanr1++    -- ** Accumulating maps+    , Data.Text.mapAccumL+    , Data.Text.mapAccumR++    -- ** Generation and unfolding+    , Data.Text.replicate+    , Data.Text.unfoldr+    , Data.Text.unfoldrN++    -- * Substrings++    -- ** Breaking strings+    , Data.Text.take+    , Data.Text.takeEnd+    , Data.Text.drop+    , Data.Text.dropEnd+    , Data.Text.takeWhile+    , Data.Text.takeWhileEnd+    , Data.Text.dropWhile+    , Data.Text.dropWhileEnd+    , Data.Text.dropAround+    , Data.Text.strip+    , Data.Text.stripStart+    , Data.Text.stripEnd+    , Data.Text.splitAt+    , Data.Text.break+    , Data.Text.span+    , Data.Text.group+    , Data.Text.groupBy+    , Data.Text.inits+    , Data.Text.tails++    -- ** Breaking into many substrings+    , Data.Text.split+    , Data.Text.chunksOf++    -- ** Breaking into lines and words+    , Data.Text.lines+    , linesCR+    , Data.Text.words+    , Data.Text.unlines+    , Data.Text.unwords++    -- * Predicates+    , Data.Text.isPrefixOf+    , Data.Text.isSuffixOf+    , Data.Text.isInfixOf++    -- ** View patterns+    , Data.Text.stripPrefix+    , Data.Text.stripSuffix+    , dropPrefix+    , dropSuffix+    , Data.Text.commonPrefixes++    -- * Searching+    , Data.Text.filter+    , Data.Text.find+    , Data.Text.partition++    -- * Indexing+    , Data.Text.index+    , Data.Text.findIndex++    -- * Zipping+    , Data.Text.zip+    , Data.Text.zipWith++    -- * Low level operations+    , Data.Text.copy+    , Data.Text.unpackCString#++    -- * Encoding+    , Data.Text.Encoding.encodeUtf8+    , Data.Text.Encoding.decodeUtf8With+    , Data.Text.Encoding.decodeUtf8'+    , Data.Text.Encoding.Error.lenientDecode+    ) where++import           Data.Maybe               (fromMaybe)+import           Data.Text                (Text, stripPrefix, stripSuffix)+import qualified Data.Text import qualified Data.Text.Encoding import qualified Data.Text.Encoding.Error-import           Data.Maybe (fromMaybe)  -- | Drop prefix if present, otherwise return original 'Text'. --@@ -31,3 +164,12 @@            -> Text            -> Text dropSuffix suffix t = fromMaybe t (stripSuffix suffix t)++-- | 'linesCR' breaks a 'Text' up into a list of `Text`s at newline+-- 'Char's. It is very similar to 'Data.Text.lines', but it also removes+-- any trailing @'\r'@ characters. The resulting 'Text' values do not+-- contain newlines or trailing @'\r'@ characters.+--+-- @since 0.1.0.0+linesCR :: Text -> [Text]+linesCR = map (dropSuffix "\r") . Data.Text.lines
src/RIO/Text/Lazy.hs view
@@ -1,8 +1,139 @@ -- | Lazy @Text@. Import as: ----- > import qualified RIO.Text.Lazy as T.Lazy+-- > import qualified RIO.Text.Lazy as TL+--+-- This module does not export any partial functions.  For those, see+-- "RIO.Text.Lazy.Partial" module RIO.Text.Lazy-  ( module Data.Text.Lazy-  ) where+    (+    -- * Types+      Data.Text.Lazy.Text -import Data.Text.Lazy+    -- * Creation and elimination+    , Data.Text.Lazy.pack+    , Data.Text.Lazy.unpack+    , Data.Text.Lazy.singleton+    , Data.Text.Lazy.empty+    , Data.Text.Lazy.fromChunks+    , Data.Text.Lazy.toChunks+    , Data.Text.Lazy.toStrict+    , Data.Text.Lazy.fromStrict+    , Data.Text.Lazy.foldrChunks+    , Data.Text.Lazy.foldlChunks++    -- * Basic interface+    , Data.Text.Lazy.cons+    , Data.Text.Lazy.snoc+    , Data.Text.Lazy.append+    , Data.Text.Lazy.uncons+    , Data.Text.Lazy.null+    , Data.Text.Lazy.length+    , Data.Text.Lazy.compareLength++    -- * Transformations+    , Data.Text.Lazy.map+    , Data.Text.Lazy.intercalate+    , Data.Text.Lazy.intersperse+    , Data.Text.Lazy.transpose+    , Data.Text.Lazy.reverse++    -- ** Case conversion+    , Data.Text.Lazy.toCaseFold+    , Data.Text.Lazy.toLower+    , Data.Text.Lazy.toUpper+    , Data.Text.Lazy.toTitle++    -- ** Justification+    , Data.Text.Lazy.justifyLeft+    , Data.Text.Lazy.justifyRight+    , Data.Text.Lazy.center++    -- * Folds+    , Data.Text.Lazy.foldl+    , Data.Text.Lazy.foldl'+    , Data.Text.Lazy.foldr++    -- ** Special folds+    , Data.Text.Lazy.concat+    , Data.Text.Lazy.concatMap+    , Data.Text.Lazy.any+    , Data.Text.Lazy.all++    -- * Construction++    -- ** Scans+    , Data.Text.Lazy.scanl+    , Data.Text.Lazy.scanl1  -- NB. scanl1 and scanr1 are not partial+    , Data.Text.Lazy.scanr+    , Data.Text.Lazy.scanr1++    -- ** Accumulating maps+    , Data.Text.Lazy.mapAccumL+    , Data.Text.Lazy.mapAccumR++    -- ** Generation and unfolding+    , Data.Text.Lazy.repeat+    , Data.Text.Lazy.replicate+    , Data.Text.Lazy.cycle+    , Data.Text.Lazy.iterate+    , Data.Text.Lazy.unfoldr+    , Data.Text.Lazy.unfoldrN++    -- * Substrings++    -- ** Breaking strings+    , Data.Text.Lazy.take+    , Data.Text.Lazy.takeEnd+    , Data.Text.Lazy.drop+    , Data.Text.Lazy.dropEnd+    , Data.Text.Lazy.takeWhile+    , Data.Text.Lazy.takeWhileEnd+    , Data.Text.Lazy.dropWhile+    , Data.Text.Lazy.dropWhileEnd+    , Data.Text.Lazy.dropAround+    , Data.Text.Lazy.strip+    , Data.Text.Lazy.stripStart+    , Data.Text.Lazy.stripEnd+    , Data.Text.Lazy.splitAt+    , Data.Text.Lazy.span+    , Data.Text.Lazy.break+    , Data.Text.Lazy.group+    , Data.Text.Lazy.groupBy+    , Data.Text.Lazy.inits+    , Data.Text.Lazy.tails++    -- ** Breaking into many substrings+    , Data.Text.Lazy.split+    , Data.Text.Lazy.chunksOf++    -- ** Breaking into lines and words+    , Data.Text.Lazy.lines+    , Data.Text.Lazy.words+    , Data.Text.Lazy.unlines+    , Data.Text.Lazy.unwords++    -- * Predicates+    , Data.Text.Lazy.isPrefixOf+    , Data.Text.Lazy.isSuffixOf+    , Data.Text.Lazy.isInfixOf++    -- ** View patterns+    , Data.Text.Lazy.stripPrefix+    , Data.Text.Lazy.stripSuffix+    , Data.Text.Lazy.commonPrefixes++    -- * Searching+    , Data.Text.Lazy.filter+    , Data.Text.Lazy.find+    , Data.Text.Lazy.partition++    -- * Indexing+    , Data.Text.Lazy.index+    , Data.Text.Lazy.count++    -- * Zipping and unzipping+    , Data.Text.Lazy.zip+    , Data.Text.Lazy.zipWith+    ) where++import qualified Data.Text.Lazy
+ src/RIO/Text/Lazy/Partial.hs view
@@ -0,0 +1,36 @@+-- | This module exports all the partial functions from "Data.Text.Lazy"++module RIO.Text.Lazy.Partial+    (+    -- * Creation and elimination+      Data.Text.Lazy.head+    , Data.Text.Lazy.last+    , Data.Text.Lazy.tail+    , Data.Text.Lazy.init++    -- * Transformations+    , Data.Text.Lazy.replace++    -- * Folds+    , Data.Text.Lazy.foldl1+    , Data.Text.Lazy.foldl1'+    , Data.Text.Lazy.foldr1++    -- ** Special folds+    , Data.Text.Lazy.maximum+    , Data.Text.Lazy.minimum++    -- * Substrings++    -- ** Breaking strings+    , Data.Text.Lazy.breakOn+    , Data.Text.Lazy.breakOnEnd++    -- ** Breaking into many substrings+    , Data.Text.Lazy.splitOn++    -- * Searching+    , Data.Text.Lazy.breakOnAll+    ) where++import qualified Data.Text.Lazy
+ src/RIO/Text/Partial.hs view
@@ -0,0 +1,39 @@+-- | This module exports all the partial functions from "Data.Text"++module RIO.Text.Partial+    (+    -- * Basic interface+      Data.Text.head+    , Data.Text.last+    , Data.Text.tail+    , Data.Text.init++    -- * Transformations+    , Data.Text.replace++    -- * Folds+    , Data.Text.foldl1+    , Data.Text.foldl1'+    , Data.Text.foldr1++    -- ** Special folds+    , Data.Text.maximum+    , Data.Text.minimum++    -- * Substrings++    -- ** Breaking strings+    , Data.Text.breakOn+    , Data.Text.breakOnEnd++    -- ** Breaking into many substrings+    , Data.Text.splitOn++    -- * Searching+    , Data.Text.breakOnAll++    -- * Indexing+    , Data.Text.count+    ) where++import qualified Data.Text
src/RIO/Time.hs view
@@ -1,5 +1,28 @@ module RIO.Time   ( module Data.Time+  , getCurrentTime+  , getTimeZone+  , getCurrentTimeZone+  , getZonedTime+  , utcToLocalZonedTime   ) where -import Data.Time+import Control.Monad.IO.Class+import Data.Time hiding( getCurrentTime, getTimeZone, getCurrentTimeZone+                       , getZonedTime, utcToLocalZonedTime)+import qualified Data.Time++getCurrentTime :: MonadIO m => m UTCTime+getCurrentTime = liftIO Data.Time.getCurrentTime++getTimeZone :: MonadIO m => UTCTime -> m TimeZone+getTimeZone = liftIO . Data.Time.getTimeZone++getCurrentTimeZone :: MonadIO m => m TimeZone+getCurrentTimeZone = liftIO Data.Time.getCurrentTimeZone++getZonedTime :: MonadIO m => m ZonedTime+getZonedTime = liftIO Data.Time.getZonedTime++utcToLocalZonedTime :: MonadIO m => UTCTime -> m ZonedTime+utcToLocalZonedTime = liftIO . Data.Time.utcToLocalZonedTime
src/RIO/Vector.hs view
@@ -1,8 +1,255 @@+{-# LANGUAGE CPP #-} -- | Generic @Vector@ interface. Import as: -- -- > import qualified RIO.Vector as V module RIO.Vector-  ( module Data.Vector.Generic+  (+  -- * Immutable vectors+    Data.Vector.Generic.Vector++  -- * Accessors+  -- ** Length information+  , Data.Vector.Generic.length+  , Data.Vector.Generic.null++  -- ** Indexing+  , (Data.Vector.Generic.!?)++  -- ** Extracting subvectors+  , Data.Vector.Generic.slice+  , Data.Vector.Generic.take+  , Data.Vector.Generic.drop+  , Data.Vector.Generic.splitAt++  -- * Construction+  -- ** Initialisation+  , Data.Vector.Generic.empty+  , Data.Vector.Generic.singleton+  , Data.Vector.Generic.replicate+  , Data.Vector.Generic.generate+  , Data.Vector.Generic.iterateN++  -- ** Monadic initialisation+  , Data.Vector.Generic.replicateM+  , Data.Vector.Generic.generateM+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.iterateNM+#endif+  , Data.Vector.Generic.create+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.createT+#endif++  -- ** Unfolding+  , Data.Vector.Generic.unfoldr+  , Data.Vector.Generic.unfoldrN+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.unfoldrM+  , Data.Vector.Generic.unfoldrNM+#endif+  , Data.Vector.Generic.constructN+  , Data.Vector.Generic.constructrN++  -- ** Enumeration+  , Data.Vector.Generic.enumFromN+  , Data.Vector.Generic.enumFromStepN+  , Data.Vector.Generic.enumFromTo+  , Data.Vector.Generic.enumFromThenTo++  -- ** Concatenation+  , Data.Vector.Generic.cons+  , Data.Vector.Generic.snoc+  , (Data.Vector.Generic.++)+  , Data.Vector.Generic.concat+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.concatNE+#endif++  -- ** Restricting memory usage+  , Data.Vector.Generic.force++  -- * Modifying vectors+  -- ** Permutations+  , Data.Vector.Generic.reverse++  -- ** Safe destructive update+  , Data.Vector.Generic.modify++  -- * Elementwise operations+  -- ** Indexing+  , Data.Vector.Generic.indexed++  -- ** Mapping+  , Data.Vector.Generic.map+  , Data.Vector.Generic.imap+  , Data.Vector.Generic.concatMap++  -- ** Monadic mapping+  , Data.Vector.Generic.mapM+  , Data.Vector.Generic.imapM+  , Data.Vector.Generic.mapM_+  , Data.Vector.Generic.imapM_+  , Data.Vector.Generic.forM+  , Data.Vector.Generic.forM_++  -- ** Zipping+  , Data.Vector.Generic.zipWith+  , Data.Vector.Generic.zipWith3+  , Data.Vector.Generic.zipWith4+  , Data.Vector.Generic.zipWith5+  , Data.Vector.Generic.zipWith6+  , Data.Vector.Generic.izipWith+  , Data.Vector.Generic.izipWith3+  , Data.Vector.Generic.izipWith4+  , Data.Vector.Generic.izipWith5+  , Data.Vector.Generic.izipWith6+  , Data.Vector.Generic.zip+  , Data.Vector.Generic.zip3+  , Data.Vector.Generic.zip4+  , Data.Vector.Generic.zip5+  , Data.Vector.Generic.zip6++  -- ** Monadic zipping+  , Data.Vector.Generic.zipWithM+  , Data.Vector.Generic.izipWithM+  , Data.Vector.Generic.zipWithM_+  , Data.Vector.Generic.izipWithM_++  -- ** Unzipping+  , Data.Vector.Generic.unzip+  , Data.Vector.Generic.unzip3+  , Data.Vector.Generic.unzip4+  , Data.Vector.Generic.unzip5+  , Data.Vector.Generic.unzip6++  -- * Working with predicates+  -- ** Filtering+  , Data.Vector.Generic.filter+  , Data.Vector.Generic.ifilter+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.uniq+  , Data.Vector.Generic.mapMaybe+  , Data.Vector.Generic.imapMaybe+#endif+  , Data.Vector.Generic.filterM+  , Data.Vector.Generic.takeWhile+  , Data.Vector.Generic.dropWhile++  -- ** Partitioning+  , Data.Vector.Generic.partition+  , Data.Vector.Generic.unstablePartition+  , Data.Vector.Generic.span+  , Data.Vector.Generic.break++  -- ** Searching+  , Data.Vector.Generic.elem+  , Data.Vector.Generic.notElem+  , Data.Vector.Generic.find+  , Data.Vector.Generic.findIndex+  , Data.Vector.Generic.findIndices+  , Data.Vector.Generic.elemIndex+  , Data.Vector.Generic.elemIndices++  -- * Folding+  , Data.Vector.Generic.foldl+  , Data.Vector.Generic.foldl'+  , Data.Vector.Generic.foldr+  , Data.Vector.Generic.foldr'+  , Data.Vector.Generic.ifoldl+  , Data.Vector.Generic.ifoldl'+  , Data.Vector.Generic.ifoldr+  , Data.Vector.Generic.ifoldr'++  -- ** Specialised folds+  , Data.Vector.Generic.all+  , Data.Vector.Generic.any+  , Data.Vector.Generic.and+  , Data.Vector.Generic.or+  , Data.Vector.Generic.sum+  , Data.Vector.Generic.product++  -- ** Monadic folds+  , Data.Vector.Generic.foldM+  , Data.Vector.Generic.ifoldM+  , Data.Vector.Generic.foldM'+  , Data.Vector.Generic.ifoldM'+  , Data.Vector.Generic.foldM_+  , Data.Vector.Generic.ifoldM_+  , Data.Vector.Generic.foldM'_+  , Data.Vector.Generic.ifoldM'_++  -- ** Monadic sequencing+  , Data.Vector.Generic.sequence+  , Data.Vector.Generic.sequence_++  -- * Prefix sums (scans)+  , Data.Vector.Generic.prescanl+  , Data.Vector.Generic.prescanl'+  , Data.Vector.Generic.postscanl+  , Data.Vector.Generic.postscanl'+  , Data.Vector.Generic.scanl+  , Data.Vector.Generic.scanl'+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.iscanl+  , Data.Vector.Generic.iscanl'+#endif+  , Data.Vector.Generic.prescanr+  , Data.Vector.Generic.prescanr'+  , Data.Vector.Generic.postscanr+  , Data.Vector.Generic.postscanr'+  , Data.Vector.Generic.scanr+  , Data.Vector.Generic.scanr'+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.iscanr+  , Data.Vector.Generic.iscanr'+#endif++  -- * Conversions+  -- ** Lists+  , Data.Vector.Generic.toList+  , Data.Vector.Generic.fromList+  , Data.Vector.Generic.fromListN++  -- ** Different vector types+  , Data.Vector.Generic.convert++  -- ** Mutable vectors+  , Data.Vector.Generic.freeze+  , Data.Vector.Generic.thaw+  , Data.Vector.Generic.copy++  -- * Fusion support+  -- ** Conversion to/from Bundles+  , Data.Vector.Generic.stream+  , Data.Vector.Generic.unstream+  , Data.Vector.Generic.streamR+  , Data.Vector.Generic.unstreamR++  -- ** Recycling support+  , Data.Vector.Generic.new+  , Data.Vector.Generic.clone++  -- * Utilities+  -- ** Comparisons+  , Data.Vector.Generic.eq+  , Data.Vector.Generic.cmp+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.eqBy+  , Data.Vector.Generic.cmpBy+#endif++  -- ** Show and Read+  , Data.Vector.Generic.showsPrec+  , Data.Vector.Generic.readPrec+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Generic.liftShowsPrec+  , Data.Vector.Generic.liftReadsPrec+#endif++  -- ** @Data@ and @Typeable@+  , Data.Vector.Generic.gfoldl+  , Data.Vector.Generic.dataCast+  , Data.Vector.Generic.mkType   ) where -import Data.Vector.Generic+import qualified Data.Vector.Generic
src/RIO/Vector/Boxed.hs view
@@ -1,8 +1,220 @@+{-# LANGUAGE CPP #-} -- | Boxed @Vector@. Import as: ----- > import qualified RIO.Vector.Boxed as V.Boxed+-- > import qualified RIO.Vector.Boxed as VB module RIO.Vector.Boxed-  ( module Data.Vector+  (+  -- * Boxed vectors+    Data.Vector.Vector+  , Data.Vector.MVector++  -- * Accessors+  -- ** Length information+  , Data.Vector.length+  , Data.Vector.null++  -- ** Indexing+  , (Data.Vector.!?)++  -- ** Extracting subvectors+  , Data.Vector.slice+  , Data.Vector.take+  , Data.Vector.drop+  , Data.Vector.splitAt++  -- * Construction+  -- ** Initialisation+  , Data.Vector.empty+  , Data.Vector.singleton+  , Data.Vector.replicate+  , Data.Vector.generate+  , Data.Vector.iterateN++  -- ** Monadic initialisation+  , Data.Vector.replicateM+  , Data.Vector.generateM+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.iterateNM+#endif+  , Data.Vector.create+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.createT+#endif++  -- ** Unfolding+  , Data.Vector.unfoldr+  , Data.Vector.unfoldrN+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.unfoldrM+  , Data.Vector.unfoldrNM+#endif+  , Data.Vector.constructN+  , Data.Vector.constructrN++  -- ** Enumeration+  , Data.Vector.enumFromN+  , Data.Vector.enumFromStepN+  , Data.Vector.enumFromTo+  , Data.Vector.enumFromThenTo++  -- ** Concatenation+  , Data.Vector.cons+  , Data.Vector.snoc+  , (Data.Vector.++)+  , Data.Vector.concat++  -- ** Restricting memory usage+  , Data.Vector.force++  -- * Modifying vectors+  -- ** Permutations+  , Data.Vector.reverse++  -- ** Safe destructive update+  , Data.Vector.modify++  -- * Elementwise operations+  -- ** Indexing+  , Data.Vector.indexed++  -- ** Mapping+  , Data.Vector.map+  , Data.Vector.imap+  , Data.Vector.concatMap++  -- ** Monadic mapping+  , Data.Vector.mapM+  , Data.Vector.imapM+  , Data.Vector.mapM_+  , Data.Vector.imapM_+  , Data.Vector.forM+  , Data.Vector.forM_++  -- ** Zipping+  , Data.Vector.zipWith+  , Data.Vector.zipWith3+  , Data.Vector.zipWith4+  , Data.Vector.zipWith5+  , Data.Vector.zipWith6+  , Data.Vector.izipWith+  , Data.Vector.izipWith3+  , Data.Vector.izipWith4+  , Data.Vector.izipWith5+  , Data.Vector.izipWith6+  , Data.Vector.zip+  , Data.Vector.zip3+  , Data.Vector.zip4+  , Data.Vector.zip5+  , Data.Vector.zip6++  -- ** Monadic zipping+  , Data.Vector.zipWithM+  , Data.Vector.izipWithM+  , Data.Vector.zipWithM_+  , Data.Vector.izipWithM_++  -- ** Unzipping+  , Data.Vector.unzip+  , Data.Vector.unzip3+  , Data.Vector.unzip4+  , Data.Vector.unzip5+  , Data.Vector.unzip6++  -- * Working with predicates+  -- ** Filtering+  , Data.Vector.filter+  , Data.Vector.ifilter+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.uniq+  , Data.Vector.mapMaybe+  , Data.Vector.imapMaybe+#endif+  , Data.Vector.filterM+  , Data.Vector.takeWhile+  , Data.Vector.dropWhile++  -- ** Partitioning+  , Data.Vector.partition+  , Data.Vector.unstablePartition+  , Data.Vector.span+  , Data.Vector.break++  -- ** Searching+  , Data.Vector.elem+  , Data.Vector.notElem+  , Data.Vector.find+  , Data.Vector.findIndex+  , Data.Vector.findIndices+  , Data.Vector.elemIndex+  , Data.Vector.elemIndices++  -- * Folding+  , Data.Vector.foldl+  , Data.Vector.foldl'+  , Data.Vector.foldr+  , Data.Vector.foldr'+  , Data.Vector.ifoldl+  , Data.Vector.ifoldl'+  , Data.Vector.ifoldr+  , Data.Vector.ifoldr'++  -- ** Specialised folds+  , Data.Vector.all+  , Data.Vector.any+  , Data.Vector.and+  , Data.Vector.or+  , Data.Vector.sum+  , Data.Vector.product++  -- ** Monadic folds+  , Data.Vector.foldM+  , Data.Vector.ifoldM+  , Data.Vector.foldM'+  , Data.Vector.ifoldM'+  , Data.Vector.foldM_+  , Data.Vector.ifoldM_+  , Data.Vector.foldM'_+  , Data.Vector.ifoldM'_++  -- ** Monadic sequencing+  , Data.Vector.sequence+  , Data.Vector.sequence_++  -- * Prefix sums (scans)+  , Data.Vector.prescanl+  , Data.Vector.prescanl'+  , Data.Vector.postscanl+  , Data.Vector.postscanl'+  , Data.Vector.scanl+  , Data.Vector.scanl'+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.iscanl+  , Data.Vector.iscanl'+#endif+  , Data.Vector.prescanr+  , Data.Vector.prescanr'+  , Data.Vector.postscanr+  , Data.Vector.postscanr'+  , Data.Vector.scanr+  , Data.Vector.scanr'+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.iscanr+  , Data.Vector.iscanr'+#endif++  -- * Conversions+  -- ** Lists+  , Data.Vector.toList+  , Data.Vector.fromList+  , Data.Vector.fromListN++  -- ** Different vector types+  , Data.Vector.convert++  -- ** Mutable vectors+  , Data.Vector.freeze+  , Data.Vector.thaw+  , Data.Vector.copy   ) where -import Data.Vector+import qualified Data.Vector
+ src/RIO/Vector/Boxed/Partial.hs view
@@ -0,0 +1,61 @@+module RIO.Vector.Boxed.Partial+  (+  -- * Accessors+  -- ** Indexing+    (Data.Vector.!)+  , Data.Vector.head+  , Data.Vector.last++  -- ** Monadic indexing+  , Data.Vector.indexM+  , Data.Vector.headM+  , Data.Vector.lastM++  -- ** Extracting subvectors+  , Data.Vector.init+  , Data.Vector.tail++  -- * Modifying vectors+  -- ** Bulk updates+  , (Data.Vector.//)+  , Data.Vector.update+  , Data.Vector.update_++  -- ** Accumulations+  , Data.Vector.accum+  , Data.Vector.accumulate+  , Data.Vector.accumulate_++  -- ** Permutations+  , Data.Vector.backpermute++  -- * Folding+  , Data.Vector.foldl1+  , Data.Vector.foldl1'+  , Data.Vector.foldr1+  , Data.Vector.foldr1'++  -- ** Specialised folds+  , Data.Vector.maximum+  , Data.Vector.maximumBy+  , Data.Vector.minimum+  , Data.Vector.minimumBy+  , Data.Vector.minIndex+  , Data.Vector.minIndexBy+  , Data.Vector.maxIndex+  , Data.Vector.maxIndexBy++  -- ** Monadic folds+  , Data.Vector.fold1M+  , Data.Vector.fold1M'+  , Data.Vector.fold1M_+  , Data.Vector.fold1M'_++  -- * Prefix sums (scans)+  , Data.Vector.scanl1+  , Data.Vector.scanl1'+  , Data.Vector.scanr1+  , Data.Vector.scanr1'+  ) where++import qualified Data.Vector
+ src/RIO/Vector/Boxed/Unsafe.hs view
@@ -0,0 +1,42 @@+module RIO.Vector.Boxed.Unsafe+  (+  -- * Accessors+  -- ** Indexing+    Data.Vector.unsafeIndex+  , Data.Vector.unsafeHead+  , Data.Vector.unsafeLast++  -- ** Monadic indexing+  , Data.Vector.unsafeIndexM+  , Data.Vector.unsafeHeadM+  , Data.Vector.unsafeLastM++  -- ** Extracting subvectors+  , Data.Vector.unsafeSlice+  , Data.Vector.unsafeInit+  , Data.Vector.unsafeTail+  , Data.Vector.unsafeTake+  , Data.Vector.unsafeDrop++  -- * Modifying vectors+  -- ** Bulk updates+  , Data.Vector.unsafeUpd+  , Data.Vector.unsafeUpdate+  , Data.Vector.unsafeUpdate_++  -- ** Accumulations+  , Data.Vector.unsafeAccum+  , Data.Vector.unsafeAccumulate+  , Data.Vector.unsafeAccumulate_++  -- ** Permutations+  , Data.Vector.unsafeBackpermute++  -- * Conversions+  -- ** Mutable vectors+  , Data.Vector.unsafeFreeze+  , Data.Vector.unsafeThaw+  , Data.Vector.unsafeCopy+  ) where++import qualified Data.Vector
+ src/RIO/Vector/Partial.hs view
@@ -0,0 +1,61 @@+module RIO.Vector.Partial+  (+  -- * Accessors+  -- ** Indexing+    (Data.Vector.Generic.!)+  , Data.Vector.Generic.head+  , Data.Vector.Generic.last++  -- ** Monadic indexing+  , Data.Vector.Generic.indexM+  , Data.Vector.Generic.headM+  , Data.Vector.Generic.lastM++  -- ** Extracting subvectors+  , Data.Vector.Generic.init+  , Data.Vector.Generic.tail++  -- * Modifying vectors+  -- ** Bulk updates+  , (Data.Vector.Generic.//)+  , Data.Vector.Generic.update+  , Data.Vector.Generic.update_++  -- ** Accumulations+  , Data.Vector.Generic.accum+  , Data.Vector.Generic.accumulate+  , Data.Vector.Generic.accumulate_++  -- ** Permutations+  , Data.Vector.Generic.backpermute++  -- * Folding+  , Data.Vector.Generic.foldl1+  , Data.Vector.Generic.foldl1'+  , Data.Vector.Generic.foldr1+  , Data.Vector.Generic.foldr1'++  -- ** Specialised folds+  , Data.Vector.Generic.maximum+  , Data.Vector.Generic.maximumBy+  , Data.Vector.Generic.minimum+  , Data.Vector.Generic.minimumBy+  , Data.Vector.Generic.minIndex+  , Data.Vector.Generic.minIndexBy+  , Data.Vector.Generic.maxIndex+  , Data.Vector.Generic.maxIndexBy++  -- ** Monadic folds+  , Data.Vector.Generic.fold1M+  , Data.Vector.Generic.fold1M'+  , Data.Vector.Generic.fold1M_+  , Data.Vector.Generic.fold1M'_++  -- * Prefix sums (scans)+  , Data.Vector.Generic.scanl1+  , Data.Vector.Generic.scanl1'+  , Data.Vector.Generic.scanr1+  , Data.Vector.Generic.scanr1'+  ) where++import qualified Data.Vector.Generic
src/RIO/Vector/Storable.hs view
@@ -1,8 +1,186 @@+{-# LANGUAGE CPP #-} -- | Storable @Vector@. Import as: ----- > import qualified RIO.Vector.Storable as V.Storable+-- > import qualified RIO.Vector.Storable as VS module RIO.Vector.Storable-  ( module Data.Vector.Storable+  (+  -- * Storable vectors+    Data.Vector.Storable.Vector+  , Data.Vector.Storable.MVector(..)+  , Data.Vector.Storable.Storable++  -- * Accessors+  -- ** Length information+  , Data.Vector.Storable.length+  , Data.Vector.Storable.null++  -- ** Indexing+  , (Data.Vector.Storable.!?)++  -- ** Extracting subvectors+  , Data.Vector.Storable.slice+  , Data.Vector.Storable.take+  , Data.Vector.Storable.drop+  , Data.Vector.Storable.splitAt++  -- * Construction+  -- ** Initialisation+  , Data.Vector.Storable.empty+  , Data.Vector.Storable.singleton+  , Data.Vector.Storable.replicate+  , Data.Vector.Storable.generate+  , Data.Vector.Storable.iterateN++  -- ** Monadic initialisation+  , Data.Vector.Storable.replicateM+  , Data.Vector.Storable.generateM+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Storable.iterateNM+#endif+  , Data.Vector.Storable.create+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Storable.createT+#endif++  -- ** Unfolding+  , Data.Vector.Storable.unfoldr+  , Data.Vector.Storable.unfoldrN+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Storable.unfoldrM+  , Data.Vector.Storable.unfoldrNM+#endif+  , Data.Vector.Storable.constructN+  , Data.Vector.Storable.constructrN++  -- ** Enumeration+  , Data.Vector.Storable.enumFromN+  , Data.Vector.Storable.enumFromStepN+  , Data.Vector.Storable.enumFromTo+  , Data.Vector.Storable.enumFromThenTo++  -- ** Concatenation+  , Data.Vector.Storable.cons+  , Data.Vector.Storable.snoc+  , (Data.Vector.Storable.++)+  , Data.Vector.Storable.concat++  -- ** Restricting memory usage+  , Data.Vector.Storable.force++  -- * Modifying vectors+  -- ** Permutations+  , Data.Vector.Storable.reverse++  -- ** Safe destructive update+  , Data.Vector.Storable.modify++  -- * Elementwise operations+  -- ** Mapping+  , Data.Vector.Storable.map+  , Data.Vector.Storable.imap+  , Data.Vector.Storable.concatMap++  -- ** Monadic mapping+  , Data.Vector.Storable.mapM+  , Data.Vector.Storable.mapM_+  , Data.Vector.Storable.forM+  , Data.Vector.Storable.forM_++  -- ** Zipping+  , Data.Vector.Storable.zipWith+  , Data.Vector.Storable.zipWith3+  , Data.Vector.Storable.zipWith4+  , Data.Vector.Storable.zipWith5+  , Data.Vector.Storable.zipWith6+  , Data.Vector.Storable.izipWith+  , Data.Vector.Storable.izipWith3+  , Data.Vector.Storable.izipWith4+  , Data.Vector.Storable.izipWith5+  , Data.Vector.Storable.izipWith6++  -- ** Monadic zipping+  , Data.Vector.Storable.zipWithM+  , Data.Vector.Storable.zipWithM_++  -- * Working with predicates+  -- ** Filtering+  , Data.Vector.Storable.filter+  , Data.Vector.Storable.ifilter+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Storable.uniq+  , Data.Vector.Storable.mapMaybe+  , Data.Vector.Storable.imapMaybe+#endif+  , Data.Vector.Storable.filterM+  , Data.Vector.Storable.takeWhile+  , Data.Vector.Storable.dropWhile++  -- ** Partitioning+  , Data.Vector.Storable.partition+  , Data.Vector.Storable.unstablePartition+  , Data.Vector.Storable.span+  , Data.Vector.Storable.break++  -- ** Searching+  , Data.Vector.Storable.elem+  , Data.Vector.Storable.notElem+  , Data.Vector.Storable.find+  , Data.Vector.Storable.findIndex+  , Data.Vector.Storable.findIndices+  , Data.Vector.Storable.elemIndex+  , Data.Vector.Storable.elemIndices++  -- * Folding+  , Data.Vector.Storable.foldl+  , Data.Vector.Storable.foldl'+  , Data.Vector.Storable.foldr+  , Data.Vector.Storable.foldr'+  , Data.Vector.Storable.ifoldl+  , Data.Vector.Storable.ifoldl'+  , Data.Vector.Storable.ifoldr+  , Data.Vector.Storable.ifoldr'++  -- ** Specialised folds+  , Data.Vector.Storable.all+  , Data.Vector.Storable.any+  , Data.Vector.Storable.and+  , Data.Vector.Storable.or+  , Data.Vector.Storable.sum+  , Data.Vector.Storable.product++  -- ** Monadic folds+  , Data.Vector.Storable.foldM+  , Data.Vector.Storable.foldM'+  , Data.Vector.Storable.foldM_+  , Data.Vector.Storable.foldM'_++  -- * Prefix sums (scans)+  , Data.Vector.Storable.prescanl+  , Data.Vector.Storable.prescanl'+  , Data.Vector.Storable.postscanl+  , Data.Vector.Storable.postscanl'+  , Data.Vector.Storable.scanl+  , Data.Vector.Storable.scanl'+  , Data.Vector.Storable.prescanr+  , Data.Vector.Storable.prescanr'+  , Data.Vector.Storable.postscanr+  , Data.Vector.Storable.postscanr'+  , Data.Vector.Storable.scanr+  , Data.Vector.Storable.scanr'++  -- * Conversions+  -- ** Lists+  , Data.Vector.Storable.toList+  , Data.Vector.Storable.fromList+  , Data.Vector.Storable.fromListN++  -- ** Different vector types+  , Data.Vector.Storable.convert++  -- ** Mutable vectors+  , Data.Vector.Storable.freeze+  , Data.Vector.Storable.thaw+  , Data.Vector.Storable.copy   ) where -import Data.Vector.Storable+import qualified Data.Vector.Storable
+ src/RIO/Vector/Storable/Partial.hs view
@@ -0,0 +1,59 @@+module RIO.Vector.Storable.Partial+  (+  -- * Accessors+  -- ** Indexing+    (Data.Vector.Storable.!)+  , Data.Vector.Storable.head+  , Data.Vector.Storable.last++  -- ** Monadic indexing+  , Data.Vector.Storable.indexM+  , Data.Vector.Storable.headM+  , Data.Vector.Storable.lastM++  -- ** Extracting subvectors+  , Data.Vector.Storable.init+  , Data.Vector.Storable.tail++  -- * Modifying vectors+  -- ** Bulk updates+  , (Data.Vector.Storable.//)+  , Data.Vector.Storable.update_++  -- ** Accumulations+  , Data.Vector.Storable.accum+  , Data.Vector.Storable.accumulate_++  -- ** Permutations+  , Data.Vector.Storable.backpermute++  -- * Folding+  , Data.Vector.Storable.foldl1+  , Data.Vector.Storable.foldl1'+  , Data.Vector.Storable.foldr1+  , Data.Vector.Storable.foldr1'++  -- ** Specialised folds+  , Data.Vector.Storable.maximum+  , Data.Vector.Storable.maximumBy+  , Data.Vector.Storable.minimum+  , Data.Vector.Storable.minimumBy+  , Data.Vector.Storable.minIndex+  , Data.Vector.Storable.minIndexBy+  , Data.Vector.Storable.maxIndex+  , Data.Vector.Storable.maxIndexBy++  -- ** Monadic folds+  , Data.Vector.Storable.fold1M+  , Data.Vector.Storable.fold1M'+  , Data.Vector.Storable.fold1M_+  , Data.Vector.Storable.fold1M'_++  -- * Prefix sums (scans)+  , Data.Vector.Storable.scanl1+  , Data.Vector.Storable.scanl1'+  , Data.Vector.Storable.scanr1+  , Data.Vector.Storable.scanr1'+  ) where++import qualified Data.Vector.Storable
+ src/RIO/Vector/Storable/Unsafe.hs view
@@ -0,0 +1,54 @@+module RIO.Vector.Storable.Unsafe+  (+  -- * Accessors+  -- ** Indexing+    Data.Vector.Storable.unsafeIndex+  , Data.Vector.Storable.unsafeHead+  , Data.Vector.Storable.unsafeLast++  -- ** Monadic indexing+  , Data.Vector.Storable.unsafeIndexM+  , Data.Vector.Storable.unsafeHeadM+  , Data.Vector.Storable.unsafeLastM++  -- ** Extracting subvectors+  , Data.Vector.Storable.unsafeSlice+  , Data.Vector.Storable.unsafeInit+  , Data.Vector.Storable.unsafeTail+  , Data.Vector.Storable.unsafeTake+  , Data.Vector.Storable.unsafeDrop++  -- * Modifying vectors+  -- ** Bulk updates+  , Data.Vector.Storable.unsafeUpd+  , Data.Vector.Storable.unsafeUpdate_++  -- ** Accumulations+  , Data.Vector.Storable.unsafeAccum+  , Data.Vector.Storable.unsafeAccumulate_++  -- ** Permutations+  , Data.Vector.Storable.unsafeBackpermute++  -- * Conversions+  -- ** Mutable vectors+  , Data.Vector.Storable.unsafeFreeze+  , Data.Vector.Storable.unsafeThaw+  , Data.Vector.Storable.unsafeCopy++  -- * Raw pointers+  , Data.Vector.Storable.unsafeFromForeignPtr+  , Data.Vector.Storable.unsafeFromForeignPtr0+  , Data.Vector.Storable.unsafeToForeignPtr+  , Data.Vector.Storable.unsafeToForeignPtr0+  , unsafeWith+  ) where++import Data.Vector.Storable(Storable, Vector)+import qualified Data.Vector.Storable+import Foreign.Ptr(Ptr)+import UnliftIO++-- | Lifted version of 'Data.Vector.Storable.unsafeWith'+unsafeWith :: (MonadUnliftIO m, Storable a) => Vector a -> (Ptr a -> m b) -> m b+unsafeWith vec action = withRunInIO $ \unlifter -> Data.Vector.Storable.unsafeWith vec (unlifter . action)
src/RIO/Vector/Unboxed.hs view
@@ -1,8 +1,209 @@+{-# LANGUAGE CPP #-} -- | Unboxed @Vector@. Import as: ----- > import qualified RIO.Vector.Unboxed as V.Unboxed+-- > import qualified RIO.Vector.Unboxed as VU module RIO.Vector.Unboxed-  ( module Data.Vector.Unboxed+  (+  -- * Unboxed vectors+    Data.Vector.Unboxed.Vector+  , Data.Vector.Unboxed.MVector(..)+  , Data.Vector.Unboxed.Unbox++  -- * Accessors+  -- ** Length information+  , Data.Vector.Unboxed.length+  , Data.Vector.Unboxed.null++  -- ** Indexing+  , (Data.Vector.Unboxed.!?)++  -- ** Extracting subvectors+  , Data.Vector.Unboxed.slice+  , Data.Vector.Unboxed.take+  , Data.Vector.Unboxed.drop+  , Data.Vector.Unboxed.splitAt++  -- * Construction+  -- ** Initialisation+  , Data.Vector.Unboxed.empty+  , Data.Vector.Unboxed.singleton+  , Data.Vector.Unboxed.replicate+  , Data.Vector.Unboxed.generate+  , Data.Vector.Unboxed.iterateN++  -- ** Monadic initialisation+  , Data.Vector.Unboxed.replicateM+  , Data.Vector.Unboxed.generateM+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Unboxed.iterateNM+#endif+  , Data.Vector.Unboxed.create+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Unboxed.createT+#endif++  -- ** Unfolding+  , Data.Vector.Unboxed.unfoldr+  , Data.Vector.Unboxed.unfoldrN+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Unboxed.unfoldrM+  , Data.Vector.Unboxed.unfoldrNM+#endif+  , Data.Vector.Unboxed.constructN+  , Data.Vector.Unboxed.constructrN++  -- ** Enumeration+  , Data.Vector.Unboxed.enumFromN+  , Data.Vector.Unboxed.enumFromStepN+  , Data.Vector.Unboxed.enumFromTo+  , Data.Vector.Unboxed.enumFromThenTo++  -- ** Concatenation+  , Data.Vector.Unboxed.cons+  , Data.Vector.Unboxed.snoc+  , (Data.Vector.Unboxed.++)+  , Data.Vector.Unboxed.concat++  -- ** Restricting memory usage+  , Data.Vector.Unboxed.force++  -- * Modifying vectors+  -- ** Permutations+  , Data.Vector.Unboxed.reverse++  -- ** Safe destructive update+  , Data.Vector.Unboxed.modify++  -- * Elementwise operations+  -- ** Indexing+  , Data.Vector.Unboxed.indexed++  -- ** Mapping+  , Data.Vector.Unboxed.map+  , Data.Vector.Unboxed.imap+  , Data.Vector.Unboxed.concatMap++  -- ** Monadic mapping+  , Data.Vector.Unboxed.mapM+  , Data.Vector.Unboxed.imapM+  , Data.Vector.Unboxed.mapM_+  , Data.Vector.Unboxed.imapM_+  , Data.Vector.Unboxed.forM+  , Data.Vector.Unboxed.forM_++  -- ** Zipping+  , Data.Vector.Unboxed.zipWith+  , Data.Vector.Unboxed.zipWith3+  , Data.Vector.Unboxed.zipWith4+  , Data.Vector.Unboxed.zipWith5+  , Data.Vector.Unboxed.zipWith6+  , Data.Vector.Unboxed.izipWith+  , Data.Vector.Unboxed.izipWith3+  , Data.Vector.Unboxed.izipWith4+  , Data.Vector.Unboxed.izipWith5+  , Data.Vector.Unboxed.izipWith6+  , Data.Vector.Unboxed.zip+  , Data.Vector.Unboxed.zip3+  , Data.Vector.Unboxed.zip4+  , Data.Vector.Unboxed.zip5+  , Data.Vector.Unboxed.zip6++  -- ** Monadic zipping+  , Data.Vector.Unboxed.zipWithM+  , Data.Vector.Unboxed.izipWithM+  , Data.Vector.Unboxed.zipWithM_+  , Data.Vector.Unboxed.izipWithM_++  -- ** Unzipping+  , Data.Vector.Unboxed.unzip+  , Data.Vector.Unboxed.unzip3+  , Data.Vector.Unboxed.unzip4+  , Data.Vector.Unboxed.unzip5+  , Data.Vector.Unboxed.unzip6++  -- * Working with predicates+  -- ** Filtering+  , Data.Vector.Unboxed.filter+  , Data.Vector.Unboxed.ifilter+#if MIN_VERSION_vector(0,12,0)+  , Data.Vector.Unboxed.uniq+  , Data.Vector.Unboxed.mapMaybe+  , Data.Vector.Unboxed.imapMaybe+#endif+  , Data.Vector.Unboxed.filterM+  , Data.Vector.Unboxed.takeWhile+  , Data.Vector.Unboxed.dropWhile++  -- ** Partitioning+  , Data.Vector.Unboxed.partition+  , Data.Vector.Unboxed.unstablePartition+  , Data.Vector.Unboxed.span+  , Data.Vector.Unboxed.break++  -- ** Searching+  , Data.Vector.Unboxed.elem+  , Data.Vector.Unboxed.notElem+  , Data.Vector.Unboxed.find+  , Data.Vector.Unboxed.findIndex+  , Data.Vector.Unboxed.findIndices+  , Data.Vector.Unboxed.elemIndex+  , Data.Vector.Unboxed.elemIndices++  -- * Folding+  , Data.Vector.Unboxed.foldl+  , Data.Vector.Unboxed.foldl'+  , Data.Vector.Unboxed.foldr+  , Data.Vector.Unboxed.foldr'+  , Data.Vector.Unboxed.ifoldl+  , Data.Vector.Unboxed.ifoldl'+  , Data.Vector.Unboxed.ifoldr+  , Data.Vector.Unboxed.ifoldr'++  -- ** Specialised folds+  , Data.Vector.Unboxed.all+  , Data.Vector.Unboxed.any+  , Data.Vector.Unboxed.and+  , Data.Vector.Unboxed.or+  , Data.Vector.Unboxed.sum+  , Data.Vector.Unboxed.product++  -- ** Monadic folds+  , Data.Vector.Unboxed.foldM+  , Data.Vector.Unboxed.ifoldM+  , Data.Vector.Unboxed.foldM'+  , Data.Vector.Unboxed.ifoldM'+  , Data.Vector.Unboxed.foldM_+  , Data.Vector.Unboxed.ifoldM_+  , Data.Vector.Unboxed.foldM'_+  , Data.Vector.Unboxed.ifoldM'_++  -- * Prefix sums (scans)+  , Data.Vector.Unboxed.prescanl+  , Data.Vector.Unboxed.prescanl'+  , Data.Vector.Unboxed.postscanl+  , Data.Vector.Unboxed.postscanl'+  , Data.Vector.Unboxed.scanl+  , Data.Vector.Unboxed.scanl'+  , Data.Vector.Unboxed.prescanr+  , Data.Vector.Unboxed.prescanr'+  , Data.Vector.Unboxed.postscanr+  , Data.Vector.Unboxed.postscanr'+  , Data.Vector.Unboxed.scanr+  , Data.Vector.Unboxed.scanr'++  -- * Conversions+  -- ** Lists+  , Data.Vector.Unboxed.toList+  , Data.Vector.Unboxed.fromList+  , Data.Vector.Unboxed.fromListN++  -- ** Different vector types+  , Data.Vector.Unboxed.convert++  -- ** Mutable vectors+  , Data.Vector.Unboxed.freeze+  , Data.Vector.Unboxed.thaw+  , Data.Vector.Unboxed.copy   ) where -import Data.Vector.Unboxed+import qualified Data.Vector.Unboxed
+ src/RIO/Vector/Unboxed/Partial.hs view
@@ -0,0 +1,61 @@+module RIO.Vector.Unboxed.Partial+  (+  -- * Accessors+  -- ** Indexing+    (Data.Vector.Unboxed.!)+  , Data.Vector.Unboxed.head+  , Data.Vector.Unboxed.last++  -- ** Monadic indexing+  , Data.Vector.Unboxed.indexM+  , Data.Vector.Unboxed.headM+  , Data.Vector.Unboxed.lastM++  -- ** Extracting subvectors+  , Data.Vector.Unboxed.init+  , Data.Vector.Unboxed.tail++  -- * Modifying vectors+  -- ** Bulk updates+  , (Data.Vector.Unboxed.//)+  , Data.Vector.Unboxed.update+  , Data.Vector.Unboxed.update_++  -- ** Accumulations+  , Data.Vector.Unboxed.accum+  , Data.Vector.Unboxed.accumulate+  , Data.Vector.Unboxed.accumulate_++  -- ** Permutations+  , Data.Vector.Unboxed.backpermute++  -- * Folding+  , Data.Vector.Unboxed.foldl1+  , Data.Vector.Unboxed.foldl1'+  , Data.Vector.Unboxed.foldr1+  , Data.Vector.Unboxed.foldr1'++  -- ** Specialised folds+  , Data.Vector.Unboxed.maximum+  , Data.Vector.Unboxed.maximumBy+  , Data.Vector.Unboxed.minimum+  , Data.Vector.Unboxed.minimumBy+  , Data.Vector.Unboxed.minIndex+  , Data.Vector.Unboxed.minIndexBy+  , Data.Vector.Unboxed.maxIndex+  , Data.Vector.Unboxed.maxIndexBy++  -- ** Monadic folds+  , Data.Vector.Unboxed.fold1M+  , Data.Vector.Unboxed.fold1M'+  , Data.Vector.Unboxed.fold1M_+  , Data.Vector.Unboxed.fold1M'_++  -- * Prefix sums (scans)+  , Data.Vector.Unboxed.scanl1+  , Data.Vector.Unboxed.scanl1'+  , Data.Vector.Unboxed.scanr1+  , Data.Vector.Unboxed.scanr1'+  ) where++import qualified Data.Vector.Unboxed
+ src/RIO/Vector/Unboxed/Unsafe.hs view
@@ -0,0 +1,42 @@+module RIO.Vector.Unboxed.Unsafe+  (+  -- * Accessors+  -- ** Indexing+    Data.Vector.Unboxed.unsafeIndex+  , Data.Vector.Unboxed.unsafeHead+  , Data.Vector.Unboxed.unsafeLast++  -- ** Monadic indexing+  , Data.Vector.Unboxed.unsafeIndexM+  , Data.Vector.Unboxed.unsafeHeadM+  , Data.Vector.Unboxed.unsafeLastM++  -- ** Extracting subvectors+  , Data.Vector.Unboxed.unsafeSlice+  , Data.Vector.Unboxed.unsafeInit+  , Data.Vector.Unboxed.unsafeTail+  , Data.Vector.Unboxed.unsafeTake+  , Data.Vector.Unboxed.unsafeDrop++  -- * Modifying vectors+  -- ** Bulk updates+  , Data.Vector.Unboxed.unsafeUpd+  , Data.Vector.Unboxed.unsafeUpdate+  , Data.Vector.Unboxed.unsafeUpdate_++  -- ** Accumulations+  , Data.Vector.Unboxed.unsafeAccum+  , Data.Vector.Unboxed.unsafeAccumulate+  , Data.Vector.Unboxed.unsafeAccumulate_++  -- ** Permutations+  , Data.Vector.Unboxed.unsafeBackpermute++  -- * Conversions+  -- ** Mutable vectors+  , Data.Vector.Unboxed.unsafeFreeze+  , Data.Vector.Unboxed.unsafeThaw+  , Data.Vector.Unboxed.unsafeCopy+  ) where++import qualified Data.Vector.Unboxed
+ src/RIO/Vector/Unsafe.hs view
@@ -0,0 +1,45 @@+module RIO.Vector.Unsafe+  (+  -- * Immutable vectors+    Data.Vector.Generic.Vector(..)++  -- * Accessors+  -- ** Indexing+  , Data.Vector.Generic.unsafeIndex+  , Data.Vector.Generic.unsafeHead+  , Data.Vector.Generic.unsafeLast++  -- ** Monadic indexing+  , Data.Vector.Generic.unsafeIndexM+  , Data.Vector.Generic.unsafeHeadM+  , Data.Vector.Generic.unsafeLastM++  -- ** Extracting subvectors+  , Data.Vector.Generic.unsafeSlice+  , Data.Vector.Generic.unsafeInit+  , Data.Vector.Generic.unsafeTail+  , Data.Vector.Generic.unsafeTake+  , Data.Vector.Generic.unsafeDrop++  -- * Modifying vectors+  -- ** Bulk updates+  , Data.Vector.Generic.unsafeUpd+  , Data.Vector.Generic.unsafeUpdate+  , Data.Vector.Generic.unsafeUpdate_++  -- ** Accumulations+  , Data.Vector.Generic.unsafeAccum+  , Data.Vector.Generic.unsafeAccumulate+  , Data.Vector.Generic.unsafeAccumulate_++  -- ** Permutations+  , Data.Vector.Generic.unsafeBackpermute++  -- * Conversions+  -- ** Mutable vectors+  , Data.Vector.Generic.unsafeFreeze+  , Data.Vector.Generic.unsafeThaw+  , Data.Vector.Generic.unsafeCopy+  ) where++import qualified Data.Vector.Generic
+ test/RIO/Prelude/IOSpec.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE ViewPatterns #-}+module RIO.Prelude.IOSpec (spec) where++import RIO+import Test.Hspec+import Test.Hspec.QuickCheck+import qualified RIO.ByteString as B+import qualified RIO.Text as T++spec :: Spec+spec = do+  prop "binary file read/write" $ \(B.pack -> bs1) ->+    withSystemTempFile "binary-read-write" $ \fp h -> do+      hClose h+      writeFileBinary fp bs1+      bs2 <- readFileBinary fp+      bs2 `shouldBe` bs1+  -- filter our \r for Windows+  prop "text file read/write" $ \(T.pack . filter (/= '\r') -> text1) ->+    withSystemTempFile "binary-read-write" $ \fp h -> do+      hClose h+      writeFileUtf8 fp text1+      text2 <- readFileUtf8 fp+      text2 `shouldBe` text1
test/RIO/PreludeSpec.hs view
@@ -7,13 +7,32 @@  spec :: Spec spec = do-  it "sanity" $ do-    ref <- newURef (0 :: Int)-    x <- readURef ref-    x `shouldBe` 0-    writeURef ref 1-    y <- readURef ref-    y `shouldBe` 1-    modifyURef ref (+ 1)-    z <- readURef ref-    z `shouldBe` 2+  describe "URef" $ do+    it "sanity" $ do+      ref <- newURef (0 :: Int)+      x <- readURef ref+      x `shouldBe` 0+      writeURef ref 1+      y <- readURef ref+      y `shouldBe` 1+      modifyURef ref (+ 1)+      z <- readURef ref+      z `shouldBe` 2+  describe "whenM" $ do+    it "returns True" $ do+      ref <- newIORef False+      whenM (return True) (writeIORef ref True)+      readIORef ref `shouldReturn` True+    it "returns False" $ do+      ref <- newIORef False+      whenM (return False) (writeIORef ref True)+      readIORef ref `shouldReturn` False+  describe "unlessM" $ do+    it "returns True" $ do+      ref <- newIORef False+      unlessM (return True) (writeIORef ref True)+      readIORef ref `shouldReturn` False+    it "returns False" $ do+      ref <- newIORef False+      unlessM (return False) (writeIORef ref True)+      readIORef ref `shouldReturn` True