Data.Bifunctor.Clown

bifunctors-5.3: Bifunctors

Copyright | (C) 2008-2016 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | provisional
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Data.Bifunctor.Clown

Description

From the Functional Pearl "Clowns to the Left of me, Jokers to the Right: Dissecting Data Structures" by Conor McBride.

Synopsis

- newtype Clown f a b = Clown {
  - runClown :: f a
  }

# Documentation

newtype Clown f a b

Make a `Functor` over the first argument of a `Bifunctor`.

Mnemonic: Clowns to the left (parameter of the Bifunctor), jokers to the right.

Constructors

Clown |
Fields runClown :: f a

Instances

Functor f => Bifunctor (Clown * * f) |
Foldable f => Bifoldable (Clown * * f) |
Traversable f => Bitraversable (Clown * * f) |
Applicative f => Biapplicative (Clown * * f) |
Functor (Clown * k f a) |
Foldable (Clown * k f a) |
Traversable (Clown * k f a) |
Generic1 (Clown * k f a) |
Eq (f a) => Eq (Clown k k f a b) |
Ord (f a) => Ord (Clown k k f a b) |
Read (f a) => Read (Clown k k f a b) |
Show (f a) => Show (Clown k k f a b) |
Generic (Clown k k f a b) |
type Rep1 (Clown k k1 f a) |
type Rep (Clown k k1 f a b) |