Hoogle Search

Within LTS Haskell 24.51 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. gmapM :: (Data a, Monad m) => (forall d . Data d => d -> m d) -> a -> m a

    base Data.Data

    A generic monadic transformation that maps over the immediate subterms The default definition instantiates the type constructor c in the type of gfoldl to the monad datatype constructor, defining injection and projection using return and >>=.

  2. gmapMo :: (Data a, MonadPlus m) => (forall d . Data d => d -> m d) -> a -> m a

    base Data.Data

    Transformation of one immediate subterm with success

  3. gmapMp :: (Data a, MonadPlus m) => (forall d . Data d => d -> m d) -> a -> m a

    base Data.Data

    Transformation of at least one immediate subterm does not fail

  4. gmapQ :: Data a => (forall d . Data d => d -> u) -> a -> [u]

    base Data.Data

    A generic query that processes the immediate subterms and returns a list of results. The list is given in the same order as originally specified in the declaration of the data constructors.

  5. gmapQi :: Data a => Int -> (forall d . Data d => d -> u) -> a -> u

    base Data.Data

    A generic query that processes one child by index (zero-based)

  6. gmapQl :: Data a => (r -> r' -> r) -> r -> (forall d . Data d => d -> r') -> a -> r

    base Data.Data

    A generic query with a left-associative binary operator

  7. gmapQr :: forall r r' . Data a => (r' -> r -> r) -> r -> (forall d . Data d => d -> r') -> a -> r

    base Data.Data

    A generic query with a right-associative binary operator

  8. gmapT :: Data a => (forall b . Data b => b -> b) -> a -> a

    base Data.Data

    A generic transformation that maps over the immediate subterms The default definition instantiates the type constructor c in the type of gfoldl to an identity datatype constructor, using the isomorphism pair as injection and projection.

  9. concatMap :: Foldable t => (a -> [b]) -> t a -> [b]

    base Data.Foldable

    Map a function over all the elements of a container and concatenate the resulting lists.

    Examples

    Basic usage:
    >>> concatMap (take 3) [[1..], [10..], [100..], [1000..]]
    [1,2,3,10,11,12,100,101,102,1000,1001,1002]
    
    >>> concatMap (take 3) (Just [1..])
    [1,2,3]
    

  10. foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m

    base Data.Foldable

    Map each element of the structure into a monoid, and combine the results with (<>). This fold is right-associative and lazy in the accumulator. For strict left-associative folds consider foldMap' instead.

    Examples

    Basic usage:
    >>> foldMap Sum [1, 3, 5]
    Sum {getSum = 9}
    
    >>> foldMap Product [1, 3, 5]
    Product {getProduct = 15}
    
    >>> foldMap (replicate 3) [1, 2, 3]
    [1,1,1,2,2,2,3,3,3]
    
    When a Monoid's (<>) is lazy in its second argument, foldMap can return a result even from an unbounded structure. For example, lazy accumulation enables Data.ByteString.Builder to efficiently serialise large data structures and produce the output incrementally:
    >>> import qualified Data.ByteString.Lazy as L
    
    >>> import qualified Data.ByteString.Builder as B
    
    >>> let bld :: Int -> B.Builder; bld i = B.intDec i <> B.word8 0x20
    
    >>> let lbs = B.toLazyByteString $ foldMap bld [0..]
    
    >>> L.take 64 lbs
    "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24"
    

Page 400 of many | Previous | Next