Hoogle Search

Within LTS Haskell 24.37 (ghc-9.10.3)

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

  1. class ProfunctorFunctor t => ProfunctorComonad (t :: Type -> Type -> Type -> Type -> Type -> Type)

    profunctors Data.Profunctor.Monad

    Laws:

    proextract . promap f ≡ f . proextract
    proextract . produplicateid
    promap proextract . produplicateid
    produplicate . produplicatepromap produplicate . produplicate
    

  2. class ProfunctorFunctor (t :: Type -> Type -> Type -> k -> k1 -> Type)

    profunctors Data.Profunctor.Monad

    ProfunctorFunctor has a polymorphic kind since 5.6.

  3. class ProfunctorFunctor t => ProfunctorMonad (t :: Type -> Type -> Type -> Type -> Type -> Type)

    profunctors Data.Profunctor.Monad

    Laws:

    promap f . proreturnproreturn . f
    projoin . proreturnid
    projoin . promap proreturnid
    projoin . projoinprojoin . promap projoin
    

  4. data Prep (p :: Type -> k -> Type) (a :: k)

    profunctors Data.Profunctor.Rep

    Prep -| Star :: [Hask, Hask] -> Prof
    
    This gives rise to a monad in Prof, (Star.Prep), and a comonad in [Hask,Hask] (Prep.Star) Prep has a polymorphic kind since 5.6.

  5. data Pastro (p :: Type -> Type -> Type) a b

    profunctors Data.Profunctor.Strong

    Pastro -| Tambara

    Pastro p ~ exists z. Costar ((,)z) Procompose p Procompose Star ((,)z)
    
    Pastro freely makes any Profunctor Strong.

  6. Pastro :: forall y z b (p :: Type -> Type -> Type) x a . ((y, z) -> b) -> p x y -> (a -> (x, z)) -> Pastro p a b

    profunctors Data.Profunctor.Strong

    No documentation available.

  7. class Profunctor (p :: Type -> Type -> Type)

    profunctors Data.Profunctor.Types

    Formally, the class Profunctor represents a profunctor from Hask -> Hask. Intuitively it is a bifunctor where the first argument is contravariant and the second argument is covariant. You can define a Profunctor by either defining dimap or by defining both lmap and rmap. If you supply dimap, you should ensure that:

    dimap id idid
    
    If you supply lmap and rmap, ensure:
    lmap idid
    rmap idid
    
    If you supply both, you should also ensure:
    dimap f g ≡ lmap f . rmap g
    
    These ensure by parametricity:
    dimap (f . g) (h . i) ≡ dimap g h . dimap f i
    lmap (f . g) ≡ lmap g . lmap f
    rmap (f . g) ≡ rmap f . rmap g
    

  8. class Profunctor (p :: Type -> Type -> Type)

    profunctors Data.Profunctor.Unsafe

    Formally, the class Profunctor represents a profunctor from Hask -> Hask. Intuitively it is a bifunctor where the first argument is contravariant and the second argument is covariant. You can define a Profunctor by either defining dimap or by defining both lmap and rmap. If you supply dimap, you should ensure that:

    dimap id idid
    
    If you supply lmap and rmap, ensure:
    lmap idid
    rmap idid
    
    If you supply both, you should also ensure:
    dimap f g ≡ lmap f . rmap g
    
    These ensure by parametricity:
    dimap (f . g) (h . i) ≡ dimap g h . dimap f i
    lmap (f . g) ≡ lmap g . lmap f
    rmap (f . g) ≡ rmap f . rmap g
    

  9. newtype Poke

    blaze-builder Blaze.ByteString.Builder.Internal.Write

    Changing a sequence of bytes starting from the given pointer. Pokes are the most primitive buffer manipulation. In most cases, you don't use the explicitly but as part of a Write, which also tells how many bytes will be changed at most.

  10. Poke :: (Ptr Word8 -> IO (Ptr Word8)) -> Poke

    blaze-builder Blaze.ByteString.Builder.Internal.Write

    No documentation available.

Page 71 of many | Previous | Next