packages feed

praglude 0.1.1.0 → 0.1.2.0

raw patch · 2 files changed

+1664/−618 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Praglude: (#%%=) :: MonadState s m => ALens s s a b -> (a -> (r, b)) -> m r
+ Praglude: (#%%~) :: Functor f => ALens s t a b -> (a -> f b) -> s -> f t
+ Praglude: (#%=) :: MonadState s m => ALens s s a b -> (a -> b) -> m ()
+ Praglude: (#%~) :: ALens s t a b -> (a -> b) -> s -> t
+ Praglude: (#) :: AReview t b -> b -> t
+ Praglude: (#=) :: MonadState s m => ALens s s a b -> b -> m ()
+ Praglude: (#~) :: ALens s t a b -> b -> s -> t
+ Praglude: ($) :: (a -> b) -> a -> b
+ Praglude: (%%=) :: MonadState s m => Over * * p ((,) r) s s a b -> p a (r, b) -> m r
+ Praglude: (%%@=) :: MonadState s m => IndexedLensLike * i ((,) r) s s a b -> (i -> a -> (r, b)) -> m r
+ Praglude: (%%@~) :: IndexedLensLike * i f s t a b -> (i -> a -> f b) -> s -> f t
+ Praglude: (%%~) :: LensLike * f s t a b -> (a -> f b) -> s -> f t
+ Praglude: (%=) :: MonadState s m => ASetter s s a b -> (a -> b) -> m ()
+ Praglude: (%@=) :: MonadState s m => AnIndexedSetter i s s a b -> (i -> a -> b) -> m ()
+ Praglude: (%@~) :: AnIndexedSetter i s t a b -> (i -> a -> b) -> s -> t
+ Praglude: (%~) :: ASetter s t a b -> (a -> b) -> s -> t
+ Praglude: (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c')
+ Praglude: (&&=) :: MonadState s m => ASetter' s Bool -> Bool -> m ()
+ Praglude: (&&~) :: ASetter s t Bool Bool -> Bool -> s -> t
+ Praglude: (&) :: a -> (a -> b) -> b
+ Praglude: (&~) :: s -> State s a -> s
+ Praglude: (***) :: Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
+ Praglude: (**=) :: (MonadState s m, Floating a) => ASetter' s a -> a -> m ()
+ Praglude: (**~) :: Floating a => ASetter s t a a -> a -> s -> t
+ Praglude: (*=) :: (MonadState s m, Num a) => ASetter' s a -> a -> m ()
+ Praglude: (*~) :: Num a => ASetter s t a a -> a -> s -> t
+ Praglude: (+++) :: ArrowChoice a => forall b c b' c'. a b c -> a b' c' -> a (Either b b') (Either c c')
+ Praglude: (+=) :: (MonadState s m, Num a) => ASetter' s a -> a -> m ()
+ Praglude: (+~) :: Num a => ASetter s t a a -> a -> s -> t
+ Praglude: (-=) :: (MonadState s m, Num a) => ASetter' s a -> a -> m ()
+ Praglude: (-~) :: Num a => ASetter s t a a -> a -> s -> t
+ Praglude: (.) :: (b -> c) -> (a -> b) -> a -> c
+ Praglude: (...) :: (Applicative f, Plated c) => LensLike * f s t c c -> Over * * p f c c a b -> Over * * p f s t a b
+ Praglude: (.=) :: MonadState s m => ASetter s s a b -> b -> m ()
+ Praglude: (.>) :: (st -> r) -> (kab -> st) -> kab -> r
+ Praglude: (.@=) :: MonadState s m => AnIndexedSetter i s s a b -> (i -> b) -> m ()
+ Praglude: (.@~) :: AnIndexedSetter i s t a b -> (i -> b) -> s -> t
+ Praglude: (.~) :: ASetter s t a b -> b -> s -> t
+ Praglude: (//=) :: (MonadState s m, Fractional a) => ASetter' s a -> a -> m ()
+ Praglude: (//~) :: Fractional a => ASetter s t a a -> a -> s -> t
+ Praglude: (<#%=) :: MonadState s m => ALens s s a b -> (a -> b) -> m b
+ Praglude: (<#%~) :: ALens s t a b -> (a -> b) -> s -> (b, t)
+ Praglude: (<#=) :: MonadState s m => ALens s s a b -> b -> m b
+ Praglude: (<#~) :: ALens s t a b -> b -> s -> (b, t)
+ Praglude: (<$!>) :: Monad m => (a -> b) -> m a -> m b
+ Praglude: (<$) :: Functor f => a -> f b -> f a
+ Praglude: (<%=) :: MonadState s m => LensLike * ((,) b) s s a b -> (a -> b) -> m b
+ Praglude: (<%@=) :: MonadState s m => IndexedLensLike * i ((,) b) s s a b -> (i -> a -> b) -> m b
+ Praglude: (<%@~) :: Over * * (Indexed i) ((,) b) s t a b -> (i -> a -> b) -> s -> (b, t)
+ Praglude: (<%~) :: LensLike * ((,) b) s t a b -> (a -> b) -> s -> (b, t)
+ Praglude: (<&&=) :: MonadState s m => LensLike' ((,) Bool) s Bool -> Bool -> m Bool
+ Praglude: (<&&~) :: LensLike * ((,) Bool) s t Bool Bool -> Bool -> s -> (Bool, t)
+ Praglude: (<&>) :: Functor f => f a -> (a -> b) -> f b
+ Praglude: (<) :: Ord a => a -> a -> Bool
+ Praglude: (<**=) :: (MonadState s m, Floating a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<**~) :: Floating a => LensLike * ((,) a) s t a a -> a -> s -> (a, t)
+ Praglude: (<*=) :: (MonadState s m, Num a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<*~) :: Num a => LensLike * ((,) a) s t a a -> a -> s -> (a, t)
+ Praglude: (<+=) :: (MonadState s m, Num a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<+>) :: ArrowPlus a => a b c -> a b c -> a b c
+ Praglude: (<+~) :: Num a => LensLike * ((,) a) s t a a -> a -> s -> (a, t)
+ Praglude: (<-=) :: (MonadState s m, Num a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<-~) :: Num a => LensLike * ((,) a) s t a a -> a -> s -> (a, t)
+ Praglude: (<.) :: Indexable i p => (Indexed i s t -> r) -> ((a -> b) -> s -> t) -> p a b -> r
+ Praglude: (<.=) :: MonadState s m => ASetter s s a b -> b -> m b
+ Praglude: (<.>) :: Indexable (i, j) p => (Indexed i s t -> r) -> (Indexed j a b -> s -> t) -> p a b -> r
+ Praglude: (<.~) :: ASetter s t a b -> b -> s -> (b, t)
+ Praglude: (<//=) :: (MonadState s m, Fractional a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<//~) :: Fractional a => LensLike * ((,) a) s t a a -> a -> s -> (a, t)
+ Praglude: (</>) :: FilePath -> FilePath -> FilePath
+ Praglude: (<<%=) :: (Strong p, MonadState s m) => Over * * p ((,) a) s s a b -> p a b -> m a
+ Praglude: (<<%@=) :: MonadState s m => IndexedLensLike * i ((,) a) s s a b -> (i -> a -> b) -> m a
+ Praglude: (<<%@~) :: Over * * (Indexed i) ((,) a) s t a b -> (i -> a -> b) -> s -> (a, t)
+ Praglude: (<<%~) :: LensLike * ((,) a) s t a b -> (a -> b) -> s -> (a, t)
+ Praglude: (<<&&=) :: MonadState s m => LensLike' ((,) Bool) s Bool -> Bool -> m Bool
+ Praglude: (<<&&~) :: LensLike' ((,) Bool) s Bool -> Bool -> s -> (Bool, s)
+ Praglude: (<<**=) :: (MonadState s m, Floating a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<<**~) :: Floating a => LensLike' ((,) a) s a -> a -> s -> (a, s)
+ Praglude: (<<*=) :: (MonadState s m, Num a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<<*~) :: Num a => LensLike' ((,) a) s a -> a -> s -> (a, s)
+ Praglude: (<<+=) :: (MonadState s m, Num a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<<+~) :: Num a => LensLike' ((,) a) s a -> a -> s -> (a, s)
+ Praglude: (<<-=) :: (MonadState s m, Num a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<<-~) :: Num a => LensLike' ((,) a) s a -> a -> s -> (a, s)
+ Praglude: (<<.=) :: MonadState s m => LensLike * ((,) a) s s a b -> b -> m a
+ Praglude: (<<.~) :: LensLike * ((,) a) s t a b -> b -> s -> (a, t)
+ Praglude: (<<//=) :: (MonadState s m, Fractional a) => LensLike' ((,) a) s a -> a -> m a
+ Praglude: (<<//~) :: Fractional a => LensLike' ((,) a) s a -> a -> s -> (a, s)
+ Praglude: (<<<) :: Category k cat => cat b c -> cat a b -> cat a c
+ Praglude: (<<<>=) :: (MonadState s m, Monoid r) => LensLike' ((,) r) s r -> r -> m r
+ Praglude: (<<<>~) :: Monoid r => LensLike' ((,) r) s r -> r -> s -> (r, s)
+ Praglude: (<<>=) :: (MonadState s m, Monoid r) => LensLike' ((,) r) s r -> r -> m r
+ Praglude: (<<>~) :: Monoid m => LensLike * ((,) m) s t m m -> m -> s -> (m, t)
+ Praglude: (<<^) :: Arrow a => a c d -> (b -> c) -> a b d
+ Praglude: (<<^=) :: (MonadState s m, Num a, Integral e) => LensLike' ((,) a) s a -> e -> m a
+ Praglude: (<<^^=) :: (MonadState s m, Fractional a, Integral e) => LensLike' ((,) a) s a -> e -> m a
+ Praglude: (<<^^~) :: (Fractional a, Integral e) => LensLike' ((,) a) s a -> e -> s -> (a, s)
+ Praglude: (<<^~) :: (Num a, Integral e) => LensLike' ((,) a) s a -> e -> s -> (a, s)
+ Praglude: (<<||=) :: MonadState s m => LensLike' ((,) Bool) s Bool -> Bool -> m Bool
+ Praglude: (<<||~) :: LensLike' ((,) Bool) s Bool -> Bool -> s -> (Bool, s)
+ Praglude: (<<~) :: MonadState s m => ALens s s a b -> m b -> m b
+ Praglude: (<=) :: Ord a => a -> a -> Bool
+ Praglude: (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
+ Praglude: (<>) :: Semigroup a => a -> a -> a
+ Praglude: (<>=) :: (MonadState s m, Monoid a) => ASetter' s a -> a -> m ()
+ Praglude: (<>~) :: Monoid a => ASetter s t a a -> a -> s -> t
+ Praglude: (<?=) :: MonadState s m => ASetter s s a (Maybe b) -> b -> m b
+ Praglude: (<?~) :: ASetter s t a (Maybe b) -> b -> s -> (b, t)
+ Praglude: (<^=) :: (MonadState s m, Num a, Integral e) => LensLike' ((,) a) s a -> e -> m a
+ Praglude: (<^^=) :: (MonadState s m, Fractional a, Integral e) => LensLike' ((,) a) s a -> e -> m a
+ Praglude: (<^^~) :: (Fractional a, Integral e) => LensLike * ((,) a) s t a a -> e -> s -> (a, t)
+ Praglude: (<^~) :: (Num a, Integral e) => LensLike * ((,) a) s t a a -> e -> s -> (a, t)
+ Praglude: (<|) :: Cons s s a a => a -> s -> s
+ Praglude: (<||=) :: MonadState s m => LensLike' ((,) Bool) s Bool -> Bool -> m Bool
+ Praglude: (<||~) :: LensLike * ((,) Bool) s t Bool Bool -> Bool -> s -> (Bool, t)
+ Praglude: (<~) :: MonadState s m => ASetter s s a b -> m b -> m ()
+ Praglude: (=<<) :: Monad m => (a -> m b) -> m a -> m b
+ Praglude: (>$) :: Contravariant f => b -> f b -> f a
+ Praglude: (>) :: Ord a => a -> a -> Bool
+ Praglude: (>=) :: Ord a => a -> a -> Bool
+ Praglude: (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
+ Praglude: (>>) :: Monad m => m a -> m b -> m b
+ Praglude: (>>=) :: Monad m => m a -> (a -> m b) -> m b
+ Praglude: (>>>) :: Category k cat => cat a b -> cat b c -> cat a c
+ Praglude: (>>^) :: Arrow a => a b c -> (c -> d) -> a b d
+ Praglude: (?=) :: MonadState s m => ASetter s s a (Maybe b) -> b -> m ()
+ Praglude: (??) :: Functor f => f (a -> b) -> a -> f b
+ Praglude: (?~) :: ASetter s t a (Maybe b) -> b -> s -> t
+ Praglude: (^#) :: s -> ALens s t a b -> a
+ Praglude: (^.) :: s -> Getting a s a -> a
+ Praglude: (^..) :: s -> Getting (Endo [a]) s a -> [a]
+ Praglude: (^<<) :: Arrow a => (c -> d) -> a b c -> a b d
+ Praglude: (^=) :: (MonadState s m, Num a, Integral e) => ASetter' s a -> e -> m ()
+ Praglude: (^>>) :: Arrow a => (b -> c) -> a c d -> a b d
+ Praglude: (^?!) :: s -> Getting (Endo a) s a -> a
+ Praglude: (^?) :: s -> Getting (First a) s a -> Maybe a
+ Praglude: (^@.) :: s -> IndexedGetting i (i, a) s a -> (i, a)
+ Praglude: (^@..) :: s -> IndexedGetting i (Endo [(i, a)]) s a -> [(i, a)]
+ Praglude: (^@?!) :: s -> IndexedGetting i (Endo (i, a)) s a -> (i, a)
+ Praglude: (^@?) :: s -> IndexedGetting i (Endo (Maybe (i, a))) s a -> Maybe (i, a)
+ Praglude: (^^=) :: (MonadState s m, Fractional a, Integral e) => ASetter' s a -> e -> m ()
+ Praglude: (^^~) :: (Fractional a, Integral e) => ASetter s t a a -> e -> s -> t
+ Praglude: (^~) :: (Num a, Integral e) => ASetter s t a a -> e -> s -> t
+ Praglude: (|>) :: Snoc s s a a => s -> a -> s
+ Praglude: (||=) :: MonadState s m => ASetter' s Bool -> Bool -> m ()
+ Praglude: (|||) :: ArrowChoice a => forall b d c. a b d -> a c d -> a (Either b c) d
+ Praglude: (||~) :: ASetter s t Bool Bool -> Bool -> s -> t
+ Praglude: All :: Bool -> All
+ Praglude: Alt :: f a -> Alt k
+ Praglude: Any :: Bool -> Any
+ Praglude: ArrowMonad :: a () b -> ArrowMonad b
+ Praglude: Bazaar :: (forall (f :: * -> *). Applicative f => p a (f b) -> f t) -> Bazaar a b t
+ Praglude: Bazaar1 :: (forall (f :: * -> *). Apply f => p a (f b) -> f t) -> Bazaar1 a b t
+ Praglude: ClosePunctuation :: GeneralCategory
+ Praglude: ConnectorPunctuation :: GeneralCategory
+ Praglude: Const :: a -> Const k a
+ Praglude: Context :: (b -> t) -> a -> Context a b t
+ Praglude: Control :: GeneralCategory
+ Praglude: CurrencySymbol :: GeneralCategory
+ Praglude: DashPunctuation :: GeneralCategory
+ Praglude: DecimalNumber :: GeneralCategory
+ Praglude: Dual :: a -> Dual a
+ Praglude: EnclosingMark :: GeneralCategory
+ Praglude: Endo :: (a -> a) -> Endo a
+ Praglude: FieldFormat :: Maybe Int -> Maybe Int -> Maybe FormatAdjustment -> Maybe FormatSign -> Bool -> String -> Char -> FieldFormat
+ Praglude: FinalQuote :: GeneralCategory
+ Praglude: First :: a -> First a
+ Praglude: Fold :: Fold s a -> ReifiedFold s a
+ Praglude: Format :: GeneralCategory
+ Praglude: FormatParse :: String -> Char -> String -> FormatParse
+ Praglude: Getter :: Getter s a -> ReifiedGetter s a
+ Praglude: Identity :: a -> Identity a
+ Praglude: Indexed :: (i -> a -> b) -> Indexed i a b
+ Praglude: IndexedFold :: IndexedFold i s a -> ReifiedIndexedFold i s a
+ Praglude: IndexedGetter :: IndexedGetter i s a -> ReifiedIndexedGetter i s a
+ Praglude: IndexedLens :: IndexedLens i s t a b -> ReifiedIndexedLens i s t a b
+ Praglude: IndexedSetter :: IndexedSetter i s t a b -> ReifiedIndexedSetter i s t a b
+ Praglude: IndexedTraversal :: IndexedTraversal i s t a b -> ReifiedIndexedTraversal i s t a b
+ Praglude: InitialQuote :: GeneralCategory
+ Praglude: Iso :: Iso s t a b -> ReifiedIso s t a b
+ Praglude: Just :: a -> Maybe a
+ Praglude: Kleisli :: (a -> m b) -> Kleisli a b
+ Praglude: LeftAdjust :: FormatAdjustment
+ Praglude: Lens :: Lens s t a b -> ReifiedLens s t a b
+ Praglude: LetterNumber :: GeneralCategory
+ Praglude: LineSeparator :: GeneralCategory
+ Praglude: LowercaseLetter :: GeneralCategory
+ Praglude: MathSymbol :: GeneralCategory
+ Praglude: ModifierLetter :: GeneralCategory
+ Praglude: ModifierSymbol :: GeneralCategory
+ Praglude: NonSpacingMark :: GeneralCategory
+ Praglude: NotAssigned :: GeneralCategory
+ Praglude: Nothing :: Maybe a
+ Praglude: OpenPunctuation :: GeneralCategory
+ Praglude: OtherLetter :: GeneralCategory
+ Praglude: OtherNumber :: GeneralCategory
+ Praglude: OtherPunctuation :: GeneralCategory
+ Praglude: OtherSymbol :: GeneralCategory
+ Praglude: ParagraphSeparator :: GeneralCategory
+ Praglude: Prism :: Prism s t a b -> ReifiedPrism s t a b
+ Praglude: PrivateUse :: GeneralCategory
+ Praglude: Product :: a -> Product a
+ Praglude: Setter :: Setter s t a b -> ReifiedSetter s t a b
+ Praglude: SignPlus :: FormatSign
+ Praglude: SignSpace :: FormatSign
+ Praglude: Space :: GeneralCategory
+ Praglude: SpacingCombiningMark :: GeneralCategory
+ Praglude: StateT :: (s -> m (a, s)) -> StateT s a
+ Praglude: Sum :: a -> Sum a
+ Praglude: Surrogate :: GeneralCategory
+ Praglude: TitlecaseLetter :: GeneralCategory
+ Praglude: Traversal :: Traversal s t a b -> ReifiedTraversal s t a b
+ Praglude: UppercaseLetter :: GeneralCategory
+ Praglude: XdgCache :: XdgDirectory
+ Praglude: XdgConfig :: XdgDirectory
+ Praglude: XdgData :: XdgDirectory
+ Praglude: ZeroPad :: FormatAdjustment
+ Praglude: [Identical] :: Identical k k1 a b a b
+ Praglude: [appEndo] :: Endo a -> a -> a
+ Praglude: [fmtAdjust] :: FieldFormat -> Maybe FormatAdjustment
+ Praglude: [fmtAlternate] :: FieldFormat -> Bool
+ Praglude: [fmtChar] :: FieldFormat -> Char
+ Praglude: [fmtModifiers] :: FieldFormat -> String
+ Praglude: [fmtPrecision] :: FieldFormat -> Maybe Int
+ Praglude: [fmtSign] :: FieldFormat -> Maybe FormatSign
+ Praglude: [fmtWidth] :: FieldFormat -> Maybe Int
+ Praglude: [fpChar] :: FormatParse -> Char
+ Praglude: [fpModifiers] :: FormatParse -> String
+ Praglude: [fpRest] :: FormatParse -> String
+ Praglude: [getAll] :: All -> Bool
+ Praglude: [getAlt] :: Alt k -> f a
+ Praglude: [getAny] :: Any -> Bool
+ Praglude: [getConst] :: Const k a -> a
+ Praglude: [getDual] :: Dual a -> a
+ Praglude: [getFirst] :: First a -> a
+ Praglude: [getProduct] :: Product a -> a
+ Praglude: [getSum] :: Sum a -> a
+ Praglude: [runBazaar1] :: Bazaar1 a b t -> forall (f :: * -> *). Apply f => p a (f b) -> f t
+ Praglude: [runBazaar] :: Bazaar a b t -> forall (f :: * -> *). Applicative f => p a (f b) -> f t
+ Praglude: [runFold] :: ReifiedFold s a -> Fold s a
+ Praglude: [runGetter] :: ReifiedGetter s a -> Getter s a
+ Praglude: [runIdentity] :: Identity a -> a
+ Praglude: [runIndexedFold] :: ReifiedIndexedFold i s a -> IndexedFold i s a
+ Praglude: [runIndexedGetter] :: ReifiedIndexedGetter i s a -> IndexedGetter i s a
+ Praglude: [runIndexedLens] :: ReifiedIndexedLens i s t a b -> IndexedLens i s t a b
+ Praglude: [runIndexedSetter] :: ReifiedIndexedSetter i s t a b -> IndexedSetter i s t a b
+ Praglude: [runIndexedTraversal] :: ReifiedIndexedTraversal i s t a b -> IndexedTraversal i s t a b
+ Praglude: [runIndexed] :: Indexed i a b -> i -> a -> b
+ Praglude: [runIso] :: ReifiedIso s t a b -> Iso s t a b
+ Praglude: [runKleisli] :: Kleisli a b -> a -> m b
+ Praglude: [runLens] :: ReifiedLens s t a b -> Lens s t a b
+ Praglude: [runPrism] :: ReifiedPrism s t a b -> Prism s t a b
+ Praglude: [runSetter] :: ReifiedSetter s t a b -> Setter s t a b
+ Praglude: [runStateT] :: StateT s a -> s -> m (a, s)
+ Praglude: [runTraversal] :: ReifiedTraversal s t a b -> Traversal s t a b
+ Praglude: _1 :: Field1 s t a b => Lens s t a b
+ Praglude: _1' :: Field1 s t a b => Lens s t a b
+ Praglude: _2 :: Field2 s t a b => Lens s t a b
+ Praglude: _2' :: Field2 s t a b => Lens s t a b
+ Praglude: _3 :: Field3 s t a b => Lens s t a b
+ Praglude: _3' :: Field3 s t a b => Lens s t a b
+ Praglude: _4 :: Field4 s t a b => Lens s t a b
+ Praglude: _4' :: Field4 s t a b => Lens s t a b
+ Praglude: _5 :: Field5 s t a b => Lens s t a b
+ Praglude: _5' :: Field5 s t a b => Lens s t a b
+ Praglude: _6 :: Field6 s t a b => Lens s t a b
+ Praglude: _6' :: Field6 s t a b => Lens s t a b
+ Praglude: _7 :: Field7 s t a b => Lens s t a b
+ Praglude: _7' :: Field7 s t a b => Lens s t a b
+ Praglude: _8 :: Field8 s t a b => Lens s t a b
+ Praglude: _8' :: Field8 s t a b => Lens s t a b
+ Praglude: _9 :: Field9 s t a b => Lens s t a b
+ Praglude: _9' :: Field9 s t a b => Lens s t a b
+ Praglude: _Cons :: Cons s t a b => Prism s t (a, s) (b, t)
+ Praglude: _Empty :: AsEmpty a => Prism' a ()
+ Praglude: _Just :: (Choice p, Applicative f) => p a (f b) -> p (Maybe a) (f (Maybe b))
+ Praglude: _Left :: (Choice p, Applicative f) => p a (f b) -> p (Either a c) (f (Either b c))
+ Praglude: _Nothing :: (Choice p, Applicative f) => p () (f ()) -> p (Maybe a) (f (Maybe a))
+ Praglude: _Right :: (Choice p, Applicative f) => p a (f b) -> p (Either c a) (f (Either c b))
+ Praglude: _Show :: (Read a, Show a) => Prism' String a
+ Praglude: _Snoc :: Snoc s t a b => Prism s t (s, a) (t, b)
+ Praglude: _Unwrapped :: Rewrapping s t => Iso (Unwrapped t) (Unwrapped s) t s
+ Praglude: _Unwrapped' :: Wrapped s => Iso' (Unwrapped s) s
+ Praglude: _Unwrapping :: Rewrapping s t => (Unwrapped s -> s) -> Iso (Unwrapped t) (Unwrapped s) t s
+ Praglude: _Unwrapping' :: Wrapped s => (Unwrapped s -> s) -> Iso' (Unwrapped s) s
+ Praglude: _Void :: (Choice p, Applicative f) => p a (f Void) -> p s (f s)
+ Praglude: _Wrapped :: Rewrapping s t => Iso s t (Unwrapped s) (Unwrapped t)
+ Praglude: _Wrapped' :: Wrapped s => Iso' s (Unwrapped s)
+ Praglude: _Wrapping :: Rewrapping s t => (Unwrapped s -> s) -> Iso s t (Unwrapped s) (Unwrapped t)
+ Praglude: _Wrapping' :: Wrapped s => (Unwrapped s -> s) -> Iso' s (Unwrapped s)
+ Praglude: _head :: Cons s s a a => Traversal' s a
+ Praglude: _init :: Snoc s s a a => Traversal' s s
+ Praglude: _last :: Snoc s s a a => Traversal' s a
+ Praglude: _tail :: Cons s s a a => Traversal' s s
+ Praglude: abbreviatedFields :: LensRules
+ Praglude: abbreviatedNamer :: FieldNamer
+ Praglude: addExtension :: FilePath -> String -> FilePath
+ Praglude: addMVarFinalizer :: MVar a -> IO () -> IO ()
+ Praglude: addTrailingPathSeparator :: FilePath -> FilePath
+ Praglude: ala :: (Functor f, Rewrapping s t) => (Unwrapped s -> s) -> ((Unwrapped t -> t) -> f s) -> f (Unwrapped s)
+ Praglude: alaf :: (Functor f, Functor g, Rewrapping s t) => (Unwrapped s -> s) -> (f t -> g s) -> f (Unwrapped t) -> g (Unwrapped s)
+ Praglude: all :: Foldable t => (a -> Bool) -> t a -> Bool
+ Praglude: allOf :: Getting All s a -> (a -> Bool) -> s -> Bool
+ Praglude: alongside :: LensLike * (AlongsideLeft f b') s t a b -> LensLike * (AlongsideRight f t) s' t' a' b' -> LensLike * f (s, s') (t, t') (a, a') (b, b')
+ Praglude: and :: Foldable t => t Bool -> Bool
+ Praglude: andOf :: Getting All s Bool -> s -> Bool
+ Praglude: anon :: a -> (a -> Bool) -> Iso' (Maybe a) a
+ Praglude: any :: Foldable t => (a -> Bool) -> t a -> Bool
+ Praglude: anyOf :: Getting Any s a -> (a -> Bool) -> s -> Bool
+ Praglude: ap :: Monad m => m (a -> b) -> m a -> m b
+ Praglude: app :: ArrowApply a => a (a b c, b) c
+ Praglude: argument :: Profunctor p => Setter (p b r) (p a r) a b
+ Praglude: arr :: Arrow a => (b -> c) -> a b c
+ Praglude: asIndex :: (Indexable i p, Contravariant f, Functor f) => p i (f i) -> Indexed i s (f s)
+ Praglude: aside :: APrism s t a b -> Prism (e, s) (e, t) (e, a) (e, b)
+ Praglude: assign :: MonadState s m => ASetter s s a b -> b -> m ()
+ Praglude: assignA :: Arrow p => ASetter s t a b -> p s b -> p s t
+ Praglude: asum :: (Foldable t, Alternative f) => t (f a) -> f a
+ Praglude: asumOf :: Alternative f => Getting (Endo (f a)) s (f a) -> s -> f a
+ Praglude: atomicModifyIORef :: IORef a -> (a -> (a, b)) -> IO b
+ Praglude: atomicModifyIORef' :: IORef a -> (a -> (a, b)) -> IO b
+ Praglude: atomicWriteIORef :: IORef a -> a -> IO ()
+ Praglude: au :: Functor f => AnIso s t a b -> ((b -> t) -> f s) -> f a
+ Praglude: auf :: Optic * * * (Costar f) g s t a b -> (f a -> g b) -> f s -> g t
+ Praglude: backwards :: (Profunctor p, Profunctor q) => Optical * * * * p q (Backwards * f) s t a b -> Optical * * * * p q f s t a b
+ Praglude: below :: Traversable f => APrism' s a -> Prism' (f s) (f a)
+ Praglude: beside :: (Representable q, Applicative (Rep q), Applicative f, Bitraversable r) => Optical * * * * p q f s t a b -> Optical * * * * p q f s' t' a b -> Optical * * * * p q f (r s s') (r t t') a b
+ Praglude: bimap :: Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d
+ Praglude: bimapping :: (Bifunctor f, Bifunctor g) => AnIso s t a b -> AnIso s' t' a' b' -> Iso (f s s') (g t t') (f a a') (g b b')
+ Praglude: both :: Bitraversable r => Traversal (r a a) (r b b) a b
+ Praglude: camelCaseFields :: LensRules
+ Praglude: camelCaseNamer :: FieldNamer
+ Praglude: canonicalizePath :: FilePath -> IO FilePath
+ Praglude: catMaybes :: [Maybe a] -> [a]
+ Praglude: censoring :: MonadWriter w m => Setter w w u v -> (u -> v) -> m a -> m a
+ Praglude: children :: Plated a => a -> [a]
+ Praglude: choosing :: Functor f => LensLike * f s t a b -> LensLike * f s' t' a b -> LensLike * f (Either s s') (Either t t') a b
+ Praglude: chosen :: (Conjoined p, Functor f) => p a (f b) -> p (Either a a) (f (Either b b))
+ Praglude: chr :: Int -> Char
+ Praglude: class Category * a => Arrow (a :: * -> * -> *)
+ Praglude: class Arrow a => ArrowApply (a :: * -> * -> *)
+ Praglude: class Arrow a => ArrowChoice (a :: * -> * -> *)
+ Praglude: class Arrow a => ArrowLoop (a :: * -> * -> *)
+ Praglude: class ArrowZero a => ArrowPlus (a :: * -> * -> *)
+ Praglude: class Arrow a => ArrowZero (a :: * -> * -> *)
+ Praglude: class AsEmpty a
+ Praglude: class Bifunctor (p :: * -> * -> *)
+ Praglude: class (Choice p, Corepresentable p, Comonad (Corep p), Traversable (Corep p), Strong p, Representable p, Monad (Rep p), MonadFix (Rep p), Distributive (Rep p), Costrong p, ArrowLoop p, ArrowApply p, ArrowChoice p, Closed p) => Conjoined (p :: * -> * -> *)
+ Praglude: class Cons s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Contains m
+ Praglude: class Contravariant (f :: * -> *)
+ Praglude: class Default a
+ Praglude: class Each s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field1 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field2 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field3 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field4 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field5 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field6 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field7 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field8 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Field9 s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Foldable (t :: * -> *)
+ Praglude: class Functor (f :: * -> *)
+ Praglude: class GPlated a (g :: * -> *)
+ Praglude: class HPrintfType t
+ Praglude: class IsChar c
+ Praglude: class Ixed m
+ Praglude: class Applicative m => Monad (m :: * -> *)
+ Praglude: class Monad m => MonadIO (m :: * -> *)
+ Praglude: class (Alternative m, Monad m) => MonadPlus (m :: * -> *)
+ Praglude: class Monad m => MonadState s (m :: * -> *) | m -> s
+ Praglude: class MonadTrans (t :: (* -> *) -> * -> *)
+ Praglude: class Monoid a
+ Praglude: class Eq a => Ord a
+ Praglude: class Plated a
+ Praglude: class PrintfArg a
+ Praglude: class PrintfType t
+ Praglude: class Profunctor (p :: * -> * -> *)
+ Praglude: class Reversing t
+ Praglude: class Snoc s t a b | s -> a, t -> b, s b -> t, t a -> s
+ Praglude: class Strict lazy strict | lazy -> strict, strict -> lazy
+ Praglude: class Bifunctor p => Swapped (p :: * -> * -> *)
+ Praglude: class Wrapped s where type Unwrapped s :: * where {
+ Praglude: classyRules :: LensRules
+ Praglude: classyRules_ :: LensRules
+ Praglude: cloneIndexPreservingLens :: ALens s t a b -> IndexPreservingLens s t a b
+ Praglude: cloneIndexPreservingSetter :: ASetter s t a b -> IndexPreservingSetter s t a b
+ Praglude: cloneIndexPreservingTraversal :: ATraversal s t a b -> IndexPreservingTraversal s t a b
+ Praglude: cloneIndexPreservingTraversal1 :: ATraversal1 s t a b -> IndexPreservingTraversal1 s t a b
+ Praglude: cloneIndexedLens :: AnIndexedLens i s t a b -> IndexedLens i s t a b
+ Praglude: cloneIndexedSetter :: AnIndexedSetter i s t a b -> IndexedSetter i s t a b
+ Praglude: cloneIndexedTraversal :: AnIndexedTraversal i s t a b -> IndexedTraversal i s t a b
+ Praglude: cloneIndexedTraversal1 :: AnIndexedTraversal1 i s t a b -> IndexedTraversal1 i s t a b
+ Praglude: cloneIso :: AnIso s t a b -> Iso s t a b
+ Praglude: cloneLens :: ALens s t a b -> Lens s t a b
+ Praglude: clonePrism :: APrism s t a b -> Prism s t a b
+ Praglude: cloneSetter :: ASetter s t a b -> Setter s t a b
+ Praglude: cloneTraversal :: ATraversal s t a b -> Traversal s t a b
+ Praglude: cloneTraversal1 :: ATraversal1 s t a b -> Traversal1 s t a b
+ Praglude: coerced :: (Coercible * s a, Coercible * t b) => Iso s t a b
+ Praglude: combine :: FilePath -> FilePath -> FilePath
+ Praglude: compare :: Ord a => a -> a -> Ordering
+ Praglude: composOpFold :: Plated a => b -> (b -> b -> b) -> (a -> b) -> a -> b
+ Praglude: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
+ Praglude: concatMapOf :: Getting [r] s a -> (a -> [r]) -> s -> [r]
+ Praglude: concatOf :: Getting [r] s [r] -> s -> [r]
+ Praglude: confusing :: Applicative f => LensLike * (Curried (Yoneda f) (Yoneda f)) s t a b -> LensLike * f s t a b
+ Praglude: conjoined :: Conjoined p => ((~) (* -> * -> *) p (->) -> q (a -> b) r) -> q (p a b) r -> q (p a b) r
+ Praglude: cons :: Cons s s a a => a -> s -> s
+ Praglude: const :: a -> b -> a
+ Praglude: contains :: Contains m => Index m -> Lens' m Bool
+ Praglude: contexts :: Plated a => a -> [Context a a a]
+ Praglude: contextsOf :: ATraversal' a a -> a -> [Context a a a]
+ Praglude: contextsOn :: Plated a => ATraversal s t a a -> s -> [Context a a t]
+ Praglude: contextsOnOf :: ATraversal s t a a -> ATraversal' a a -> s -> [Context a a t]
+ Praglude: contramap :: Contravariant f => (a -> b) -> f b -> f a
+ Praglude: contramapped :: Contravariant f => Setter (f b) (f a) a b
+ Praglude: contramapping :: Contravariant f => AnIso s t a b -> Iso (f a) (f b) (f s) (f t)
+ Praglude: copyFile :: FilePath -> FilePath -> IO ()
+ Praglude: copyFileWithMetadata :: FilePath -> FilePath -> IO ()
+ Praglude: copyPermissions :: FilePath -> FilePath -> IO ()
+ Praglude: cosmos :: Plated a => Fold a a
+ Praglude: cosmosOf :: (Applicative f, Contravariant f) => LensLike' f a a -> LensLike' f a a
+ Praglude: cosmosOn :: (Applicative f, Contravariant f, Plated a) => LensLike' f s a -> LensLike' f s a
+ Praglude: cosmosOnOf :: (Applicative f, Contravariant f) => LensLike' f s a -> LensLike' f a a -> LensLike' f s a
+ Praglude: createClass :: Lens' LensRules Bool
+ Praglude: createDirectory :: FilePath -> IO ()
+ Praglude: createDirectoryIfMissing :: Bool -> FilePath -> IO ()
+ Praglude: curried :: (Profunctor p, Functor f) => p (a -> b -> c) (f (d -> e -> f)) -> p ((a, b) -> c) (f ((d, e) -> f))
+ Praglude: cycled :: Apply f => LensLike * f s t a b -> LensLike * f s t a b
+ Praglude: data Chan a :: * -> *
+ Praglude: data Char :: *
+ Praglude: data Context a b t :: * -> * -> * -> *
+ Praglude: data DefName :: *
+ Praglude: data FieldFormat :: *
+ Praglude: data FormatAdjustment :: *
+ Praglude: data FormatParse :: *
+ Praglude: data FormatSign :: *
+ Praglude: data GeneralCategory :: *
+ Praglude: data IORef a :: * -> *
+ Praglude: data Identical k k1 (a :: k1) (b :: k) (s :: k1) (t :: k) :: forall k k1. k1 -> k -> k1 -> k -> *
+ Praglude: data Leftmost a :: * -> *
+ Praglude: data LensRules :: *
+ Praglude: data Level i a :: * -> * -> *
+ Praglude: data MVar a :: * -> *
+ Praglude: data Magma i t b a :: * -> * -> * -> * -> *
+ Praglude: data Maybe a :: * -> *
+ Praglude: data Permissions :: *
+ Praglude: data Rightmost a :: * -> *
+ Praglude: data Sequenced a (m :: * -> *) :: * -> (* -> *) -> *
+ Praglude: data Traversed a (f :: * -> *) :: * -> (* -> *) -> *
+ Praglude: data XdgDirectory :: *
+ Praglude: declareClassy :: DecsQ -> DecsQ
+ Praglude: declareClassyFor :: [(String, (String, String))] -> [(String, String)] -> DecsQ -> DecsQ
+ Praglude: declareFields :: DecsQ -> DecsQ
+ Praglude: declareLenses :: DecsQ -> DecsQ
+ Praglude: declareLensesFor :: [(String, String)] -> DecsQ -> DecsQ
+ Praglude: declareLensesWith :: LensRules -> DecsQ -> DecsQ
+ Praglude: declarePrisms :: DecsQ -> DecsQ
+ Praglude: declareWrapped :: DecsQ -> DecsQ
+ Praglude: deep :: (Conjoined p, Applicative f, Plated s) => Traversing p f s s a b -> Over * * p f s s a b
+ Praglude: deepOf :: (Conjoined p, Applicative f) => LensLike * f s t s t -> Traversing p f s t a b -> Over * * p f s t a b
+ Praglude: def :: Default a => a
+ Praglude: defaultFieldRules :: LensRules
+ Praglude: devoid :: Over * * p f Void Void a b
+ Praglude: digitToInt :: Char -> Int
+ Praglude: dimap :: Profunctor p => (a -> b) -> (c -> d) -> p b c -> p a d
+ Praglude: dimapping :: (Profunctor p, Profunctor q) => AnIso s t a b -> AnIso s' t' a' b' -> Iso (p a s') (q b t') (p s a') (q t b')
+ Praglude: distrib :: (Conjoined p, Functor f) => p a b -> p (f a) (f b)
+ Praglude: doesDirectoryExist :: FilePath -> IO Bool
+ Praglude: doesFileExist :: FilePath -> IO Bool
+ Praglude: dropDrive :: FilePath -> FilePath
+ Praglude: dropExtension :: FilePath -> FilePath
+ Praglude: dropExtensions :: FilePath -> FilePath
+ Praglude: dropFileName :: FilePath -> FilePath
+ Praglude: dropTrailingPathSeparator :: FilePath -> FilePath
+ Praglude: dropping :: (Conjoined p, Applicative f) => Int -> Over * * p (Indexing f) s t a a -> Over * * p f s t a a
+ Praglude: droppingWhile :: (Conjoined p, Profunctor q, Applicative f) => (a -> Bool) -> Optical * * * * p q (Compose * * (State Bool) f) s t a a -> Optical * * * * p q f s t a a
+ Praglude: dupChan :: Chan a -> IO (Chan a)
+ Praglude: each :: Each s t a b => Traversal s t a b
+ Praglude: elemIndexOf :: Eq a => IndexedGetting i (First i) s a -> a -> s -> Maybe i
+ Praglude: elemIndicesOf :: Eq a => IndexedGetting i (Endo [i]) s a -> a -> s -> [i]
+ Praglude: elemOf :: Eq a => Getting Any s a -> a -> s -> Bool
+ Praglude: element :: Traversable t => Int -> IndexedTraversal' Int (t a) a
+ Praglude: elementOf :: Applicative f => LensLike * (Indexing f) s t a a -> Int -> IndexedLensLike * Int f s t a a
+ Praglude: elements :: Traversable t => (Int -> Bool) -> IndexedTraversal' Int (t a) a
+ Praglude: elementsOf :: Applicative f => LensLike * (Indexing f) s t a a -> (Int -> Bool) -> IndexedLensLike * Int f s t a a
+ Praglude: emptyPermissions :: Permissions
+ Praglude: enum :: Enum a => Iso' Int a
+ Praglude: equalFilePath :: FilePath -> FilePath -> Bool
+ Praglude: errorBadArgument :: a
+ Praglude: errorBadFormat :: Char -> a
+ Praglude: errorMissingArgument :: a
+ Praglude: errorShortFormat :: a
+ Praglude: evalState :: State s a -> s -> a
+ Praglude: evalStateT :: Monad m => StateT s m a -> s -> m a
+ Praglude: exeExtension :: String
+ Praglude: execState :: State s a -> s -> s
+ Praglude: execStateT :: Monad m => StateT s m a -> s -> m s
+ Praglude: extSeparator :: Char
+ Praglude: fail :: Monad m => String -> m a
+ Praglude: failing :: (Conjoined p, Applicative f) => Traversing p f s t a b -> Over * * p f s t a b -> Over * * p f s t a b
+ Praglude: failover :: Alternative m => LensLike * ((,) Any) s t a b -> (a -> b) -> s -> m t
+ Praglude: filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a]
+ Praglude: filtered :: (Choice p, Applicative f) => (a -> Bool) -> Optic' * * p f a a
+ Praglude: find :: Foldable t => (a -> Bool) -> t a -> Maybe a
+ Praglude: findExecutable :: String -> IO (Maybe FilePath)
+ Praglude: findExecutables :: String -> IO [FilePath]
+ Praglude: findExecutablesInDirectories :: [FilePath] -> String -> IO [FilePath]
+ Praglude: findFile :: [FilePath] -> String -> IO (Maybe FilePath)
+ Praglude: findFileWith :: (FilePath -> IO Bool) -> [FilePath] -> String -> IO (Maybe FilePath)
+ Praglude: findFiles :: [FilePath] -> String -> IO [FilePath]
+ Praglude: findFilesWith :: (FilePath -> IO Bool) -> [FilePath] -> String -> IO [FilePath]
+ Praglude: findIndexOf :: IndexedGetting i (First i) s a -> (a -> Bool) -> s -> Maybe i
+ Praglude: findIndicesOf :: IndexedGetting i (Endo [i]) s a -> (a -> Bool) -> s -> [i]
+ Praglude: findMOf :: Monad m => Getting (Endo (m (Maybe a))) s a -> (a -> m Bool) -> s -> m (Maybe a)
+ Praglude: findOf :: Getting (Endo (Maybe a)) s a -> (a -> Bool) -> s -> Maybe a
+ Praglude: first :: Arrow a => a b c -> a (b, d) (c, d)
+ Praglude: firstOf :: Getting (Leftmost a) s a -> s -> Maybe a
+ Praglude: firsting :: (Bifunctor f, Bifunctor g) => AnIso s t a b -> Iso (f s x) (g t y) (f a x) (g b y)
+ Praglude: fix :: (a -> a) -> a
+ Praglude: flip :: (a -> b -> c) -> b -> a -> c
+ Praglude: flipped :: (Profunctor p, Functor f) => p (b -> a -> c) (f (b' -> a' -> c')) -> p (a -> b -> c) (f (a' -> b' -> c'))
+ Praglude: fmap :: Functor f => (a -> b) -> f a -> f b
+ Praglude: fold :: (Foldable t, Monoid m) => t m -> m
+ Praglude: foldBy :: Foldable t => (a -> a -> a) -> a -> t a -> a
+ Praglude: foldByOf :: Fold s a -> (a -> a -> a) -> a -> s -> a
+ Praglude: foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
+ Praglude: foldM_ :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m ()
+ Praglude: foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
+ Praglude: foldMapBy :: Foldable t => (r -> r -> r) -> r -> (a -> r) -> t a -> r
+ Praglude: foldMapByOf :: Fold s a -> (r -> r -> r) -> r -> (a -> r) -> s -> r
+ Praglude: foldMapOf :: Getting r s a -> (a -> r) -> s -> r
+ Praglude: foldOf :: Getting a s a -> s -> a
+ Praglude: folded :: Foldable f => IndexedFold Int (f a) a
+ Praglude: folded64 :: Foldable f => IndexedFold Int64 (f a) a
+ Praglude: folding :: Foldable f => (s -> f a) -> Fold s a
+ Praglude: foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
+ Praglude: foldl' :: Foldable t => (b -> a -> b) -> b -> t a -> b
+ Praglude: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Praglude: foldl1Of :: Getting (Dual (Endo (Maybe a))) s a -> (a -> a -> a) -> s -> a
+ Praglude: foldl1Of' :: Getting (Endo (Endo (Maybe a))) s a -> (a -> a -> a) -> s -> a
+ Praglude: foldlM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
+ Praglude: foldlMOf :: Monad m => Getting (Endo (r -> m r)) s a -> (r -> a -> m r) -> r -> s -> m r
+ Praglude: foldlOf :: Getting (Dual (Endo r)) s a -> (r -> a -> r) -> r -> s -> r
+ Praglude: foldlOf' :: Getting (Endo (Endo r)) s a -> (r -> a -> r) -> r -> s -> r
+ Praglude: foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
+ Praglude: foldr' :: Foldable t => (a -> b -> b) -> b -> t a -> b
+ Praglude: foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Praglude: foldr1Of :: Getting (Endo (Maybe a)) s a -> (a -> a -> a) -> s -> a
+ Praglude: foldr1Of' :: Getting (Dual (Endo (Endo (Maybe a)))) s a -> (a -> a -> a) -> s -> a
+ Praglude: foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b
+ Praglude: foldrMOf :: Monad m => Getting (Dual (Endo (r -> m r))) s a -> (a -> r -> m r) -> r -> s -> m r
+ Praglude: foldrOf :: Getting (Endo r) s a -> (a -> r -> r) -> r -> s -> r
+ Praglude: foldrOf' :: Getting (Dual (Endo (Endo r))) s a -> (a -> r -> r) -> r -> s -> r
+ Praglude: foldring :: (Contravariant f, Applicative f) => ((a -> f a -> f a) -> f a -> s -> f a) -> LensLike * f s t a b
+ Praglude: forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
+ Praglude: forMOf :: LensLike * (WrappedMonad m) s t a b -> s -> (a -> m b) -> m t
+ Praglude: forMOf_ :: Monad m => Getting (Sequenced r m) s a -> s -> (a -> m r) -> m ()
+ Praglude: forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
+ Praglude: forOf :: LensLike * f s t a b -> s -> (a -> f b) -> f t
+ Praglude: forOf_ :: Functor f => Getting (Traversed r f) s a -> s -> (a -> f r) -> f ()
+ Praglude: for_ :: (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
+ Praglude: forever :: Applicative f => f a -> f b
+ Praglude: formatArg :: PrintfArg a => a -> FieldFormatter
+ Praglude: formatChar :: Char -> FieldFormatter
+ Praglude: formatInt :: (Integral a, Bounded a) => a -> FieldFormatter
+ Praglude: formatInteger :: Integer -> FieldFormatter
+ Praglude: formatRealFloat :: RealFloat a => a -> FieldFormatter
+ Praglude: formatString :: IsChar a => [a] -> FieldFormatter
+ Praglude: from :: AnIso s t a b -> Iso b a t s
+ Praglude: fromChar :: IsChar c => Char -> c
+ Praglude: fromEq :: AnEquality k1 k2 s t a b -> Equality k2 k1 b a t s
+ Praglude: fromJust :: Maybe a -> a
+ Praglude: fromMaybe :: a -> Maybe a -> a
+ Praglude: fusing :: Functor f => LensLike * (Yoneda f) s t a b -> LensLike * f s t a b
+ Praglude: generalCategory :: Char -> GeneralCategory
+ Praglude: generateLazyPatterns :: Lens' LensRules Bool
+ Praglude: generateSignatures :: Lens' LensRules Bool
+ Praglude: generateUpdateableOptics :: Lens' LensRules Bool
+ Praglude: get :: MonadState s m => m s
+ Praglude: getAccessTime :: FilePath -> IO UTCTime
+ Praglude: getAppUserDataDirectory :: FilePath -> IO FilePath
+ Praglude: getArgs :: IO [String]
+ Praglude: getChanContents :: Chan a -> IO [a]
+ Praglude: getCurrentDirectory :: IO FilePath
+ Praglude: getDirectoryContents :: FilePath -> IO [FilePath]
+ Praglude: getEnv :: String -> IO String
+ Praglude: getEnvironment :: IO [(String, String)]
+ Praglude: getExecutablePath :: IO FilePath
+ Praglude: getHomeDirectory :: IO FilePath
+ Praglude: getModificationTime :: FilePath -> IO UTCTime
+ Praglude: getPermissions :: FilePath -> IO Permissions
+ Praglude: getProgName :: IO String
+ Praglude: getSearchPath :: IO [FilePath]
+ Praglude: getTemporaryDirectory :: IO FilePath
+ Praglude: getUserDocumentsDirectory :: IO FilePath
+ Praglude: getXdgDirectory :: XdgDirectory -> FilePath -> IO FilePath
+ Praglude: gets :: MonadState s m => (s -> a) -> m a
+ Praglude: getting :: (Functor f, Contravariant f) => LensLike * f s t a b -> LensLike' f s a
+ Praglude: gplate :: (Generic a, GPlated a (Rep a)) => Traversal' a a
+ Praglude: guard :: Alternative f => Bool -> f ()
+ Praglude: hPrintf :: HPrintfType r => Handle -> String -> r
+ Praglude: has :: Getting Any s a -> s -> Bool
+ Praglude: hasDrive :: FilePath -> Bool
+ Praglude: hasExtension :: FilePath -> Bool
+ Praglude: hasTrailingPathSeparator :: FilePath -> Bool
+ Praglude: hasn't :: Getting All s a -> s -> Bool
+ Praglude: holes :: Plated a => a -> [Pretext (->) a a a]
+ Praglude: holesOf :: Conjoined p => Over * * p (Bazaar p a a) s t a a -> s -> [Pretext p a a t]
+ Praglude: holesOn :: Conjoined p => Over * * p (Bazaar p a a) s t a a -> s -> [Pretext p a a t]
+ Praglude: holesOnOf :: Conjoined p => LensLike * (Bazaar p r r) s t a b -> Over * * p (Bazaar p r r) a b r r -> s -> [Pretext p r r t]
+ Praglude: iall :: FoldableWithIndex i f => (i -> a -> Bool) -> f a -> Bool
+ Praglude: iallOf :: IndexedGetting i All s a -> (i -> a -> Bool) -> s -> Bool
+ Praglude: iany :: FoldableWithIndex i f => (i -> a -> Bool) -> f a -> Bool
+ Praglude: ianyOf :: IndexedGetting i Any s a -> (i -> a -> Bool) -> s -> Bool
+ Praglude: iat :: At m => Index m -> IndexedLens' (Index m) m (Maybe (IxValue m))
+ Praglude: icensoring :: MonadWriter w m => IndexedSetter i w w u v -> (i -> u -> v) -> m a -> m a
+ Praglude: icompose :: Indexable p c => (i -> j -> p) -> (Indexed i s t -> r) -> (Indexed j a b -> s -> t) -> c a b -> r
+ Praglude: iconcatMap :: FoldableWithIndex i f => (i -> a -> [b]) -> f a -> [b]
+ Praglude: iconcatMapOf :: IndexedGetting i [r] s a -> (i -> a -> [r]) -> s -> [r]
+ Praglude: icontains :: Contains m => Index m -> IndexedLens' (Index m) m Bool
+ Praglude: id :: a -> a
+ Praglude: idroppingWhile :: (Indexable i p, Profunctor q, Applicative f) => (i -> a -> Bool) -> Optical * * * * (Indexed i) q (Compose * * (State Bool) f) s t a a -> Optical * * * * p q f s t a a
+ Praglude: ifailover :: Alternative m => Over * * (Indexed i) ((,) Any) s t a b -> (i -> a -> b) -> s -> m t
+ Praglude: ifiltered :: (Indexable i p, Applicative f) => (i -> a -> Bool) -> Optical' * * p (Indexed i) f a a
+ Praglude: ifind :: FoldableWithIndex i f => (i -> a -> Bool) -> f a -> Maybe (i, a)
+ Praglude: ifindMOf :: Monad m => IndexedGetting i (Endo (m (Maybe a))) s a -> (i -> a -> m Bool) -> s -> m (Maybe a)
+ Praglude: ifindOf :: IndexedGetting i (Endo (Maybe a)) s a -> (i -> a -> Bool) -> s -> Maybe a
+ Praglude: ifoldMapBy :: FoldableWithIndex i t => (r -> r -> r) -> r -> (i -> a -> r) -> t a -> r
+ Praglude: ifoldMapByOf :: IndexedFold i t a -> (r -> r -> r) -> r -> (i -> a -> r) -> t -> r
+ Praglude: ifoldMapOf :: IndexedGetting i m s a -> (i -> a -> m) -> s -> m
+ Praglude: ifolding :: (Foldable f, Indexable i p, Contravariant g, Applicative g) => (s -> f (i, a)) -> Over * * p g s t a b
+ Praglude: ifoldlM :: (FoldableWithIndex i f, Monad m) => (i -> b -> a -> m b) -> b -> f a -> m b
+ Praglude: ifoldlMOf :: Monad m => IndexedGetting i (Endo (r -> m r)) s a -> (i -> r -> a -> m r) -> r -> s -> m r
+ Praglude: ifoldlOf :: IndexedGetting i (Dual (Endo r)) s a -> (i -> r -> a -> r) -> r -> s -> r
+ Praglude: ifoldlOf' :: IndexedGetting i (Endo (r -> r)) s a -> (i -> r -> a -> r) -> r -> s -> r
+ Praglude: ifoldrM :: (FoldableWithIndex i f, Monad m) => (i -> a -> b -> m b) -> b -> f a -> m b
+ Praglude: ifoldrMOf :: Monad m => IndexedGetting i (Dual (Endo (r -> m r))) s a -> (i -> a -> r -> m r) -> r -> s -> m r
+ Praglude: ifoldrOf :: IndexedGetting i (Endo r) s a -> (i -> a -> r -> r) -> r -> s -> r
+ Praglude: ifoldrOf' :: IndexedGetting i (Dual (Endo (r -> r))) s a -> (i -> a -> r -> r) -> r -> s -> r
+ Praglude: ifoldring :: (Indexable i p, Contravariant f, Applicative f) => ((i -> a -> f a -> f a) -> f a -> s -> f a) -> Over * * p f s t a b
+ Praglude: ifor :: (TraversableWithIndex i t, Applicative f) => t a -> (i -> a -> f b) -> f (t b)
+ Praglude: iforM :: (TraversableWithIndex i t, Monad m) => t a -> (i -> a -> m b) -> m (t b)
+ Praglude: iforMOf :: (Indexed i a (WrappedMonad m b) -> s -> WrappedMonad m t) -> s -> (i -> a -> m b) -> m t
+ Praglude: iforMOf_ :: Monad m => IndexedGetting i (Sequenced r m) s a -> s -> (i -> a -> m r) -> m ()
+ Praglude: iforM_ :: (FoldableWithIndex i t, Monad m) => t a -> (i -> a -> m b) -> m ()
+ Praglude: iforOf :: (Indexed i a (f b) -> s -> f t) -> s -> (i -> a -> f b) -> f t
+ Praglude: iforOf_ :: Functor f => IndexedGetting i (Traversed r f) s a -> s -> (i -> a -> f r) -> f ()
+ Praglude: ifor_ :: (FoldableWithIndex i t, Applicative f) => t a -> (i -> a -> f b) -> f ()
+ Praglude: ignored :: Applicative f => pafb -> s -> f s
+ Praglude: iix :: Ixed m => Index m -> IndexedTraversal' (Index m) m (IxValue m)
+ Praglude: ilens :: (s -> (i, a)) -> (s -> b -> t) -> IndexedLens i s t a b
+ Praglude: ilevels :: AnIndexedTraversal i s t a b -> IndexedTraversal Int s t (Level i a) (Level j b)
+ Praglude: ilike :: (Indexable i p, Contravariant f, Functor f) => i -> a -> Over' p f s a
+ Praglude: ilistening :: MonadWriter w m => IndexedGetting i (i, u) w u -> m a -> m (a, (i, u))
+ Praglude: ilistenings :: MonadWriter w m => IndexedGetting i v w u -> (i -> u -> v) -> m a -> m (a, v)
+ Praglude: iloci :: (Indexable i p, Applicative f) => p a (f b) -> Bazaar (Indexed i) a c s -> f (Bazaar (Indexed i) b c s)
+ Praglude: imagma :: Over * * (Indexed i) (Molten i a b) s t a b -> Iso s t' (Magma i t b a) (Magma j t' c c)
+ Praglude: imapAccumL :: TraversableWithIndex i t => (i -> s -> a -> (s, b)) -> s -> t a -> (s, t b)
+ Praglude: imapAccumLOf :: Over * * (Indexed i) (State acc) s t a b -> (i -> acc -> a -> (acc, b)) -> acc -> s -> (acc, t)
+ Praglude: imapAccumR :: TraversableWithIndex i t => (i -> s -> a -> (s, b)) -> s -> t a -> (s, t b)
+ Praglude: imapAccumROf :: Over * * (Indexed i) (Backwards * (State acc)) s t a b -> (i -> acc -> a -> (acc, b)) -> acc -> s -> (acc, t)
+ Praglude: imapM :: (TraversableWithIndex i t, Monad m) => (i -> a -> m b) -> t a -> m (t b)
+ Praglude: imapMOf :: Over * * (Indexed i) (WrappedMonad m) s t a b -> (i -> a -> m b) -> s -> m t
+ Praglude: imapMOf_ :: Monad m => IndexedGetting i (Sequenced r m) s a -> (i -> a -> m r) -> s -> m ()
+ Praglude: imapM_ :: (FoldableWithIndex i t, Monad m) => (i -> a -> m b) -> t a -> m ()
+ Praglude: imapOf :: AnIndexedSetter i s t a b -> (i -> a -> b) -> s -> t
+ Praglude: imodifying :: MonadState s m => AnIndexedSetter i s s a b -> (i -> a -> b) -> m ()
+ Praglude: index :: (Indexable i p, Eq i, Applicative f) => i -> Optical' * * p (Indexed i) f a a
+ Praglude: indexing :: Indexable Int p => ((a -> Indexing f b) -> s -> Indexing f t) -> p a (f b) -> s -> f t
+ Praglude: indexing64 :: Indexable Int64 p => ((a -> Indexing64 f b) -> s -> Indexing64 f t) -> p a (f b) -> s -> f t
+ Praglude: indices :: (Indexable i p, Applicative f) => (i -> Bool) -> Optical' * * p (Indexed i) f a a
+ Praglude: infix 4 `notElem`
+ Praglude: infixl 0 `on`
+ Praglude: infixl 1 &
+ Praglude: infixl 4 <$!>
+ Praglude: infixl 5 |>
+ Praglude: infixl 8 ^@?!
+ Praglude: infixr 0 $
+ Praglude: infixr 1 ^<<
+ Praglude: infixr 2 <~
+ Praglude: infixr 4 ||~
+ Praglude: infixr 5 </>
+ Praglude: infixr 8 #
+ Praglude: infixr 9 .
+ Praglude: inone :: FoldableWithIndex i f => (i -> a -> Bool) -> f a -> Bool
+ Praglude: inoneOf :: IndexedGetting i Any s a -> (i -> a -> Bool) -> s -> Bool
+ Praglude: inside :: Corepresentable p => ALens s t a b -> Lens (p e s) (p e t) (p e a) (p e b)
+ Praglude: intToDigit :: Int -> Char
+ Praglude: involuted :: (a -> a) -> Iso' a a
+ Praglude: iover :: AnIndexedSetter i s t a b -> (i -> a -> b) -> s -> t
+ Praglude: ipartsOf :: (Indexable [i] p, Functor f) => Traversing (Indexed i) f s t a a -> Over * * p f s t [a] [a]
+ Praglude: ipartsOf' :: (Indexable [i] p, Functor f) => Over * * (Indexed i) (Bazaar' (Indexed i) a) s t a a -> Over * * p f s t [a] [a]
+ Praglude: ipassing :: MonadWriter w m => IndexedSetter i w w u v -> m (a, i -> u -> v) -> m a
+ Praglude: iplens :: (s -> a) -> (s -> b -> t) -> IndexPreservingLens s t a b
+ Praglude: ipre :: IndexedGetting i (First (i, a)) s a -> IndexPreservingGetter s (Maybe (i, a))
+ Praglude: ipreuse :: MonadState s m => IndexedGetting i (First (i, a)) s a -> m (Maybe (i, a))
+ Praglude: ipreuses :: MonadState s m => IndexedGetting i (First r) s a -> (i -> a -> r) -> m (Maybe r)
+ Praglude: ipreview :: MonadReader s m => IndexedGetting i (First (i, a)) s a -> m (Maybe (i, a))
+ Praglude: ipreviews :: MonadReader s m => IndexedGetting i (First r) s a -> (i -> a -> r) -> m (Maybe r)
+ Praglude: isAbsolute :: FilePath -> Bool
+ Praglude: isAlpha :: Char -> Bool
+ Praglude: isAlphaNum :: Char -> Bool
+ Praglude: isAscii :: Char -> Bool
+ Praglude: isAsciiLower :: Char -> Bool
+ Praglude: isAsciiUpper :: Char -> Bool
+ Praglude: isControl :: Char -> Bool
+ Praglude: isDigit :: Char -> Bool
+ Praglude: isDrive :: FilePath -> Bool
+ Praglude: isEmptyMVar :: MVar a -> IO Bool
+ Praglude: isExtSeparator :: Char -> Bool
+ Praglude: isHexDigit :: Char -> Bool
+ Praglude: isJust :: Maybe a -> Bool
+ Praglude: isLatin1 :: Char -> Bool
+ Praglude: isLetter :: Char -> Bool
+ Praglude: isLower :: Char -> Bool
+ Praglude: isMark :: Char -> Bool
+ Praglude: isNothing :: Maybe a -> Bool
+ Praglude: isNumber :: Char -> Bool
+ Praglude: isOctDigit :: Char -> Bool
+ Praglude: isPathSeparator :: Char -> Bool
+ Praglude: isPrint :: Char -> Bool
+ Praglude: isPunctuation :: Char -> Bool
+ Praglude: isRelative :: FilePath -> Bool
+ Praglude: isSearchPathSeparator :: Char -> Bool
+ Praglude: isSeparator :: Char -> Bool
+ Praglude: isSpace :: Char -> Bool
+ Praglude: isSymbol :: Char -> Bool
+ Praglude: isSymbolicLink :: FilePath -> IO Bool
+ Praglude: isUpper :: Char -> Bool
+ Praglude: iset :: AnIndexedSetter i s t a b -> (i -> b) -> s -> t
+ Praglude: isets :: ((i -> a -> b) -> s -> t) -> IndexedSetter i s t a b
+ Praglude: isn't :: APrism s t a b -> s -> Bool
+ Praglude: iso :: (s -> a) -> (b -> t) -> Iso s t a b
+ Praglude: itakingWhile :: (Indexable i p, Profunctor q, Contravariant f, Applicative f) => (i -> a -> Bool) -> Optical' * * (Indexed i) q (Const * (Endo (f s))) s a -> Optical' * * p q f s a
+ Praglude: iterated :: Apply f => (a -> a) -> LensLike' f a a
+ Praglude: ito :: (Indexable i p, Contravariant f, Functor f) => (s -> (i, a)) -> Over' p f s a
+ Praglude: itoList :: FoldableWithIndex i f => f a -> [(i, a)]
+ Praglude: itoListOf :: IndexedGetting i (Endo [(i, a)]) s a -> s -> [(i, a)]
+ Praglude: itraverseBy :: TraversableWithIndex i t => (forall x. x -> f x) -> (forall x y. f (x -> y) -> f x -> f y) -> (i -> a -> f b) -> t a -> f (t b)
+ Praglude: itraverseByOf :: IndexedTraversal i s t a b -> (forall x. x -> f x) -> (forall x y. f (x -> y) -> f x -> f y) -> (i -> a -> f b) -> s -> f t
+ Praglude: itraverseOf :: (Indexed i a (f b) -> s -> f t) -> (i -> a -> f b) -> s -> f t
+ Praglude: itraverseOf_ :: Functor f => IndexedGetting i (Traversed r f) s a -> (i -> a -> f r) -> s -> f ()
+ Praglude: itraverse_ :: (FoldableWithIndex i t, Applicative f) => (i -> a -> f b) -> t a -> f ()
+ Praglude: iunsafePartsOf :: (Indexable [i] p, Functor f) => Traversing (Indexed i) f s t a b -> Over * * p f s t [a] [b]
+ Praglude: iunsafePartsOf' :: Over * * (Indexed i) (Bazaar (Indexed i) a b) s t a b -> IndexedLens [i] s t [a] [b]
+ Praglude: iuse :: MonadState s m => IndexedGetting i (i, a) s a -> m (i, a)
+ Praglude: iuses :: MonadState s m => IndexedGetting i r s a -> (i -> a -> r) -> m r
+ Praglude: iview :: MonadReader s m => IndexedGetting i (i, a) s a -> m (i, a)
+ Praglude: iviews :: MonadReader s m => IndexedGetting i r s a -> (i -> a -> r) -> m r
+ Praglude: ix :: Ixed m => Index m -> Traversal' m (IxValue m)
+ Praglude: ixAt :: At m => Index m -> Traversal' m (IxValue m)
+ Praglude: join :: Monad m => m (m a) -> m a
+ Praglude: joinDrive :: FilePath -> FilePath -> FilePath
+ Praglude: joinPath :: [FilePath] -> FilePath
+ Praglude: lastOf :: Getting (Rightmost a) s a -> s -> Maybe a
+ Praglude: lazy :: Strict lazy strict => Iso' strict lazy
+ Praglude: left :: ArrowChoice a => forall b c d. a b c -> a (Either b d) (Either c d)
+ Praglude: leftApp :: ArrowApply a => a b c -> a (Either b d) (Either c d)
+ Praglude: lengthOf :: Getting (Endo (Endo Int)) s a -> s -> Int
+ Praglude: lens :: (s -> a) -> (s -> b -> t) -> Lens s t a b
+ Praglude: lensClass :: Lens' LensRules ClassyNamer
+ Praglude: lensField :: Lens' LensRules FieldNamer
+ Praglude: lensRules :: LensRules
+ Praglude: lensRulesFor :: [(String, String)] -> LensRules
+ Praglude: levels :: ATraversal s t a b -> IndexedTraversal Int s t (Level () a) (Level () b)
+ Praglude: lexLitChar :: ReadS String
+ Praglude: lift :: (MonadTrans t, Monad m) => m a -> t m a
+ Praglude: liftIO :: MonadIO m => IO a -> m a
+ Praglude: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
+ Praglude: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
+ Praglude: liftM3 :: Monad m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
+ Praglude: liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
+ Praglude: liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r
+ Praglude: lifted :: Monad m => Setter (m a) (m b) a b
+ Praglude: like :: (Profunctor p, Contravariant f, Functor f) => a -> Optic' * * p f s a
+ Praglude: lined :: Applicative f => IndexedLensLike' Int f String String
+ Praglude: listDirectory :: FilePath -> IO [FilePath]
+ Praglude: listLength :: ListLike m a => m -> Int
+ Praglude: listToMaybe :: [a] -> Maybe a
+ Praglude: listening :: MonadWriter w m => Getting u w u -> m a -> m (a, u)
+ Praglude: listenings :: MonadWriter w m => Getting v w u -> (u -> v) -> m a -> m (a, v)
+ Praglude: lmap :: Profunctor p => (a -> b) -> p b c -> p a c
+ Praglude: lmapping :: (Profunctor p, Profunctor q) => AnIso s t a b -> Iso (p a x) (q b y) (p s x) (q t y)
+ Praglude: loci :: Applicative f => (a -> f b) -> Bazaar (->) a c s -> f (Bazaar (->) b c s)
+ Praglude: locus :: IndexedComonadStore p => Lens (p a c s) (p b c s) a b
+ Praglude: lookingupNamer :: [(String, String)] -> FieldNamer
+ Praglude: lookupEnv :: String -> IO (Maybe String)
+ Praglude: lookupOf :: Eq k => Getting (Endo (Maybe v)) s (k, v) -> k -> s -> Maybe v
+ Praglude: loop :: ArrowLoop a => a (b, d) (c, d) -> a b c
+ Praglude: magma :: LensLike * (Mafic a b) s t a b -> Iso s u (Magma Int t b a) (Magma j u c c)
+ Praglude: makeAbsolute :: FilePath -> IO FilePath
+ Praglude: makeClassy :: Name -> DecsQ
+ Praglude: makeClassyFor :: String -> String -> [(String, String)] -> Name -> DecsQ
+ Praglude: makeClassyPrisms :: Name -> DecsQ
+ Praglude: makeClassy_ :: Name -> DecsQ
+ Praglude: makeFields :: Name -> DecsQ
+ Praglude: makeLenses :: Name -> DecsQ
+ Praglude: makeLensesFor :: [(String, String)] -> Name -> DecsQ
+ Praglude: makeLensesWith :: LensRules -> Name -> DecsQ
+ Praglude: makePrisms :: Name -> DecsQ
+ Praglude: makeRelative :: FilePath -> FilePath -> FilePath
+ Praglude: makeRelativeToCurrentDirectory :: FilePath -> IO FilePath
+ Praglude: makeValid :: FilePath -> FilePath
+ Praglude: makeWrapped :: Name -> DecsQ
+ Praglude: mapAccumLOf :: LensLike * (State acc) s t a b -> (acc -> a -> (acc, b)) -> acc -> s -> (acc, t)
+ Praglude: mapAccumROf :: LensLike * (Backwards * (State acc)) s t a b -> (acc -> a -> (acc, b)) -> acc -> s -> (acc, t)
+ Praglude: mapAndUnzipM :: Applicative m => (a -> m (b, c)) -> [a] -> m ([b], [c])
+ Praglude: mapEq :: AnEquality k2 k1 s t a b -> f s -> f a
+ Praglude: mapM :: Traversable t => forall (m :: * -> *) a b. Monad m => (a -> m b) -> t a -> m (t b)
+ Praglude: mapMOf :: LensLike * (WrappedMonad m) s t a b -> (a -> m b) -> s -> m t
+ Praglude: mapMOf_ :: Monad m => Getting (Sequenced r m) s a -> (a -> m r) -> s -> m ()
+ Praglude: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
+ Praglude: mapMaybe :: (a -> Maybe b) -> [a] -> [b]
+ Praglude: mapOf :: ASetter s t a b -> (a -> b) -> s -> t
+ Praglude: mapState :: ((a, s) -> (b, s)) -> State s a -> State s b
+ Praglude: mapStateT :: (m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b
+ Praglude: mapped :: Functor f => Setter (f a) (f b) a b
+ Praglude: mappend :: Monoid a => a -> a -> a
+ Praglude: mapping :: (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
+ Praglude: mappingNamer :: (String -> [String]) -> FieldNamer
+ Praglude: matching :: APrism s t a b -> s -> Either t a
+ Praglude: max :: Ord a => a -> a -> a
+ Praglude: maximum :: (Foldable t, Ord a) => t a -> a
+ Praglude: maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
+ Praglude: maximumByOf :: Getting (Endo (Endo (Maybe a))) s a -> (a -> a -> Ordering) -> s -> Maybe a
+ Praglude: maximumOf :: Ord a => Getting (Endo (Endo (Maybe a))) s a -> s -> Maybe a
+ Praglude: maybe :: b -> (a -> b) -> Maybe a -> b
+ Praglude: maybeToList :: Maybe a -> [a]
+ Praglude: mconcat :: Monoid a => [a] -> a
+ Praglude: mempty :: Monoid a => a
+ Praglude: mfilter :: MonadPlus m => (a -> Bool) -> m a -> m a
+ Praglude: min :: Ord a => a -> a -> a
+ Praglude: minimum :: (Foldable t, Ord a) => t a -> a
+ Praglude: minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
+ Praglude: minimumByOf :: Getting (Endo (Endo (Maybe a))) s a -> (a -> a -> Ordering) -> s -> Maybe a
+ Praglude: minimumOf :: Ord a => Getting (Endo (Endo (Maybe a))) s a -> s -> Maybe a
+ Praglude: mkWeakIORef :: IORef a -> IO () -> IO (Weak (IORef a))
+ Praglude: mkWeakMVar :: MVar a -> IO () -> IO (Weak (MVar a))
+ Praglude: modify :: MonadState s m => (s -> s) -> m ()
+ Praglude: modify' :: MonadState s m => (s -> s) -> m ()
+ Praglude: modifyIORef :: IORef a -> (a -> a) -> IO ()
+ Praglude: modifyIORef' :: IORef a -> (a -> a) -> IO ()
+ Praglude: modifyMVar :: MVar a -> (a -> IO (a, b)) -> IO b
+ Praglude: modifyMVarMasked :: MVar a -> (a -> IO (a, b)) -> IO b
+ Praglude: modifyMVarMasked_ :: MVar a -> (a -> IO a) -> IO ()
+ Praglude: modifyMVar_ :: MVar a -> (a -> IO a) -> IO ()
+ Praglude: modifying :: MonadState s m => ASetter s s a b -> (a -> b) -> m ()
+ Praglude: mplus :: MonadPlus m => m a -> m a -> m a
+ Praglude: msum :: (Foldable t, MonadPlus m) => t (m a) -> m a
+ Praglude: msumOf :: MonadPlus m => Getting (Endo (m a)) s (m a) -> s -> m a
+ Praglude: mzero :: MonadPlus m => m a
+ Praglude: nearly :: a -> (a -> Bool) -> Prism' a ()
+ Praglude: newChan :: IO (Chan a)
+ Praglude: newEmptyMVar :: IO (MVar a)
+ Praglude: newIORef :: a -> IO (IORef a)
+ Praglude: newMVar :: a -> IO (MVar a)
+ Praglude: newtype All :: *
+ Praglude: newtype Alt k (f :: k -> *) (a :: k) :: forall k. (k -> *) -> k -> *
+ Praglude: newtype Any :: *
+ Praglude: newtype ArrowMonad (a :: * -> * -> *) b :: (* -> * -> *) -> * -> *
+ Praglude: newtype Bazaar (p :: * -> * -> *) a b t :: (* -> * -> *) -> * -> * -> * -> *
+ Praglude: newtype Bazaar1 (p :: * -> * -> *) a b t :: (* -> * -> *) -> * -> * -> * -> *
+ Praglude: newtype Const k a (b :: k) :: forall k. * -> k -> *
+ Praglude: newtype Dual a :: * -> *
+ Praglude: newtype Endo a :: * -> *
+ Praglude: newtype First a :: * -> *
+ Praglude: newtype Identity a :: * -> *
+ Praglude: newtype Indexed i a b :: * -> * -> * -> *
+ Praglude: newtype Kleisli (m :: * -> *) a b :: (* -> *) -> * -> * -> *
+ Praglude: newtype Product a :: * -> *
+ Praglude: newtype ReifiedFold s a :: * -> * -> *
+ Praglude: newtype ReifiedGetter s a :: * -> * -> *
+ Praglude: newtype ReifiedIndexedFold i s a :: * -> * -> * -> *
+ Praglude: newtype ReifiedIndexedGetter i s a :: * -> * -> * -> *
+ Praglude: newtype ReifiedIndexedLens i s t a b :: * -> * -> * -> * -> * -> *
+ Praglude: newtype ReifiedIndexedSetter i s t a b :: * -> * -> * -> * -> * -> *
+ Praglude: newtype ReifiedIndexedTraversal i s t a b :: * -> * -> * -> * -> * -> *
+ Praglude: newtype ReifiedIso s t a b :: * -> * -> * -> * -> *
+ Praglude: newtype ReifiedLens s t a b :: * -> * -> * -> * -> *
+ Praglude: newtype ReifiedPrism s t a b :: * -> * -> * -> * -> *
+ Praglude: newtype ReifiedSetter s t a b :: * -> * -> * -> * -> *
+ Praglude: newtype ReifiedTraversal s t a b :: * -> * -> * -> * -> *
+ Praglude: newtype StateT s (m :: * -> *) a :: * -> (* -> *) -> * -> *
+ Praglude: newtype Sum a :: * -> *
+ Praglude: non :: Eq a => a -> Iso' (Maybe a) a
+ Praglude: non' :: APrism' a () -> Iso' (Maybe a) a
+ Praglude: none :: Foldable f => (a -> Bool) -> f a -> Bool
+ Praglude: noneOf :: Getting Any s a -> (a -> Bool) -> s -> Bool
+ Praglude: normalise :: FilePath -> FilePath
+ Praglude: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Praglude: notElemOf :: Eq a => Getting All s a -> a -> s -> Bool
+ Praglude: notNullOf :: Getting Any s a -> s -> Bool
+ Praglude: nullOf :: Getting All s a -> s -> Bool
+ Praglude: nullSet :: SetLike m v => m -> Bool
+ Praglude: on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
+ Praglude: only :: Eq a => a -> Prism' a ()
+ Praglude: op :: Wrapped s => (Unwrapped s -> s) -> s -> Unwrapped s
+ Praglude: or :: Foldable t => t Bool -> Bool
+ Praglude: orOf :: Getting Any s Bool -> s -> Bool
+ Praglude: ord :: Char -> Int
+ Praglude: outside :: Representable p => APrism s t a b -> Lens (p t r) (p s r) (p b r) (p a r)
+ Praglude: over :: ASetter s t a b -> (a -> b) -> s -> t
+ Praglude: overA :: Arrow ar => LensLike * (Context a b) s t a b -> ar a b -> ar s t
+ Praglude: para :: Plated a => (a -> [r] -> r) -> a -> r
+ Praglude: paraOf :: Getting (Endo [a]) a a -> (a -> [r] -> r) -> a -> r
+ Praglude: parseFormat :: PrintfArg a => a -> ModifierParser
+ Praglude: parts :: Plated a => Lens' a [a]
+ Praglude: partsOf :: Functor f => Traversing (->) f s t a a -> LensLike * f s t [a] [a]
+ Praglude: partsOf' :: ATraversal s t a a -> Lens s t [a] [a]
+ Praglude: passing :: MonadWriter w m => Setter w w u v -> m (a, u -> v) -> m a
+ Praglude: pathSeparator :: Char
+ Praglude: pathSeparators :: [Char]
+ Praglude: perror :: String -> a
+ Praglude: plate :: Plated a => Traversal' a a
+ Praglude: pre :: Getting (First a) s a -> IndexPreservingGetter s (Maybe a)
+ Praglude: preuse :: MonadState s m => Getting (First a) s a -> m (Maybe a)
+ Praglude: preuses :: MonadState s m => Getting (First r) s a -> (a -> r) -> m (Maybe r)
+ Praglude: preview :: MonadReader s m => Getting (First a) s a -> m (Maybe a)
+ Praglude: previews :: MonadReader s m => Getting (First r) s a -> (a -> r) -> m (Maybe r)
+ Praglude: printf :: PrintfType r => String -> r
+ Praglude: prism :: (b -> t) -> (s -> Either t a) -> Prism s t a b
+ Praglude: prism' :: (b -> s) -> (s -> Maybe a) -> Prism s s a b
+ Praglude: product :: (Foldable t, Num a) => t a -> a
+ Praglude: productOf :: Num a => Getting (Endo (Endo a)) s a -> s -> a
+ Praglude: put :: MonadState s m => s -> m ()
+ Praglude: putMVar :: MVar a -> a -> IO ()
+ Praglude: re :: AReview t b -> Getter b t
+ Praglude: readChan :: Chan a -> IO a
+ Praglude: readIORef :: IORef a -> IO a
+ Praglude: readLitChar :: ReadS Char
+ Praglude: readMVar :: MVar a -> IO a
+ Praglude: reindexed :: Indexable j p => (i -> j) -> (Indexed i a b -> r) -> p a b -> r
+ Praglude: removeDirectory :: FilePath -> IO ()
+ Praglude: removeDirectoryRecursive :: FilePath -> IO ()
+ Praglude: removeFile :: FilePath -> IO ()
+ Praglude: renameDirectory :: FilePath -> FilePath -> IO ()
+ Praglude: renameFile :: FilePath -> FilePath -> IO ()
+ Praglude: repeated :: Apply f => LensLike' f a a
+ Praglude: replaceBaseName :: FilePath -> String -> FilePath
+ Praglude: replaceDirectory :: FilePath -> String -> FilePath
+ Praglude: replaceExtension :: FilePath -> String -> FilePath
+ Praglude: replaceExtensions :: FilePath -> String -> FilePath
+ Praglude: replaceFileName :: FilePath -> String -> FilePath
+ Praglude: replicateM :: Applicative m => Int -> m a -> m [a]
+ Praglude: replicateM_ :: Applicative m => Int -> m a -> m ()
+ Praglude: replicated :: Int -> Fold a a
+ Praglude: retagged :: (Profunctor p, Bifunctor p) => p a b -> p s b
+ Praglude: return :: Monad m => a -> m a
+ Praglude: returnA :: Arrow a => a b b
+ Praglude: reuse :: MonadState b m => AReview t b -> m t
+ Praglude: reuses :: MonadState b m => AReview t b -> (t -> r) -> m r
+ Praglude: reversed :: Reversing a => Iso' a a
+ Praglude: reversing :: Reversing t => t -> t
+ Praglude: review :: MonadReader b m => AReview t b -> m t
+ Praglude: reviews :: MonadReader b m => AReview t b -> (t -> r) -> m r
+ Praglude: rewrite :: Plated a => (a -> Maybe a) -> a -> a
+ Praglude: rewriteM :: (Monad m, Plated a) => (a -> m (Maybe a)) -> a -> m a
+ Praglude: rewriteMOf :: Monad m => LensLike' (WrappedMonad m) a a -> (a -> m (Maybe a)) -> a -> m a
+ Praglude: rewriteMOn :: (Monad m, Plated a) => LensLike * (WrappedMonad m) s t a a -> (a -> m (Maybe a)) -> s -> m t
+ Praglude: rewriteMOnOf :: Monad m => LensLike * (WrappedMonad m) s t a a -> LensLike' (WrappedMonad m) a a -> (a -> m (Maybe a)) -> s -> m t
+ Praglude: rewriteOf :: ASetter' a a -> (a -> Maybe a) -> a -> a
+ Praglude: rewriteOn :: Plated a => ASetter s t a a -> (a -> Maybe a) -> s -> t
+ Praglude: rewriteOnOf :: ASetter s t a a -> ASetter' a a -> (a -> Maybe a) -> s -> t
+ Praglude: right :: ArrowChoice a => forall b c d. a b c -> a (Either d b) (Either d c)
+ Praglude: rmap :: Profunctor p => (b -> c) -> p a b -> p a c
+ Praglude: rmapping :: (Profunctor p, Profunctor q) => AnIso s t a b -> Iso (p x s) (q y t) (p x a) (q y b)
+ Praglude: runEq :: AnEquality k k1 s t a b -> Identical k k1 s t a b
+ Praglude: runState :: State s a -> s -> (a, s)
+ Praglude: runStateT :: StateT s m a -> s -> m (a, s)
+ Praglude: sans :: At m => Index m -> m -> m
+ Praglude: scanl1Of :: LensLike * (State (Maybe a)) s t a a -> (a -> a -> a) -> s -> t
+ Praglude: scanr1Of :: LensLike * (Backwards * (State (Maybe a))) s t a a -> (a -> a -> a) -> s -> t
+ Praglude: scribe :: (MonadWriter t m, Monoid s) => ASetter s t a b -> b -> m ()
+ Praglude: searchPathSeparator :: Char
+ Praglude: second :: Arrow a => a b c -> a (d, b) (d, c)
+ Praglude: seconding :: (Bifunctor f, Bifunctor g) => AnIso s t a b -> Iso (f x s) (g y t) (f x a) (g y b)
+ Praglude: selfIndex :: Indexable a p => p a fb -> a -> fb
+ Praglude: sequence :: Traversable t => forall (m :: * -> *) a. Monad m => t (m a) -> m (t a)
+ Praglude: sequenceAOf :: LensLike * f s t (f b) b -> s -> f t
+ Praglude: sequenceAOf_ :: Functor f => Getting (Traversed a f) s (f a) -> s -> f ()
+ Praglude: sequenceA_ :: (Foldable t, Applicative f) => t (f a) -> f ()
+ Praglude: sequenceBy :: Traversable t => (forall x. x -> f x) -> (forall x y. f (x -> y) -> f x -> f y) -> t (f a) -> f (t a)
+ Praglude: sequenceByOf :: Traversal s t (f b) b -> (forall x. x -> f x) -> (forall x y. f (x -> y) -> f x -> f y) -> s -> f t
+ Praglude: sequenceOf :: LensLike * (WrappedMonad m) s t (m b) b -> s -> m t
+ Praglude: sequenceOf_ :: Monad m => Getting (Sequenced a m) s (m a) -> s -> m ()
+ Praglude: sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()
+ Praglude: set :: ASetter s t a b -> b -> s -> t
+ Praglude: set' :: ASetter' s a -> a -> s -> s
+ Praglude: setAccessTime :: FilePath -> UTCTime -> IO ()
+ Praglude: setCurrentDirectory :: FilePath -> IO ()
+ Praglude: setEnv :: String -> String -> IO ()
+ Praglude: setModificationTime :: FilePath -> UTCTime -> IO ()
+ Praglude: setOwnerExecutable :: Bool -> Permissions -> Permissions
+ Praglude: setOwnerReadable :: Bool -> Permissions -> Permissions
+ Praglude: setOwnerSearchable :: Bool -> Permissions -> Permissions
+ Praglude: setOwnerWritable :: Bool -> Permissions -> Permissions
+ Praglude: setPermissions :: FilePath -> Permissions -> IO ()
+ Praglude: sets :: (Profunctor p, Profunctor q, Settable f) => (p a b -> q s t) -> Optical * * * * p q f s t a b
+ Praglude: setting :: ((a -> b) -> s -> t) -> IndexPreservingSetter s t a b
+ Praglude: showLitChar :: Char -> ShowS
+ Praglude: simple :: p a (f a) -> p a (f a)
+ Praglude: simpleLenses :: Lens' LensRules Bool
+ Praglude: simply :: (Optic' k k1 p f s a -> r) -> Optic' k k1 p f s a -> r
+ Praglude: singular :: (Conjoined p, Functor f) => Traversing p f s t a a -> Over * * p f s t a a
+ Praglude: snoc :: Snoc s s a a => s -> a -> s
+ Praglude: splitDirectories :: FilePath -> [FilePath]
+ Praglude: splitDrive :: FilePath -> (FilePath, FilePath)
+ Praglude: splitExtension :: FilePath -> (String, String)
+ Praglude: splitExtensions :: FilePath -> (FilePath, String)
+ Praglude: splitFileName :: FilePath -> (String, String)
+ Praglude: splitPath :: FilePath -> [FilePath]
+ Praglude: splitSearchPath :: String -> [FilePath]
+ Praglude: state :: MonadState s m => (s -> (a, s)) -> m a
+ Praglude: storing :: ALens s t a b -> b -> s -> t
+ Praglude: strict :: Strict lazy strict => Iso' lazy strict
+ Praglude: stripExtension :: String -> FilePath -> Maybe FilePath
+ Praglude: substEq :: AnEquality k k1 s t a b -> ((~) k1 s a -> (~) k t b -> r) -> r
+ Praglude: sum :: (Foldable t, Num a) => t a -> a
+ Praglude: sumOf :: Num a => Getting (Endo (Endo a)) s a -> s -> a
+ Praglude: swapMVar :: MVar a -> a -> IO a
+ Praglude: takeBaseName :: FilePath -> String
+ Praglude: takeDirectory :: FilePath -> FilePath
+ Praglude: takeDrive :: FilePath -> FilePath
+ Praglude: takeExtension :: FilePath -> String
+ Praglude: takeExtensions :: FilePath -> String
+ Praglude: takeFileName :: FilePath -> FilePath
+ Praglude: takeMVar :: MVar a -> IO a
+ Praglude: taking :: (Conjoined p, Applicative f) => Int -> Traversing p f s t a a -> Over * * p f s t a a
+ Praglude: takingWhile :: (Conjoined p, Applicative f) => (a -> Bool) -> Over * * p (TakingWhile p f a a) s t a a -> Over * * p f s t a a
+ Praglude: to :: (Profunctor p, Contravariant f, Functor f) => (s -> a) -> Optic' * * p f s a
+ Praglude: toChar :: IsChar c => c -> Char
+ Praglude: toList :: Foldable t => t a -> [a]
+ Praglude: toListOf :: Getting (Endo [a]) s a -> s -> [a]
+ Praglude: toLower :: Char -> Char
+ Praglude: toTitle :: Char -> Char
+ Praglude: toUpper :: Char -> Char
+ Praglude: transform :: Plated a => (a -> a) -> a -> a
+ Praglude: transformM :: (Monad m, Plated a) => (a -> m a) -> a -> m a
+ Praglude: transformMOf :: Monad m => LensLike' (WrappedMonad m) a a -> (a -> m a) -> a -> m a
+ Praglude: transformMOn :: (Monad m, Plated a) => LensLike * (WrappedMonad m) s t a a -> (a -> m a) -> s -> m t
+ Praglude: transformMOnOf :: Monad m => LensLike * (WrappedMonad m) s t a a -> LensLike' (WrappedMonad m) a a -> (a -> m a) -> s -> m t
+ Praglude: transformOf :: ASetter' a a -> (a -> a) -> a -> a
+ Praglude: transformOn :: Plated a => ASetter s t a a -> (a -> a) -> s -> t
+ Praglude: transformOnOf :: ASetter s t a a -> ASetter' a a -> (a -> a) -> s -> t
+ Praglude: transposeOf :: LensLike * ZipList s t [a] a -> s -> [t]
+ Praglude: traverseBy :: Traversable t => (forall x. x -> f x) -> (forall x y. f (x -> y) -> f x -> f y) -> (a -> f b) -> t a -> f (t b)
+ Praglude: traverseByOf :: Traversal s t a b -> (forall x. x -> f x) -> (forall x y. f (x -> y) -> f x -> f y) -> (a -> f b) -> s -> f t
+ Praglude: traverseOf :: LensLike * f s t a b -> (a -> f b) -> s -> f t
+ Praglude: traverseOf_ :: Functor f => Getting (Traversed r f) s a -> (a -> f r) -> s -> f ()
+ Praglude: traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
+ Praglude: traversed :: Traversable f => IndexedTraversal Int (f a) (f b) a b
+ Praglude: traversed1 :: Traversable1 f => IndexedTraversal1 Int (f a) (f b) a b
+ Praglude: traversed64 :: Traversable f => IndexedTraversal Int64 (f a) (f b) a b
+ Praglude: tryPutMVar :: MVar a -> a -> IO Bool
+ Praglude: tryReadMVar :: MVar a -> IO (Maybe a)
+ Praglude: tryTakeMVar :: MVar a -> IO (Maybe a)
+ Praglude: type Traversal1 s t a b = forall (f :: * -> *). Apply f => (a -> f b) -> s -> f t
+ Praglude: type ALens s t a b = LensLike * (Pretext (->) a b) s t a b
+ Praglude: type ALens' s a = ALens s s a a
+ Praglude: type APrism s t a b = Market a b a (Identity b) -> Market a b s (Identity t)
+ Praglude: type APrism' s a = APrism s s a a
+ Praglude: type AReview t b = Optic' * * (Tagged *) Identity t b
+ Praglude: type ASetter s t a b = (a -> Identity b) -> s -> Identity t
+ Praglude: type ASetter' s a = ASetter s s a a
+ Praglude: type ATraversal s t a b = LensLike * (Bazaar (->) a b) s t a b
+ Praglude: type ATraversal' s a = ATraversal s s a a
+ Praglude: type ATraversal1 s t a b = LensLike * (Bazaar1 (->) a b) s t a b
+ Praglude: type ATraversal1' s a = ATraversal1 s s a a
+ Praglude: type Accessing (p :: * -> * -> *) m s a = p a (Const * m a) -> s -> Const * m s
+ Praglude: type AnEquality k2 k1 (s :: k1) (t :: k2) (a :: k1) (b :: k2) = Identical * k1 a (Proxy k2 b) a (Proxy k2 b) -> Identical * k1 a (Proxy k2 b) s (Proxy k2 t)
+ Praglude: type AnEquality' k2 (s :: k2) (a :: k2) = AnEquality k2 k2 s s a a
+ Praglude: type AnIndexedLens i s t a b = Optical * * * * (Indexed i) (->) (Pretext (Indexed i) a b) s t a b
+ Praglude: type AnIndexedLens' i s a = AnIndexedLens i s s a a
+ Praglude: type AnIndexedSetter i s t a b = Indexed i a (Identity b) -> s -> Identity t
+ Praglude: type AnIndexedSetter' i s a = AnIndexedSetter i s s a a
+ Praglude: type AnIndexedTraversal i s t a b = Over * * (Indexed i) (Bazaar (Indexed i) a b) s t a b
+ Praglude: type AnIndexedTraversal' i s a = AnIndexedTraversal i s s a a
+ Praglude: type AnIndexedTraversal1 i s t a b = Over * * (Indexed i) (Bazaar1 (Indexed i) a b) s t a b
+ Praglude: type AnIndexedTraversal1' i s a = AnIndexedTraversal1 i s s a a
+ Praglude: type AnIso s t a b = Exchange a b a (Identity b) -> Exchange a b s (Identity t)
+ Praglude: type AnIso' s a = AnIso s s a a
+ Praglude: type As k2 (a :: k2) = Equality' k2 a a
+ Praglude: type Bazaar' (p :: * -> * -> *) a = Bazaar p a a
+ Praglude: type Bazaar1' (p :: * -> * -> *) a = Bazaar1 p a a
+ Praglude: type ClassyNamer = Name -> Maybe (Name, Name)
+ Praglude: type Context' a = Context a a
+ Praglude: type Equality k2 k1 (s :: k1) (t :: k2) (a :: k1) (b :: k2) = forall k3 (p :: k1 -> k3 -> *) (f :: k2 -> k3). p a (f b) -> p s (f t)
+ Praglude: type Equality' k2 (s :: k2) (a :: k2) = Equality k2 k2 s s a a
+ Praglude: type FieldFormatter = FieldFormat -> ShowS
+ Praglude: type FieldNamer = Name -> [Name] -> Name -> [DefName]
+ Praglude: type FilePath = String
+ Praglude: type Getting r s a = (a -> Const * r a) -> s -> Const * r s
+ Praglude: type IndexPreservingLens' s a = IndexPreservingLens s s a a
+ Praglude: type IndexPreservingSetter' s a = IndexPreservingSetter s s a a
+ Praglude: type IndexPreservingTraversal' s a = IndexPreservingTraversal s s a a
+ Praglude: type IndexPreservingTraversal1' s a = IndexPreservingTraversal1 s s a a
+ Praglude: type IndexedGetting i m s a = Indexed i a (Const * m a) -> s -> Const * m s
+ Praglude: type IndexedLens' i s a = IndexedLens i s s a a
+ Praglude: type IndexedLensLike' i (f :: * -> *) s a = IndexedLensLike * i f s s a a
+ Praglude: type IndexedSetter' i s a = IndexedSetter i s s a a
+ Praglude: type IndexedTraversal' i s a = IndexedTraversal i s s a a
+ Praglude: type IndexedTraversal1' i s a = IndexedTraversal1 i s s a a
+ Praglude: type Iso' s a = Iso s s a a
+ Praglude: type Lens' s a = Lens s s a a
+ Praglude: type LensLike k (f :: k -> *) s (t :: k) a (b :: k) = (a -> f b) -> s -> f t
+ Praglude: type LensLike' (f :: * -> *) s a = LensLike * f s s a a
+ Praglude: type ModifierParser = String -> FormatParse
+ Praglude: type Optic k k1 k2 (p :: k2 -> k1 -> *) (f :: k -> k1) (s :: k2) (t :: k) (a :: k2) (b :: k) = p a (f b) -> p s (f t)
+ Praglude: type Review t b = forall (p :: * -> * -> *) (f :: * -> *). (Choice p, Bifunctor p, Settable f) => Optic' * * p f t b
+ Praglude: type Optical k k1 k2 k3 (p :: k3 -> k2 -> *) (q :: k1 -> k2 -> *) (f :: k -> k2) (s :: k1) (t :: k) (a :: k3) (b :: k) = p a (f b) -> q s (f t)
+ Praglude: type Optical' k k1 (p :: k1 -> k -> *) (q :: k1 -> k -> *) (f :: k1 -> k) (s :: k1) (a :: k1) = Optical k1 k1 k k1 p q f s s a a
+ Praglude: type Over k k1 (p :: k1 -> * -> *) (f :: k -> *) s (t :: k) (a :: k1) (b :: k) = p a (f b) -> s -> f t
+ Praglude: type Over' (p :: * -> * -> *) (f :: * -> *) s a = Over * * p f s s a a
+ Praglude: type Prism' s a = Prism s s a a
+ Praglude: type ReifiedIndexedLens' i s a = ReifiedIndexedLens i s s a a
+ Praglude: type ReifiedIndexedSetter' i s a = ReifiedIndexedSetter i s s a a
+ Praglude: type ReifiedIndexedTraversal' i s a = ReifiedIndexedTraversal i s s a a
+ Praglude: type ReifiedIso' s a = ReifiedIso s s a a
+ Praglude: type ReifiedLens' s a = ReifiedLens s s a a
+ Praglude: type ReifiedPrism' s a = ReifiedPrism s s a a
+ Praglude: type ReifiedSetter' s a = ReifiedSetter s s a a
+ Praglude: type ReifiedTraversal' s a = ReifiedTraversal s s a a
+ Praglude: type Setter' s a = Setter s s a a
+ Praglude: type Setting (p :: * -> * -> *) s t a b = p a (Identity b) -> s -> Identity t
+ Praglude: type Setting' (p :: * -> * -> *) s a = Setting p s s a a
+ Praglude: type Simple k k1 k2 (f :: k2 -> k2 -> k1 -> k1 -> k) (s :: k2) (a :: k1) = f s s a a
+ Praglude: type State s = StateT s Identity
+ Praglude: type Traversal' s a = Traversal s s a a
+ Praglude: type Traversal1' s a = Traversal1 s s a a
+ Praglude: type Traversing (p :: * -> * -> *) (f :: * -> *) s t a b = Over * * p (BazaarT p f a b) s t a b
+ Praglude: type Traversing' (p :: * -> * -> *) (f :: * -> *) s a = Traversing p f s s a a
+ Praglude: type Traversing1 (p :: * -> * -> *) (f :: * -> *) s t a b = Over * * p (BazaarT1 p f a b) s t a b
+ Praglude: type Traversing1' (p :: * -> * -> *) (f :: * -> *) s a = Traversing1 p f s s a a
+ Praglude: type family Unwrapped s :: *;
+ Praglude: type Prism s t a b = forall (p :: * -> * -> *) (f :: * -> *). (Choice p, Applicative f) => p a (f b) -> p s (f t)
+ Praglude: un :: (Profunctor p, Bifunctor p, Functor f) => Getting a s a -> Optic' * * p f a s
+ Praglude: uncons :: Cons s s a a => s -> Maybe (a, s)
+ Praglude: uncurried :: (Profunctor p, Functor f) => p ((a, b) -> c) (f ((d, e) -> f)) -> p (a -> b -> c) (f (d -> e -> f))
+ Praglude: under :: AnIso s t a b -> (t -> s) -> b -> a
+ Praglude: underscoreFields :: LensRules
+ Praglude: underscoreNamer :: FieldNamer
+ Praglude: underscoreNoPrefixNamer :: FieldNamer
+ Praglude: unfolded :: (b -> Maybe (a, b)) -> Fold b a
+ Praglude: united :: Functor f => (() -> f ()) -> a -> f a
+ Praglude: universe :: Plated a => a -> [a]
+ Praglude: universeOf :: Getting [a] a a -> a -> [a]
+ Praglude: universeOn :: Plated a => Getting [a] s a -> s -> [a]
+ Praglude: universeOnOf :: Getting [a] s a -> Getting [a] a a -> s -> [a]
+ Praglude: unless :: Applicative f => Bool -> f () -> f ()
+ Praglude: unsafePartsOf :: Functor f => Traversing (->) f s t a b -> LensLike * f s t [a] [b]
+ Praglude: unsafePartsOf' :: ATraversal s t a b -> Lens s t [a] [b]
+ Praglude: unsafeSingular :: (Conjoined p, Functor f) => Traversing p f s t a b -> Over * * p f s t a b
+ Praglude: unsetEnv :: String -> IO ()
+ Praglude: unsnoc :: Snoc s s a a => s -> Maybe (s, a)
+ Praglude: unto :: (Profunctor p, Bifunctor p, Functor f) => (b -> t) -> Optic * * * p f s t a b
+ Praglude: use :: MonadState s m => Getting a s a -> m a
+ Praglude: uses :: MonadState s m => LensLike' (Const * r) s a -> (a -> r) -> m r
+ Praglude: vFmt :: Char -> FieldFormat -> FieldFormat
+ Praglude: view :: MonadReader s m => Getting a s a -> m a
+ Praglude: views :: MonadReader s m => LensLike' (Const * r) s a -> (a -> r) -> m r
+ Praglude: void :: Functor f => f a -> f ()
+ Praglude: when :: Applicative f => Bool -> f () -> f ()
+ Praglude: withArgs :: [String] -> IO a -> IO a
+ Praglude: withCurrentDirectory :: FilePath -> IO a -> IO a
+ Praglude: withIndex :: (Indexable i p, Functor f) => p (i, s) (f (j, t)) -> Indexed i s (f t)
+ Praglude: withIso :: AnIso s t a b -> ((s -> a) -> (b -> t) -> r) -> r
+ Praglude: withMVar :: MVar a -> (a -> IO b) -> IO b
+ Praglude: withMVarMasked :: MVar a -> (a -> IO b) -> IO b
+ Praglude: withPrism :: APrism s t a b -> ((b -> t) -> (s -> Either t a) -> r) -> r
+ Praglude: withProgName :: String -> IO a -> IO a
+ Praglude: withState :: (s -> s) -> State s a -> State s a
+ Praglude: withStateT :: (s -> s) -> StateT s m a -> StateT s m a
+ Praglude: without :: APrism s t a b -> APrism u v c d -> Prism (Either s u) (Either t v) (Either a c) (Either b d)
+ Praglude: worded :: Applicative f => IndexedLensLike' Int f String String
+ Praglude: writeChan :: Chan a -> a -> IO ()
+ Praglude: writeIORef :: IORef a -> a -> IO ()
+ Praglude: writeList2Chan :: Chan a -> [a] -> IO ()
+ Praglude: zeroArrow :: ArrowZero a => a b c
+ Praglude: zipWithM :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m [c]
+ Praglude: zipWithM_ :: Applicative m => (a -> b -> m c) -> [a] -> [b] -> m ()
+ Praglude: }
- Praglude: class ListLike m a | m -> a where slice offset len = take len . drop offset takeEnd n x = drop (length x - n) x dropEnd n x = take (length x - n) x
+ Praglude: class ListLike m a | m -> a where slice offset len = take len . drop offset takeEnd n x = drop (listLength x - n) x dropEnd n x = take (listLength x - n) x
- Praglude: class SetLike m v | m -> v where size = length . items null = null . items
+ Praglude: class SetLike m v | m -> v where size = length . items nullSet = null . items
- Praglude: elem :: SetLike m v => v -> m -> Bool
+ Praglude: elem :: (Foldable t, Eq a) => a -> t a -> Bool
- Praglude: length :: ListLike m a => m -> Int
+ Praglude: length :: Foldable t => t a -> Int
- Praglude: null :: SetLike m v => m -> Bool
+ Praglude: null :: Foldable t => t a -> Bool

Files

praglude.cabal view
@@ -1,5 +1,5 @@ name: praglude-version: 0.1.1.0+version: 0.1.2.0 synopsis: A pragmatic Prelude description: An opinionated alternative Prelude, focused on practicality. homepage: https://github.com/tdammers/praglude
src/Praglude.hs view
@@ -13,623 +13,1669 @@   module Prelude  -- * Monoids-, module Data.Monoid-, concat-, append-, empty---- * Maybe-, module Data.Maybe---- * Applicative-, (<|>)---- * Monads-, module Control.Monad---- * Arrows-, module Control.Arrow---- * Mutable Variables In IO-, module Data.IORef-, module Control.Concurrent.MVar-, module Control.Concurrent.Chan---- * Default-, module Data.Default---- * Lens-, module Control.Lens---- * State monads-, module Control.Monad.State---- * Painless String Types-, s-, ToString (..)-, FromString-, IsString (..)--, Text-, LText-, ByteString-, LByteString---- * Generalized String Operations--, trim-, ltrim-, rtrim-, words-, lines--, module Data.Char---- * String Case Conversions-, kebab, snake, pascal---- * I/O-, stderr-, stdout-, stdin-, Handle---- * Environment-, module System.Environment---- * Generalized I/O-, StringIO (..)---- * Printf-, module Text.Printf---- * Filename And File System Manipulation-, module System.FilePath-, module System.Directory---- * Type Forcers------ Useful for disambiguation-, asString-, asText-, asLText-, asByteString-, asLByteString-, asHashMap---- * Container Types With Unified Interfaces--, module Data.Foldable--, AList (..)-, HashMap-, LHashMap-, HashSet-, Map-, Set-, Vector--, Hashable (..)-, Lookup (..)-, ListLike (..)-, DictLike (..)-, SetLike (..)-, Filterable (..)-, cull-, startsWith-, endsWith-, intercalate---- * JSON-, ToJSON (..)-, FromJSON (..)-, Value-, object-, prettyJsonOptions-, derivePrettyJSON-, deriveJSON--, encodeJSON-, decodeJSON-, encodeJSONStrict-, decodeJSONStrict-, (~>)---- * Base-64-, encodeBase64-, decodeBase64---- * Concurrency And Exception Handling-, threadDelay-, forkIO-, bracket-, bracket_-, throw-, catch-, catches---- * Generics-, Generic---- * Functions-, chain-, module Data.Function---- * Date and Time-, Day (..)-, TimeOfDay (..)-, UTCTime (..)-, LocalTime (..)-, TimeZone (..)-, ZonedTime (..)-, TimeLocale (..)-, DiffTime (..)-, NominalDiffTime (..)-, secondsToDiffTime-, picosecondsToDiffTime-, addUTCTime-, diffUTCTime-, getCurrentTime--, defaultTimeLocale--, toGregorian-, fromGregorian--, formatTime-)-where--import Prelude hiding ( putStr-                      , putStrLn-                      , readFile-                      , writeFile-                      , lookup-                      , getContents-                      , null-                      , elem-                      , concat-                      , filter-                      , take-                      , drop-                      , lines-                      , words-                      , length-                      )-import qualified Prelude-import System.FilePath hiding ( (<.>), isValid )-import System.Directory-import qualified System.IO as IO-import System.IO (stderr, stdout, stdin, Handle)-import Data.Maybe-import Control.Monad-import Control.Applicative hiding ( empty )-import Text.Printf-import Data.Monoid-import Data.Char-import Control.Arrow (left, right, (+++), (|||))-import Data.Foldable hiding (null, elem, concat, length)-import System.Environment-import Control.Concurrent.MVar-import Control.Concurrent.Chan-import Data.IORef-import Control.Monad.State--import Text.Casing-import qualified Data.Text as Text-import qualified Data.Text.IO as Text-import qualified Data.Text.Lazy-import qualified Data.Text.Lazy as LText-import qualified Data.Text.Lazy.IO as LText-import qualified Data.ByteString as BS-import qualified Data.ByteString.Lazy as LBS-import qualified Data.HashMap.Strict as HashMap-import qualified Data.HashMap.Lazy as LHashMap-import qualified Data.HashSet as HashSet-import qualified Data.ByteString.Base64 as Base64-import qualified Data.Vector as Vector-import Data.Vector (Vector)-import qualified Data.Set as Set-import Data.Set (Set)-import qualified Data.Map as Map-import Data.Map (Map)-import Data.Hashable (Hashable (..))-import Text.StringConvert-import Data.Typeable-import GHC.Generics-import GHC.Exts hiding (toList)-import Data.Data-import Data.Semigroup-import Control.DeepSeq-import qualified Data.List as List-import Control.Lens-import Control.Lens.TH (makeLenses)-import Data.Aeson (ToJSON (..), FromJSON (..), Value, object)-import Data.Aeson.TH (deriveJSON)-import qualified Data.Aeson as JSON-import qualified Data.Aeson.TH as JSON-import Data.Default-import Data.List (foldl')-import Control.Concurrent-import Control.Exception-import Data.Function--import Data.Time--import Language.Haskell.TH.Syntax (Name, Q, Dec)--type Text = Text.Text-type LText = LText.Text-type ByteString = BS.ByteString-type LByteString = LBS.ByteString--empty :: Monoid a => a-empty = mempty--append :: Monoid a => a -> a -> a-append = mappend--concat :: Monoid a => [a] -> a-concat = mconcat--lines :: (FromString a, ToString a) => a -> [a]-lines = map s . Prelude.lines . s--words :: (FromString a, ToString a) => a -> [a]-words = map s . Prelude.words . s--trim :: (FromString a, ToString a) => a -> a-trim = ltrim . rtrim--ltrim :: (FromString a, ToString a) => a -> a-ltrim = s . dropWhile isSpace . s--rtrim :: (FromString a, ToString a) => a -> a-rtrim = s . List.dropWhileEnd isSpace . s--{-#RULES "Text.trim" trim = Text.strip #-}-{-#RULES "LText.trim" trim = Data.Text.Lazy.strip #-}-{-#RULES "Text.ltrim" trim = Text.dropWhile isSpace #-}-{-#RULES "Text.rtrim" trim = Text.dropWhileEnd isSpace #-}-{-#RULES "LText.ltrim" trim = Data.Text.Lazy.dropWhile isSpace #-}-{-#RULES "LText.rtrim" trim = Data.Text.Lazy.dropWhileEnd isSpace #-}--type HashMap = HashMap.HashMap---- | A lazy hash map. Because 'LHashMap.HashMap' is actually the exact--- same type as 'HashMap.HashMap', we wrap it in a newtype so that--- we can tie laziness into the type itself (similar to how it works--- for 'Text' and 'ByteString').-newtype LHashMap k v = LHashMap { unLHashMap :: LHashMap.HashMap k v }-    deriving (Read, Show, Typeable, Generic, Functor, Foldable, Traversable, Eq, Data, Semigroup, Monoid, NFData, Hashable)--type HashSet = HashSet.HashSet---- | Types that can be written to / read from file descriptors.-class StringIO a where-    putStr :: a -> IO ()-    putStrLn :: a -> IO ()-    hPutStr :: Handle -> a -> IO ()-    hPutStrLn :: Handle -> a -> IO ()-    readFile :: FilePath -> IO a-    writeFile :: FilePath -> a -> IO ()-    getContents :: IO a-    hGetContents :: Handle -> IO a-    putStrLn str = putStr str >> putStr "\n"-    hPutStrLn h str = hPutStr h str >> hPutStr h "\n"--instance StringIO String where-    putStr = IO.putStr-    putStrLn = IO.putStrLn-    hPutStr = IO.hPutStr-    hPutStrLn = IO.hPutStrLn-    readFile = IO.readFile-    writeFile = IO.writeFile-    getContents = IO.getContents-    hGetContents = IO.hGetContents--instance StringIO Text where-    putStr = Text.putStr-    putStrLn = Text.putStrLn-    hPutStr = Text.hPutStr-    hPutStrLn = Text.hPutStrLn-    readFile = Text.readFile-    writeFile = Text.writeFile-    getContents = Text.getContents-    hGetContents = Text.hGetContents--instance StringIO LText where-    putStr = LText.putStr-    putStrLn = LText.putStrLn-    hPutStr = LText.hPutStr-    hPutStrLn = LText.hPutStrLn-    readFile = LText.readFile-    writeFile = LText.writeFile-    getContents = LText.getContents-    hGetContents = LText.hGetContents--instance StringIO ByteString where-    putStr = BS.putStr-    hPutStr = BS.hPutStr-    readFile = BS.readFile-    writeFile = BS.writeFile-    getContents = BS.getContents-    hGetContents = BS.hGetContents--instance StringIO LByteString where-    putStr = LBS.putStr-    hPutStr = LBS.hPutStr-    readFile = LBS.readFile-    writeFile = LBS.writeFile-    getContents = LBS.getContents-    hGetContents = LBS.hGetContents---- | Things that support keyed element lookup.-class Lookup m k | m -> k where-    lookup :: k -> m v -> Maybe v-    lookupDef :: v -> k -> m v -> v-    lookupDef d k = fromMaybe d . lookup k--newtype AList k v = AList { unAList :: [(k, v)] }-    deriving (Show, Read, Eq, Ord, Generic, Functor)--instance Eq k => Lookup (AList k) k where-    lookup k = Prelude.lookup k . unAList--class ListLike m a | m -> a where-    intersperse :: a -> m -> m-    take :: Int -> m -> m-    takeEnd :: Int -> m -> m-    drop :: Int -> m -> m-    dropEnd :: Int -> m -> m-    slice :: Int -> Int -> m -> m-    slice offset len = take len . drop offset-    length :: m -> Int-    takeEnd n x = drop (length x - n) x-    dropEnd n x = take (length x - n) x--instance ListLike [a] a where-    intersperse = List.intersperse-    take = List.take-    drop = List.drop-    length = List.length--instance ListLike (Vector a) a where-    intersperse e = Vector.fromList . List.intersperse e . Vector.toList-    take = Vector.take-    drop = Vector.drop-    slice = Vector.slice-    length = Vector.length--instance ListLike Text Char where-    intersperse = Text.intersperse-    take = Text.take . fromIntegral-    drop = Text.drop . fromIntegral-    length = fromIntegral . Text.length--instance ListLike LText Char where-    intersperse = LText.intersperse-    take = LText.take . fromIntegral-    drop = LText.drop . fromIntegral-    length = fromIntegral . LText.length--startsWith :: (Eq a, ListLike a e) => a -> a -> Bool-startsWith haystack needle =-    take (length needle) haystack == needle--endsWith :: (Eq a, ListLike a e) => a -> a -> Bool-endsWith haystack needle =-    takeEnd (length needle) haystack == needle--intercalate :: (Monoid a, Foldable m, ListLike (m a) a) => a -> m a -> a-intercalate s = mconcat . toList . intersperse s---- | Things that behave like sets.-class SetLike m v | m -> v where-    -- | Conjoin: add an element to a set. For ordered sets, the-    -- end at which the new element is inserted is unspecified.-    conj :: v -> m -> m--    -- | Remove all occurrences of the element from the set.-    remove :: v -> m -> m--    -- | Test if the element is in the set.-    elem :: v -> m -> Bool--    -- | Test if the set is empty.-    null :: m -> Bool--    -- | Convert the set to a list of elements. The ordering is unspecified.-    items :: m -> [v]--    -- | Create a set from a list of elements. Duplicate list elements-    -- may be skipped at the implementation's discretion.-    fromItems :: [v] -> m--    -- | Create a singleton (one-element) set.-    singleton :: v -> m--    -- | Get the number of elements in the set.-    size :: m -> Int--    size = List.length . items-    null = List.null . items---- | Things that can be filtered-class Filterable m where-    -- | Filter the set to retain only the elements that match the predicate.-    filter :: (v -> Bool) -> m v -> m v--cull :: Filterable m => (v -> Bool) -> m v -> m v-cull = filter . (not .)---- | Things that behave like key-value dictionaries.-class DictLike m k where-    -- | Add or overwrite an element at a key.-    insert :: k -> v -> m k v -> m k v-    -- | Delete by key-    delete :: k -> m k v -> m k v-    -- | Modify an element at a key-    update :: k -> (v -> Maybe v) -> m k v -> m k v-    -- | Convert to an association list (list of key/value pairs)-    pairs :: m k v -> [(k, v)]-    -- | Convert from an association list (list of key/value pairs)-    fromPairs :: [(k, v)] -> m k v-    -- | Get the keys, discard the values-    keys :: m k v -> [k]-    -- | Get the values, discard the keys-    elems :: m k v -> [v]-    -- | Create a singleton dictionary (just one key-value pair)-    singletonMap :: k -> v -> m k v-    -- | Test whether the dictionary contains a given key-    member :: k -> m k v -> Bool--    keys = map fst . pairs-    elems = map snd . pairs--instance Eq k => DictLike AList k where-    insert k v (AList xs) = AList $ (k,v):xs-    delete k (AList xs) = AList $ filter ((/= k) . fst) xs-    update k f (AList xs) = AList [ (k, fromMaybe v $ f v) | (k, v) <- xs ]-    pairs = unAList-    fromPairs = AList-    singletonMap k v = AList [(k, v)]-    member k = not . null . filter (== k) . keys--instance Lookup [] Int where-    lookup i xs = case drop i xs of-        [] -> Nothing-        (x:_) -> Just x--instance Lookup Vector Int where-    lookup = flip (Vector.!?)--instance (Eq a) => SetLike (Vector a) a where-    conj = Vector.cons-    remove x = Vector.filter (/= x)-    elem = Vector.elem-    null = Vector.null-    items = Vector.toList-    fromItems = Vector.fromList-    singleton = Vector.singleton-    size = Vector.length--instance Filterable Vector where-    filter = Vector.filter--instance (Eq a) => SetLike [a] a where-    conj = (:)-    remove x = filter (/= x)-    elem = List.elem-    null = List.null-    items = id-    fromItems = id-    singleton = (:[])-    size = List.length--instance Filterable [] where-    filter = List.filter--instance (Eq v, Hashable v) => SetLike (HashSet v) v where-    conj = HashSet.insert-    remove = HashSet.delete-    elem = HashSet.member-    null = HashSet.null-    items = HashSet.toList-    fromItems = HashSet.fromList-    singleton = HashSet.singleton-    size = HashSet.size--instance Filterable HashSet where-    filter = HashSet.filter--instance (Eq v, Ord v) => SetLike (Set v) v where-    conj = Set.insert-    remove = Set.delete-    elem = Set.member-    null = Set.null-    items = Set.toList-    fromItems = Set.fromList-    singleton = Set.singleton-    size = Set.size--instance Filterable Set where-    filter = Set.filter--instance (Eq k, Hashable k) => Lookup (HashMap.HashMap k) k where-    lookup = HashMap.lookup--instance (Eq k, Hashable k) => DictLike HashMap.HashMap k where-    insert = HashMap.insert-    delete = HashMap.delete-    update = flip HashMap.update-    pairs = HashMap.toList-    fromPairs = HashMap.fromList-    keys = HashMap.keys-    elems = HashMap.elems-    singletonMap = HashMap.singleton-    member = HashMap.member--instance (Eq k, Hashable k) => SetLike (HashMap k v) (k, v) where-    conj = uncurry insert-    remove = delete . fst-    elem = member . fst-    null = HashMap.null-    items = pairs-    fromItems = fromPairs-    singleton = uncurry singletonMap--instance Filterable (HashMap k) where-    filter = HashMap.filter--instance (Eq k, Ord k) => Lookup (Map.Map k) k where-    lookup = Map.lookup--instance (Eq k, Ord k) => DictLike Map.Map k where-    insert = Map.insert-    delete = Map.delete-    update = flip Map.update-    pairs = Map.toList-    fromPairs = Map.fromList-    keys = Map.keys-    elems = Map.elems-    singletonMap = Map.singleton-    member = Map.member--instance (Eq k, Ord k) => SetLike (Map k v) (k, v) where-    conj = uncurry insert-    remove = delete . fst-    elem = member . fst-    null = Map.null-    items = pairs-    fromItems = fromPairs-    singleton = uncurry singletonMap--instance Filterable (Map k) where-    filter = Map.filter--overLHashMap :: (HashMap k v -> HashMap k v) -> LHashMap k v -> LHashMap k v-overLHashMap f = LHashMap . f . unLHashMap--instance (Eq k, Hashable k) => DictLike LHashMap k where-    insert k v = overLHashMap $ LHashMap.insert k v-    delete k = overLHashMap $ LHashMap.delete k-    update k f = overLHashMap $ LHashMap.update f k-    pairs = LHashMap.toList . unLHashMap-    fromPairs = LHashMap . LHashMap.fromList-    keys = LHashMap.keys . unLHashMap-    elems = LHashMap.elems . unLHashMap-    singletonMap k v = LHashMap (LHashMap.singleton k v)-    member k = LHashMap.member k . unLHashMap--instance (Eq k, Hashable k) => Lookup (LHashMap k) k where-    lookup k = LHashMap.lookup k . unLHashMap--instance (Eq k, Hashable k) => SetLike (LHashMap k v) (k, v) where-    conj = uncurry insert-    remove = delete . fst-    elem = member . fst-    null = LHashMap.null . unLHashMap+, Monoid (..)+, (<>)+, Dual (..)+, Endo (..)+, All (..)+, Any (..)+, Sum (..)+, Product (..)+, First (..)+, Alt (..)+, concat+, append+, empty++-- * Maybe+-- (from 'Data.Maybe')+, Maybe(Nothing, Just)+, maybe+, isJust+, isNothing+, fromJust+, fromMaybe+, listToMaybe+, maybeToList+, catMaybes+, mapMaybe++-- * Applicative+, (<|>)++-- * Monads+-- (from 'Control.Monad')+, Monad ((>>=), (>>), return, fail)+, MonadPlus(mzero, mplus)+, mapM+, mapM_+, forM+, forM_+, sequence+, sequence_+, (=<<)+, (>=>)+, (<=<)+, forever+, void+, join+, msum+, mfilter+, filterM+, mapAndUnzipM+, zipWithM+, zipWithM_+, foldM+, foldM_+, replicateM+, replicateM_+, guard+, when+, unless+, liftM+, liftM2+, liftM3+, liftM4+, liftM5+, ap+, (<$!>)++-- * Arrows+, Arrow (..)+, Kleisli (..)+, returnA+, (^>>)+, (>>^)+, (>>>)+, (<<<)+, (<<^)+, (^<<)+, ArrowZero (..)+, ArrowPlus (..)+, ArrowChoice (..)+, ArrowApply (..)+, ArrowMonad (..)+, leftApp+, ArrowLoop (..)+, left+, right+, (+++)+, (|||)++-- * Mutable Variables In IO+-- ** 'Data.IORef'+, IORef+, newIORef+, readIORef+, writeIORef+, modifyIORef+, modifyIORef'+, atomicModifyIORef+, atomicModifyIORef'+, atomicWriteIORef+, mkWeakIORef++-- ** 'Control.Concurrent.MVar'+, MVar+, newEmptyMVar+, newMVar+, takeMVar+, putMVar+, readMVar+, swapMVar+, tryTakeMVar+, tryPutMVar+, isEmptyMVar+, withMVar+, withMVarMasked+, modifyMVar_+, modifyMVar+, modifyMVarMasked_+, modifyMVarMasked+, tryReadMVar+, mkWeakMVar+, addMVarFinalizer++-- ** 'Control.Concurrent.Chan'+, Chan+, newChan+, writeChan+, readChan+, dupChan+, getChanContents+, writeList2Chan+++-- * Default+, Default (def)++-- * Lens+, (#)+, (#%%=)+, (#%%~)+, (#%=)+, (#%~)+, (#=)+, (#~)+, (%%=)+, (%%@=)+, (%%@~)+, (%%~)+, (%=)+, (%@=)+, (%@~)+, (%~)+, (&)+, (&&=)+, (&&~)+, (&~)+, (**=)+, (**~)+, (*=)+, (*~)+, (+=)+, (+~)+, (-=)+, (-~)+, (...)+, (.=)+, (.>)+, (.@=)+, (.@~)+, (.~)+, (//=)+, (//~)+, (<#%=)+, (<#%~)+, (<#=)+, (<#~)+, (<%=)+, (<%@=)+, (<%@~)+, (<%~)+, (<&&=)+, (<&&~)+, (<&>)+, (<**=)+, (<**~)+, (<*=)+, (<*~)+, (<+=)+, (<+~)+, (<-=)+, (<-~)+, (<.)+, (<.=)+, (<.>)+, (<.~)+, (<//=)+, (<//~)+, (<<%=)+, (<<%@=)+, (<<%@~)+, (<<%~)+, (<<&&=)+, (<<&&~)+, (<<**=)+, (<<**~)+, (<<*=)+, (<<*~)+, (<<+=)+, (<<+~)+, (<<-=)+, (<<-~)+, (<<.=)+, (<<.~)+, (<<//=)+, (<<//~)+, (<<<>=)+, (<<<>~)+, (<<>=)+, (<<>~)+, (<<^=)+, (<<^^=)+, (<<^^~)+, (<<^~)+, (<<||=)+, (<<||~)+, (<<~)+, (<>=)+, (<>~)+, (<?=)+, (<?~)+, (<^=)+, (<^^=)+, (<^^~)+, (<^~)+, (<|)+, (<||=)+, (<||~)+, (<~)+, (?=)+, (??)+, (?~)+, ALens (..)+, ALens' (..)+, APrism (..)+, APrism' (..)+, AReview (..)+, ASetter (..)+, ASetter' (..)+, ATraversal (..)+, ATraversal' (..)+, ATraversal1 (..)+, ATraversal1' (..)+, Accessing (..)+, AnEquality (..)+, AnEquality' (..)+, AnIndexedLens (..)+, AnIndexedLens' (..)+, AnIndexedSetter (..)+, AnIndexedSetter' (..)+, AnIndexedTraversal (..)+, AnIndexedTraversal' (..)+, AnIndexedTraversal1 (..)+, AnIndexedTraversal1' (..)+, AnIso (..)+, AnIso' (..)+, As (..)+, AsEmpty (..)+, Ixed (..)+, Bazaar (..)+, Bazaar' (..)+, Bazaar1 (..)+, Bazaar1 (..)+, Bazaar1' (..)+, Bifunctor (..)+, Profunctor (..)+, ClassyNamer+, Cons (..)+, Const (..)+, Const (..)+, Contains (..)+, Context (..)+, Context' (..)+, Contravariant (..)+, DefName+, Each (..)+, Equality (..)+, Equality' (..)+, Field1 (..)+, Field2 (..)+, Field3 (..)+, Field4 (..)+, Field5 (..)+, Field6 (..)+, Field7 (..)+, Field8 (..)+, Field9 (..)+, FieldNamer+, Fold (..)+, Fold1 (..)+, Foldable (..)+, Functor (..)+, GPlated (..)+, Getter (..)+, Getting (..)+, Identical (..)+, Identical (..)+, Identity (..)+, Index (..)+, IndexPreservingFold (..)+, IndexPreservingFold1 (..)+, IndexPreservingGetter (..)+, IndexPreservingLens (..)+, IndexPreservingLens' (..)+, IndexPreservingSetter (..)+, IndexPreservingSetter' (..)+, IndexPreservingTraversal (..)+, IndexPreservingTraversal' (..)+, IndexPreservingTraversal1 (..)+, IndexPreservingTraversal1' (..)+, Conjoined (..)+, Indexed (..)+, IndexedFold (..)+, IndexedFold1 (..)+, IndexedGetter (..)+, IndexedGetting (..)+, IndexedLens (..)+, IndexedLens' (..)+, IndexedLensLike (..)+, IndexedLensLike' (..)+, IndexedSetter (..)+, IndexedSetter' (..)+, IndexedTraversal  (..)+, IndexedTraversal'  (..)+, IndexedTraversal1  (..)+, IndexedTraversal1'  (..)+, Iso  (..)+, Iso'  (..)+, IxValue  (..)+, Ixed  (..)+, Leftmost  (..)+, Lens  (..)+, Lens'  (..)+, LensLike  (..)+, LensLike'  (..)+, LensRules+, Level  (..)+, Magma  (..)+, Magnified  (..)+, Optic  (..)+, Optic'  (..)+, Optical  (..)+, Optical'  (..)+, Over  (..)+, Over'  (..)+, Plated  (..)+, Prism  (..)+, Prism'  (..)+, Profunctor  (..)+, ReifiedFold  (..)+, ReifiedFold  (..)+, ReifiedGetter  (..)+, ReifiedGetter  (..)+, ReifiedIndexedFold  (..)+, ReifiedIndexedFold  (..)+, ReifiedIndexedGetter  (..)+, ReifiedIndexedGetter  (..)+, ReifiedIndexedLens  (..)+, ReifiedIndexedLens  (..)+, ReifiedIndexedLens'  (..)+, ReifiedIndexedSetter  (..)+, ReifiedIndexedSetter  (..)+, ReifiedIndexedSetter'  (..)+, ReifiedIndexedTraversal  (..)+, ReifiedIndexedTraversal  (..)+, ReifiedIndexedTraversal'  (..)+, ReifiedIso  (..)+, ReifiedIso  (..)+, ReifiedIso'  (..)+, ReifiedLens  (..)+, ReifiedLens  (..)+, ReifiedLens'  (..)+, ReifiedPrism  (..)+, ReifiedPrism  (..)+, ReifiedPrism'  (..)+, ReifiedSetter  (..)+, ReifiedSetter  (..)+, ReifiedSetter'  (..)+, ReifiedTraversal  (..)+, ReifiedTraversal  (..)+, ReifiedTraversal'  (..)+, Reversing  (..)+, Review  (..)+, Wrapped  (..)+, Rightmost  (..)+, Sequenced  (..)+, Sequenced  (..)+, Setter  (..)+, Setter'  (..)+, Setting  (..)+, Setting'  (..)+, Simple  (..)+, Snoc  (..)+, Strict+, Strict  (..)+, Swapped+, Bifunctor  (..)+, Traversal  (..)+, Traversal'  (..)+, Traversal1  (..)+, Traversal1'  (..)+, Ord  (..)+, Ord  (..)+, Traversed  (..)+, Traversed  (..)+, Traversing  (..)+, Traversing'  (..)+, Traversing1  (..)+, Traversing1'  (..)+, Unwrapped+, Wrapped+, Wrapped  (..)+, Zoomed  (..)+, (^#)+, (^.)+, (^..)+, (^=)+, (^?)+, (^?!)+, (^@.)+, (^@..)+, (^@?)+, (^@?!)+, (^^=)+, (^^~)+, (^~)+, _1'+, _2'+, _3'+, _4'+, _5'+, _6'+, _7'+, _8'+, _9'+, _Just+, _Left+, _Nothing+, _Right+, _Show+, _Unwrapped+, _Unwrapped'+, _Unwrapping+, _Unwrapping'+, _Void+, _Wrapped+, _Wrapping+, _Wrapping'+, _head+, _init+, _last+, _tail+, abbreviatedFields+, abbreviatedNamer+, ala+, alaf+, allOf+, alongside+, andOf+, anon+, anyOf+, argument+, asIndex+, aside+, assign+, assignA+, asumOf+, au+, auf+, backwards+, below+, beside+, bimapping+, both+, camelCaseFields+, camelCaseNamer+, censoring+, children+, choosing+, chosen+, classyRules+, classyRules_+, cloneIndexPreservingLens+, cloneIndexPreservingSetter+, cloneIndexPreservingTraversal+, cloneIndexPreservingTraversal1+, cloneIndexedLens+, cloneIndexedSetter+, cloneIndexedTraversal+, cloneIndexedTraversal1+, cloneIso+, cloneLens+, clonePrism+, cloneSetter+, cloneTraversal+, cloneTraversal1+, coerced+, composOpFold+, concatMapOf+, concatOf+, confusing+, cons+, contexts+, contextsOf+, contextsOn+, contextsOnOf+, contramapped+, contramapping+, cosmos+, cosmosOf+, cosmosOn+, cosmosOnOf+, createClass+, curried+, cycled+, declareClassy+, declareClassyFor+, declareFields+, declareLenses+, declareLensesFor+, declareLensesWith+, declarePrisms+, declareWrapped+, deep+, deepOf+, defaultFieldRules+, devoid+, dimapping+, dropping+, droppingWhile+, elemIndexOf+, elemIndicesOf+, elemOf+, element+, elementOf+, elements+, elementsOf+, enum+, failing+, failover+, filtered+, findIndexOf+, findIndicesOf+, findMOf+, findOf+, firstOf+, firsting+, flipped+, foldBy+, foldByOf+, foldMapBy+, foldMapByOf+, foldMapOf+, foldOf+, folded+, folded64+, folding+, foldl1Of+, foldl1Of'+, foldlMOf+, foldlOf+, foldlOf'+, foldr1Of+, foldr1Of'+, foldrMOf+, foldrOf+, foldrOf'+, foldring+, forMOf+, forMOf_+, forOf+, forOf_+, Control.Lens.from+, fromEq+, fusing+, generateLazyPatterns+, generateSignatures+, generateUpdateableOptics+, getting+, gplate+, has+, hasn't+, holes+, holesOf+, holesOn+, holesOnOf+, iall+, iallOf+, iany+, ianyOf+, iat+, icensoring+, icompose+, iconcatMap+, iconcatMapOf+, icontains+, idroppingWhile+, ifailover+, ifiltered+, ifind+, ifindMOf+, ifindOf+, ifoldMapBy+, ifoldMapByOf+, ifoldMapOf+, ifolding+, ifoldlM+, ifoldlMOf+, ifoldlOf+, ifoldlOf'+, ifoldrM+, ifoldrMOf+, ifoldrOf+, ifoldrOf'+, ifoldring+, ifor+, iforM+, iforMOf+, iforMOf_+, iforM_+, iforOf+, iforOf_+, ifor_+, ignored+, iix+, ilens+, ilevels+, ilike+, ilistening+, ilistenings+, iloci+, imagma+, imapAccumL+, imapAccumLOf+, imapAccumR+, imapAccumROf+, imapM+, imapMOf+, imapMOf_+, imapM_+, imapOf+, imodifying+, index+, indexing+, indexing64+, indices+, inone+, inoneOf+, inside+, involuted+, iover+, ipartsOf+, ipartsOf'+, ipassing+, iplens+, ipre+, ipreuse+, ipreuses+, ipreview+, ipreviews+, iset+, isets+, isn't+, iso+, itakingWhile+, iterated+, ito+, itoList+, itoListOf+, itraverseBy+, itraverseByOf+, itraverseOf+, itraverseOf_+, itraverse_+, iunsafePartsOf+, iunsafePartsOf'+, iuse+, iuses+, iview+, iviews+, ixAt+, lastOf+, Control.Lens.lazy+, lengthOf+, lens+, lensClass+, lensField+, lensRules+, lensRulesFor+, levels+, lifted+, like+, lined+, listening+, listenings+, lmapping+, loci+, locus+, lookingupNamer+, lookupOf+, magma+, makeClassy+, makeClassyFor+, makeClassyPrisms+, makeClassy_+, makeFields+, makeLenses+, makeLensesFor+, makeLensesWith+, makePrisms+, makeWrapped+, mapAccumLOf+, mapAccumROf+, mapEq+, mapMOf+, mapMOf_+, mapOf+, mapped+, mapping+, mappingNamer+, matching+, maximumByOf+, maximumOf+, minimumByOf+, minimumOf+, modifying+, msumOf+, nearly+, non+, non'+, none+, noneOf+, notElemOf+, notNullOf+, nullOf+, only+, op+, orOf+, outside+, over+, overA+, para+, paraOf+, parts+, partsOf+, partsOf'+, passing+, pre+, preuse+, preuses+, preview+, previews+, prism+, prism'+, productOf+, re+, reindexed+, repeated+, replicated+, retagged+, reuse+, reuses+, reversed+, review+, reviews+, rewrite+, rewriteM+, rewriteMOf+, rewriteMOn+, rewriteMOnOf+, rewriteOf+, rewriteOn+, rewriteOnOf+, rmapping+, runEq+, sans+, scanl1Of+, scanr1Of+, scribe+, seconding+, selfIndex+, sequenceAOf+, sequenceAOf_+, sequenceBy+, sequenceByOf+, sequenceOf+, sequenceOf_+, set+, set'+, sets+, setting+, simple+, simpleLenses+, simply+, singular+, snoc+, storing+, substEq+, sumOf+, taking+, takingWhile+, Control.Lens.to+, toListOf+, transform+, transformM+, transformMOf+, transformMOn+, transformMOnOf+, transformOf+, transformOn+, transformOnOf+, transposeOf+, traverseBy+, traverseByOf+, traverseOf+, traverseOf_+, traversed+, traversed1+, traversed64+, un+, uncons+, uncurried+, under+, underscoreFields+, underscoreNamer+, underscoreNoPrefixNamer+, unfolded+, united+, universe+, universeOf+, universeOn+, universeOnOf+, unsafePartsOf+, unsafePartsOf'+, unsafeSingular+, unsnoc+, unto+, use+, uses+, view+, views+, withIndex+, withIso+, withPrism+, without+, worded+, (|>)+, (||=)+, (||~)++-- * State monads+-- ** 'Control.Monad.Trans.Class'+, MonadTrans (..)++-- ** 'Control.Monad.IO.Class'+, MonadIO (..)++-- ** 'Control.Monad.State'+, MonadState(..)+, modify+, modify'+, gets++, State+, runState+, evalState+, execState+, mapState+, withState++, StateT(StateT)+, runStateT+, evalStateT+, execStateT+, mapStateT+, withStateT+++-- * Painless String Types+, s+, ToString (..)+, FromString+, IsString (..)++, Text+, LText+, ByteString+, LByteString++-- * Generalized String Operations++, trim+, ltrim+, rtrim+, words+, lines++, Char+, isControl+, isSpace+, isLower+, isUpper+, isAlpha+, isAlphaNum+, isPrint+, isDigit+, isOctDigit+, isHexDigit+, isLetter+, isMark+, isNumber+, isPunctuation+, isSymbol+, isSeparator+, isAscii+, isLatin1+, isAsciiUpper+, isAsciiLower+, GeneralCategory(..)+, generalCategory+, toUpper+, toLower+, toTitle+, digitToInt+, intToDigit+, ord+, chr+, showLitChar+, lexLitChar+, readLitChar++-- * String Case Conversions+, kebab, snake, pascal++-- * I/O+, stderr+, stdout+, stdin+, Handle++-- * Environment+-- 'System.Environment'+, getArgs+, getProgName+, getExecutablePath+, getEnv+, lookupEnv+, setEnv+, unsetEnv+, withArgs+, withProgName+, getEnvironment++-- * Generalized I/O+, StringIO (..)++-- * Printf+-- ** 'Text.Printf'+, printf+, hPrintf+, PrintfArg(..)+, FieldFormatter+, FieldFormat(..)+, FormatAdjustment(..)+, FormatSign(..)+, vFmt+, ModifierParser+, FormatParse(..)+, formatString+, formatChar+, formatInt+, formatInteger+, formatRealFloat+, errorBadFormat+, errorShortFormat+, errorMissingArgument+, errorBadArgument+, perror+, PrintfType+, HPrintfType+, IsChar(..)++-- * Filename And File System Manipulation+-- ** 'System.FilePath'+, (</>)+, FilePath+, addExtension+, addTrailingPathSeparator+, combine+, dropDrive+, dropExtension+, dropExtensions+, dropFileName+, dropTrailingPathSeparator+, equalFilePath+, extSeparator+, getSearchPath+, hasDrive+, hasExtension+, hasTrailingPathSeparator+, isAbsolute+, isDrive+, isExtSeparator+, isPathSeparator+, isRelative+, isSearchPathSeparator+, joinDrive+, joinPath+, makeRelative+, makeValid+, normalise+, pathSeparator+, pathSeparators+, replaceBaseName+, replaceDirectory+, replaceExtension+, replaceExtensions+, replaceFileName+, searchPathSeparator+, splitDirectories+, splitDrive+, splitExtension+, splitExtensions+, splitFileName+, splitPath+, splitSearchPath+, stripExtension+, takeBaseName+, takeDirectory+, takeDrive+, takeExtension+, takeExtensions+, takeFileName++-- ** module System.Directory+, Permissions (..)+, XdgDirectory (..)+, canonicalizePath+, copyFile+, copyFileWithMetadata+, copyPermissions+, createDirectory+, createDirectoryIfMissing+, doesDirectoryExist+, doesFileExist+, emptyPermissions+, findExecutable+, findExecutables+, findExecutablesInDirectories+, findFile+, findFileWith+, findFiles+, findFilesWith+, getAccessTime+, getAppUserDataDirectory+, getCurrentDirectory+, getDirectoryContents+, getHomeDirectory+, getModificationTime+, getPermissions+, getTemporaryDirectory+, getUserDocumentsDirectory+, getXdgDirectory+, isSymbolicLink+, listDirectory+, makeAbsolute+, makeRelativeToCurrentDirectory+, removeDirectory+, removeDirectoryRecursive+, removeFile+, renameDirectory+, renameFile+, setAccessTime+, setCurrentDirectory+, setModificationTime+, setOwnerExecutable+, setOwnerReadable+, setOwnerSearchable+, setOwnerWritable+, setPermissions+, withCurrentDirectory+, exeExtension++-- * Type Forcers+--+-- Useful for disambiguation+, asString+, asText+, asLText+, asByteString+, asLByteString+, asHashMap++-- * Container Types With Unified Interfaces++, Foldable(..)++-- ** Special biased folds+, foldrM+, foldlM++-- ** Folding actions+-- *** Applicative actions+, traverse_+, for_+, sequenceA_+, asum++-- *** Monadic actions+, mapM_+, forM_+, sequence_+, msum++-- ** Specialized folds+, concat+, concatMap+, and+, or+, any+, all+, maximumBy+, minimumBy++-- ** Searches+, notElem+, find++, AList (..)+, HashMap+, LHashMap+, HashSet+, Map+, Set+, Vector++, Hashable (..)+, Lookup (..)+, ListLike (..)+, DictLike (..)+, SetLike (..)+, Filterable (..)+, cull+, startsWith+, endsWith+, intercalate++-- * JSON+, ToJSON (..)+, FromJSON (..)+, Value+, object+, prettyJsonOptions+, derivePrettyJSON+, deriveJSON++, encodeJSON+, decodeJSON+, encodeJSONStrict+, decodeJSONStrict+, (~>)++-- * Base-64+, encodeBase64+, decodeBase64++-- * Concurrency And Exception Handling+, threadDelay+, forkIO+, bracket+, bracket_+, throw+, catch+, catches++-- * Generics+, Generic++-- * Functions+, chain+, id+, const+, (.)+, flip+, ($)+, (&)+, fix+, on++-- * Date and Time+, Day (..)+, TimeOfDay (..)+, UTCTime (..)+, LocalTime (..)+, TimeZone (..)+, ZonedTime (..)+, TimeLocale (..)+, DiffTime (..)+, NominalDiffTime (..)+, secondsToDiffTime+, picosecondsToDiffTime+, addUTCTime+, diffUTCTime+, getCurrentTime++, defaultTimeLocale++, toGregorian+, fromGregorian++, formatTime+)+where++import Prelude hiding ( putStr+                      , putStrLn+                      , readFile+                      , writeFile+                      , lookup+                      , getContents+                      , null+                      , elem+                      , concat+                      , filter+                      , take+                      , drop+                      , lines+                      , words+                      , length+                      )+import qualified Prelude+import System.FilePath hiding ( (<.>), isValid )+import System.Directory+import qualified System.IO as IO+import System.IO (stderr, stdout, stdin, Handle)+import Data.Maybe+import Control.Monad+import Control.Applicative hiding ( empty )+import Text.Printf+import Data.Monoid hiding ( (<>), Any, First )+import Data.Char+import Control.Arrow+import Data.Foldable hiding (null, elem, concat, length)+import System.Environment+import Control.Concurrent.MVar+import Control.Concurrent.Chan+import Data.IORef+import Control.Monad.State++import Text.Casing+import qualified Data.Text as Text+import qualified Data.Text.IO as Text+import qualified Data.Text.Lazy+import qualified Data.Text.Lazy as LText+import qualified Data.Text.Lazy.IO as LText+import qualified Data.ByteString as BS+import qualified Data.ByteString.Lazy as LBS+import qualified Data.HashMap.Strict as HashMap+import qualified Data.HashMap.Lazy as LHashMap+import qualified Data.HashSet as HashSet+import qualified Data.ByteString.Base64 as Base64+import qualified Data.Vector as Vector+import Data.Vector (Vector)+import qualified Data.Set as Set+import Data.Set (Set)+import qualified Data.Map as Map+import Data.Map (Map)+import Data.Hashable (Hashable (..))+import Text.StringConvert+import Data.Typeable+import GHC.Generics+import GHC.Exts hiding (toList, Any)+import Data.Data+import Data.Semigroup+import Control.DeepSeq+import qualified Data.List as List+import Control.Lens+import Control.Lens.TH (makeLenses)+import Data.Aeson (ToJSON (..), FromJSON (..), Value, object)+import Data.Aeson.TH (deriveJSON)+import qualified Data.Aeson as JSON+import qualified Data.Aeson.TH as JSON+import Data.Default+import Data.List (foldl')+import Control.Concurrent+import Control.Exception+import Data.Function++import Data.Time++import Language.Haskell.TH.Syntax (Name, Q, Dec)++type Text = Text.Text+type LText = LText.Text+type ByteString = BS.ByteString+type LByteString = LBS.ByteString++empty :: Monoid a => a+empty = mempty++append :: Monoid a => a -> a -> a+append = mappend++concat :: Monoid a => [a] -> a+concat = mconcat++lines :: (FromString a, ToString a) => a -> [a]+lines = map s . Prelude.lines . s++words :: (FromString a, ToString a) => a -> [a]+words = map s . Prelude.words . s++trim :: (FromString a, ToString a) => a -> a+trim = ltrim . rtrim++ltrim :: (FromString a, ToString a) => a -> a+ltrim = s . dropWhile isSpace . s++rtrim :: (FromString a, ToString a) => a -> a+rtrim = s . List.dropWhileEnd isSpace . s++{-#RULES "Text.trim" trim = Text.strip #-}+{-#RULES "LText.trim" trim = Data.Text.Lazy.strip #-}+{-#RULES "Text.ltrim" trim = Text.dropWhile isSpace #-}+{-#RULES "Text.rtrim" trim = Text.dropWhileEnd isSpace #-}+{-#RULES "LText.ltrim" trim = Data.Text.Lazy.dropWhile isSpace #-}+{-#RULES "LText.rtrim" trim = Data.Text.Lazy.dropWhileEnd isSpace #-}++type HashMap = HashMap.HashMap++-- | A lazy hash map. Because 'LHashMap.HashMap' is actually the exact+-- same type as 'HashMap.HashMap', we wrap it in a newtype so that+-- we can tie laziness into the type itself (similar to how it works+-- for 'Text' and 'ByteString').+newtype LHashMap k v = LHashMap { unLHashMap :: LHashMap.HashMap k v }+    deriving (Read, Show, Typeable, Generic, Functor, Foldable, Traversable, Eq, Data, Semigroup, Monoid, NFData, Hashable)++type HashSet = HashSet.HashSet++-- | Types that can be written to / read from file descriptors.+class StringIO a where+    putStr :: a -> IO ()+    putStrLn :: a -> IO ()+    hPutStr :: Handle -> a -> IO ()+    hPutStrLn :: Handle -> a -> IO ()+    readFile :: FilePath -> IO a+    writeFile :: FilePath -> a -> IO ()+    getContents :: IO a+    hGetContents :: Handle -> IO a+    putStrLn str = putStr str >> putStr "\n"+    hPutStrLn h str = hPutStr h str >> hPutStr h "\n"++instance StringIO String where+    putStr = IO.putStr+    putStrLn = IO.putStrLn+    hPutStr = IO.hPutStr+    hPutStrLn = IO.hPutStrLn+    readFile = IO.readFile+    writeFile = IO.writeFile+    getContents = IO.getContents+    hGetContents = IO.hGetContents++instance StringIO Text where+    putStr = Text.putStr+    putStrLn = Text.putStrLn+    hPutStr = Text.hPutStr+    hPutStrLn = Text.hPutStrLn+    readFile = Text.readFile+    writeFile = Text.writeFile+    getContents = Text.getContents+    hGetContents = Text.hGetContents++instance StringIO LText where+    putStr = LText.putStr+    putStrLn = LText.putStrLn+    hPutStr = LText.hPutStr+    hPutStrLn = LText.hPutStrLn+    readFile = LText.readFile+    writeFile = LText.writeFile+    getContents = LText.getContents+    hGetContents = LText.hGetContents++instance StringIO ByteString where+    putStr = BS.putStr+    hPutStr = BS.hPutStr+    readFile = BS.readFile+    writeFile = BS.writeFile+    getContents = BS.getContents+    hGetContents = BS.hGetContents++instance StringIO LByteString where+    putStr = LBS.putStr+    hPutStr = LBS.hPutStr+    readFile = LBS.readFile+    writeFile = LBS.writeFile+    getContents = LBS.getContents+    hGetContents = LBS.hGetContents++-- | Things that support keyed element lookup.+class Lookup m k | m -> k where+    lookup :: k -> m v -> Maybe v+    lookupDef :: v -> k -> m v -> v+    lookupDef d k = fromMaybe d . lookup k++newtype AList k v = AList { unAList :: [(k, v)] }+    deriving (Show, Read, Eq, Ord, Generic, Functor)++instance Eq k => Lookup (AList k) k where+    lookup k = Prelude.lookup k . unAList++class ListLike m a | m -> a where+    intersperse :: a -> m -> m+    take :: Int -> m -> m+    takeEnd :: Int -> m -> m+    drop :: Int -> m -> m+    dropEnd :: Int -> m -> m+    slice :: Int -> Int -> m -> m+    slice offset len = take len . drop offset+    listLength :: m -> Int+    takeEnd n x = drop (listLength x - n) x+    dropEnd n x = take (listLength x - n) x++instance ListLike [a] a where+    intersperse = List.intersperse+    take = List.take+    drop = List.drop+    listLength = List.length++instance ListLike (Vector a) a where+    intersperse e = Vector.fromList . List.intersperse e . Vector.toList+    take = Vector.take+    drop = Vector.drop+    slice = Vector.slice+    listLength = Vector.length++instance ListLike Text Char where+    intersperse = Text.intersperse+    take = Text.take . fromIntegral+    drop = Text.drop . fromIntegral+    listLength = fromIntegral . Text.length++instance ListLike LText Char where+    intersperse = LText.intersperse+    take = LText.take . fromIntegral+    drop = LText.drop . fromIntegral+    listLength = fromIntegral . LText.length++startsWith :: (Eq a, ListLike a e) => a -> a -> Bool+startsWith haystack needle =+    take (listLength needle) haystack == needle++endsWith :: (Eq a, ListLike a e) => a -> a -> Bool+endsWith haystack needle =+    takeEnd (listLength needle) haystack == needle++intercalate :: (Monoid a, Foldable m, ListLike (m a) a) => a -> m a -> a+intercalate s = mconcat . toList . intersperse s++-- | Things that behave like sets.+class SetLike m v | m -> v where+    -- | Conjoin: add an element to a set. For ordered sets, the+    -- end at which the new element is inserted is unspecified.+    conj :: v -> m -> m++    -- | Remove all occurrences of the element from the set.+    remove :: v -> m -> m++    -- | Test if the set is empty.+    nullSet :: m -> Bool++    -- | Convert the set to a list of elements. The ordering is unspecified.+    items :: m -> [v]++    -- | Create a set from a list of elements. Duplicate list elements+    -- may be skipped at the implementation's discretion.+    fromItems :: [v] -> m++    -- | Create a singleton (one-element) set.+    singleton :: v -> m++    -- | Get the number of elements in the set.+    size :: m -> Int++    size = List.length . items+    nullSet = List.null . items++-- | Things that can be filtered+class Filterable m where+    -- | Filter the set to retain only the elements that match the predicate.+    filter :: (v -> Bool) -> m v -> m v++cull :: Filterable m => (v -> Bool) -> m v -> m v+cull = filter . (not .)++-- | Things that behave like key-value dictionaries.+class DictLike m k where+    -- | Add or overwrite an element at a key.+    insert :: k -> v -> m k v -> m k v+    -- | Delete by key+    delete :: k -> m k v -> m k v+    -- | Modify an element at a key+    update :: k -> (v -> Maybe v) -> m k v -> m k v+    -- | Convert to an association list (list of key/value pairs)+    pairs :: m k v -> [(k, v)]+    -- | Convert from an association list (list of key/value pairs)+    fromPairs :: [(k, v)] -> m k v+    -- | Get the keys, discard the values+    keys :: m k v -> [k]+    -- | Get the values, discard the keys+    elems :: m k v -> [v]+    -- | Create a singleton dictionary (just one key-value pair)+    singletonMap :: k -> v -> m k v+    -- | Test whether the dictionary contains a given key+    member :: k -> m k v -> Bool++    keys = map fst . pairs+    elems = map snd . pairs++instance Eq k => DictLike AList k where+    insert k v (AList xs) = AList $ (k,v):xs+    delete k (AList xs) = AList $ filter ((/= k) . fst) xs+    update k f (AList xs) = AList [ (k, fromMaybe v $ f v) | (k, v) <- xs ]+    pairs = unAList+    fromPairs = AList+    singletonMap k v = AList [(k, v)]+    member k = not . nullSet . filter (== k) . keys++instance Lookup [] Int where+    lookup i xs = case drop i xs of+        [] -> Nothing+        (x:_) -> Just x++instance Lookup Vector Int where+    lookup = flip (Vector.!?)++instance (Eq a) => SetLike (Vector a) a where+    conj = Vector.cons+    remove x = Vector.filter (/= x)+    nullSet = Vector.null+    items = Vector.toList+    fromItems = Vector.fromList+    singleton = Vector.singleton+    size = Vector.length++instance Filterable Vector where+    filter = Vector.filter++instance (Eq a) => SetLike [a] a where+    conj = (:)+    remove x = filter (/= x)+    nullSet = List.null+    items = id+    fromItems = id+    singleton = (:[])+    size = List.length++instance Filterable [] where+    filter = List.filter++instance (Eq v, Hashable v) => SetLike (HashSet v) v where+    conj = HashSet.insert+    remove = HashSet.delete+    nullSet = HashSet.null+    items = HashSet.toList+    fromItems = HashSet.fromList+    singleton = HashSet.singleton+    size = HashSet.size++instance Filterable HashSet where+    filter = HashSet.filter++instance (Eq v, Ord v) => SetLike (Set v) v where+    conj = Set.insert+    remove = Set.delete+    nullSet = Set.null+    items = Set.toList+    fromItems = Set.fromList+    singleton = Set.singleton+    size = Set.size++instance Filterable Set where+    filter = Set.filter++instance (Eq k, Hashable k) => Lookup (HashMap.HashMap k) k where+    lookup = HashMap.lookup++instance (Eq k, Hashable k) => DictLike HashMap.HashMap k where+    insert = HashMap.insert+    delete = HashMap.delete+    update = flip HashMap.update+    pairs = HashMap.toList+    fromPairs = HashMap.fromList+    keys = HashMap.keys+    elems = HashMap.elems+    singletonMap = HashMap.singleton+    member = HashMap.member++instance (Eq k, Hashable k) => SetLike (HashMap k v) (k, v) where+    conj = uncurry insert+    remove = delete . fst+    nullSet = HashMap.null+    items = pairs+    fromItems = fromPairs+    singleton = uncurry singletonMap++instance Filterable (HashMap k) where+    filter = HashMap.filter++instance (Eq k, Ord k) => Lookup (Map.Map k) k where+    lookup = Map.lookup++instance (Eq k, Ord k) => DictLike Map.Map k where+    insert = Map.insert+    delete = Map.delete+    update = flip Map.update+    pairs = Map.toList+    fromPairs = Map.fromList+    keys = Map.keys+    elems = Map.elems+    singletonMap = Map.singleton+    member = Map.member++instance (Eq k, Ord k) => SetLike (Map k v) (k, v) where+    conj = uncurry insert+    remove = delete . fst+    nullSet = Map.null+    items = pairs+    fromItems = fromPairs+    singleton = uncurry singletonMap++instance Filterable (Map k) where+    filter = Map.filter++overLHashMap :: (HashMap k v -> HashMap k v) -> LHashMap k v -> LHashMap k v+overLHashMap f = LHashMap . f . unLHashMap++instance (Eq k, Hashable k) => DictLike LHashMap k where+    insert k v = overLHashMap $ LHashMap.insert k v+    delete k = overLHashMap $ LHashMap.delete k+    update k f = overLHashMap $ LHashMap.update f k+    pairs = LHashMap.toList . unLHashMap+    fromPairs = LHashMap . LHashMap.fromList+    keys = LHashMap.keys . unLHashMap+    elems = LHashMap.elems . unLHashMap+    singletonMap k v = LHashMap (LHashMap.singleton k v)+    member k = LHashMap.member k . unLHashMap++instance (Eq k, Hashable k) => Lookup (LHashMap k) k where+    lookup k = LHashMap.lookup k . unLHashMap++instance (Eq k, Hashable k) => SetLike (LHashMap k v) (k, v) where+    conj = uncurry insert+    remove = delete . fst+    nullSet = LHashMap.null . unLHashMap     items = pairs     fromItems = fromPairs     singleton = uncurry singletonMap