Hoogle Search

Within LTS Haskell 24.40 (ghc-9.10.3)

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

  1. mapM :: (Traversable s t k l, k ~ l, s ~ t, Applicative m k k, Object k a, Object k (t a), ObjectPair k b (t b), ObjectPair k (m b) (m (t b)), TraversalObject k t b) => k a (m b) -> k (t a) (m (t b))

    constrained-categories Control.Monad.Constrained

    traverse, restricted to endofunctors. May be more efficient to implement.

  2. mapM_ :: forall t k o f a b u . (Foldable t k k, WellPointed k, Monoidal f k k, u ~ UnitObject k, ObjectPair k (f u) (t a), ObjectPair k (f u) a, ObjectPair k u (t a), ObjectPair k (t a) u, ObjectPair k (f u) (f u), ObjectPair k u u, ObjectPair k b u, Object k (f b)) => k a (f b) -> k (t a) (f u)

    constrained-categories Control.Monad.Constrained

    The distinction between mapM_ and traverse_ doesn't really make sense on grounds of Monoidal / Applicative vs Monad, but it has in fact some benefits to restrict this to endofunctors, to make the constraint list at least somewhat shorter.

  3. mapM_ :: forall t k o f a b u . (Foldable t k k, WellPointed k, Monoidal f k k, u ~ UnitObject k, ObjectPair k (f u) (t a), ObjectPair k (f u) a, ObjectPair k u (t a), ObjectPair k (t a) u, ObjectPair k (f u) (f u), ObjectPair k u u, ObjectPair k b u, Object k (f b)) => k a (f b) -> k (t a) (f u)

    constrained-categories Data.Foldable.Constrained

    The distinction between mapM_ and traverse_ doesn't really make sense on grounds of Monoidal / Applicative vs Monad, but it has in fact some benefits to restrict this to endofunctors, to make the constraint list at least somewhat shorter.

  4. mapM :: (Traversable s t k l, k ~ l, s ~ t, Applicative m k k, Object k a, Object k (t a), ObjectPair k b (t b), ObjectPair k (m b) (m (t b)), TraversalObject k t b) => k a (m b) -> k (t a) (m (t b))

    constrained-categories Data.Traversable.Constrained

    traverse, restricted to endofunctors. May be more efficient to implement.

  5. mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)

    copilot-language Copilot.Language.Prelude

    Map each element of a structure to a monadic action, evaluate these actions from left to right, and collect the results. For a version that ignores the results see mapM_.

    Examples

    mapM is literally a traverse with a type signature restricted to Monad. Its implementation may be more efficient due to additional power of Monad.

  6. mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()

    copilot-language Copilot.Language.Prelude

    Map each element of a structure to a monadic action, evaluate these actions from left to right, and ignore the results. For a version that doesn't ignore the results see mapM. mapM_ is just like traverse_, but specialised to monadic actions.

  7. mappend :: Monoid a => a -> a -> a

    copilot-language Copilot.Language.Prelude

    An associative operation NOTE: This method is redundant and has the default implementation mappend = (<>) since base-4.11.0.0. Should it be implemented manually, since mappend is a synonym for (<>), it is expected that the two functions are defined the same way. In a future GHC release mappend will be removed from Monoid.

  8. mapCursorWidget :: ([(k, v)] -> KeyValueCursor kc vc k v -> [(k, v)] -> Widget n) -> MapCursor kc vc k v -> Widget n

    cursor-brick Cursor.Brick.Map

    No documentation available.

  9. mapCursorWidgetM :: ([(k, v)] -> KeyValueCursor kc vc k v -> [(k, v)] -> m (Widget n)) -> MapCursor kc vc k v -> m (Widget n)

    cursor-brick Cursor.Brick.Map

    No documentation available.

  10. mapDiff :: Shift r => ADiff r -> Block r -> Maybe (Block r)

    diff-loc DiffLoc.Diff

    Translate a span in the source of a diff to a span in its target. Nothing if the span overlaps with a replacement. For exaple, given the following ADiff (or Replace) from "aAacCc" to "aAabbbcCc":

    source aAa   cCc
    - 
    +    bbb
    target aAabbbcCc
    
    >>> r0 = Replace 3 (offset 0) (offset 3) :: Replace N
    
    >>> d0 = addDiff r0 emptyDiff
    
    The span of "A" remains unchanged.
    >>> mapDiff d0 (1 :.. offset 1)
    Just (1 :.. offset 1)
    
    >>> shiftBlock r0 (1 :.. offset 1)
    Just (1 :.. offset 1)
    
    >>> comapDiff d0 (1 :.. offset 1)
    Just (1 :.. offset 1)
    
    >>> coshiftBlock r0 (1 :.. offset 1)
    Just (1 :.. offset 1)
    
    The span of "C" is shifted by 3 characters.
    >>> mapDiff d0 (4 :.. offset 1)
    Just (7 :.. offset 1)
    
    >>> shiftBlock r0 (4 :.. offset 1)
    Just (7 :.. offset 1)
    
    >>> comapDiff d0 (7 :.. offset 1)
    Just (4 :.. offset 1)
    
    >>> coshiftBlock r0 (7 :.. offset 1)
    Just (4 :.. offset 1)
    
    The span of "ac" overlaps with the replacement, so the mapping is undefined.
    >>> mapDiff d0 (2 :.. offset 2)
    Nothing
    
    >>> shiftBlock r0 (2 :.. offset 2)
    Nothing
    
    >>> comapDiff d0 (2 :.. offset 5)
    Nothing
    
    >>> coshiftBlock r0 (2 :.. offset 5)
    Nothing
    

    Properties

    \(FSN d s) -> not (isZeroLength s) ==> partialSemiInverse (mapDiff d) (comapDiff d) s
    
    \(FSN d s) -> not (isZeroLength s) ==> partialSemiInverse (comapDiff d) (mapDiff d) s
    
    where partialSemiInverse f g x is the property
    if   f x == Just y   -- for some y
    then g y == Just x
    

Page 380 of many | Previous | Next