packages feed

representable-profunctors (empty) → 0.1

raw patch · 5 files changed

+127/−0 lines, 5 filesdep +basedep +comonaddep +profunctor-extrassetup-changed

Dependencies added: base, comonad, profunctor-extras, profunctors, semigroupoids, transformers

Files

+ Data/Profunctor/Corepresentable.hs view
@@ -0,0 +1,29 @@++{-# LANGUAGE TypeFamilies, FlexibleContexts, UndecidableInstances #-}+module Data.Profunctor.Corepresentable +  ( CorepresentableProfunctor(..) +  ) where++import Data.Profunctor+import Control.Arrow+import Data.Functor.Identity++class Functor (Corep k) => CorepresentableProfunctor k where+  type Corep k :: * -> *+  cotabulatePro :: (d -> Corep k c) -> k d c+  coindexPro :: k d c -> d -> Corep k c +  +instance CorepresentableProfunctor (->) where+  type Corep (->) = Identity+  cotabulatePro f = runIdentity . f+  coindexPro f = Identity . f ++instance Functor m => CorepresentableProfunctor (Kleisli m) where+  type Corep (Kleisli m) = m+  cotabulatePro = Kleisli+  coindexPro = runKleisli ++instance Functor f => CorepresentableProfunctor (UpStar f) where+  type Corep (UpStar f) = f+  cotabulatePro = UpStar+  coindexPro = runUpStar
+ Data/Profunctor/Representable.hs view
@@ -0,0 +1,28 @@+{-# LANGUAGE TypeFamilies, FlexibleContexts, UndecidableInstances #-}+module Data.Profunctor.Representable +  ( RepresentableProfunctor(..) +  ) where++import Data.Profunctor+import Control.Comonad+import Data.Functor.Identity++class Functor (Rep k) => RepresentableProfunctor k where+  type Rep k :: * -> *+  tabulatePro :: (Rep k d -> c) -> k d c+  indexPro :: k d c -> Rep k d -> c +  +instance RepresentableProfunctor (->) where+  type Rep (->) = Identity+  tabulatePro f = f . Identity+  indexPro f (Identity d) = f d++instance Functor w => RepresentableProfunctor (Cokleisli w) where+  type Rep (Cokleisli w) = w +  tabulatePro = Cokleisli+  indexPro = runCokleisli ++instance Functor f => RepresentableProfunctor (DownStar f) where+  type Rep (DownStar f) = f+  tabulatePro = DownStar+  indexPro = runDownStar
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright 2011 Edward Kmett++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions+are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.++2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.++3. Neither the name of the author nor the names of his contributors+   may be used to endorse or promote products derived from this software+   without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.
+ Setup.lhs view
@@ -0,0 +1,7 @@+#!/usr/bin/runhaskell+> module Main (main) where++> import Distribution.Simple++> main :: IO ()+> main = defaultMain
+ representable-profunctors.cabal view
@@ -0,0 +1,33 @@+name:          representable-profunctors+category:      Control, Categories+version:       0.1+license:       BSD3+cabal-version: >= 1.6+license-file:  LICENSE+author:        Edward A. Kmett+maintainer:    Edward A. Kmett <ekmett@gmail.com>+stability:     experimental+homepage:      git://github.com/ekmett/representable-profunctors/+copyright:     Copyright (C) 2011 Edward A. Kmett+synopsis:      Representable profunctors+description:   Representable profunctors+build-type:    Simple++source-repository head+  type: git+  location: git://github.com/ekmett/representable-profunctors.git++library+  build-depends: +    base >= 4 && < 5,+    semigroupoids >= 1.2.2 && <= 1.3,+    comonad >= 1.1 && < 1.2,+    profunctors >= 0.1.1 && < 0.2,+    profunctor-extras >= 0.1.1 && < 0.2,+    transformers >= 0.2.2.0 && < 0.3++  exposed-modules:+    Data.Profunctor.Representable+    Data.Profunctor.Corepresentable++  ghc-options:      -Wall