groupoids 3.0 → 3.0.1
raw patch · 12 files changed
+119/−40 lines, 12 filesdep ~basedep ~semigroupoidsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, semigroupoids
API changes (from Hackage documentation)
Files
- .ghci +1/−0
- .gitignore +13/−0
- .travis.yml +7/−0
- .vim.custom +31/−0
- CHANGELOG.markdown +5/−0
- Data/Groupoid.hs +0/−13
- Data/Isomorphism.hs +0/−20
- LICENSE +1/−1
- README.markdown +15/−0
- groupoids.cabal +13/−6
- src/Data/Groupoid.hs +13/−0
- src/Data/Isomorphism.hs +20/−0
+ .ghci view
@@ -0,0 +1,1 @@+:set -isrc -idist/build/autogen -optP-include -optPdist/build/autogen/cabal_macros.h
+ .gitignore view
@@ -0,0 +1,13 @@+dist+docs+wiki+TAGS+tags+wip+.DS_Store+.*.swp+.*.swo+*.o+*.hi+*~+*#
.travis.yml view
@@ -1,1 +1,8 @@ language: haskell+notifications:+ irc:+ channels:+ - "irc.freenode.org#haskell-lens"+ skip_join: true+ template:+ - "\x0313semigroups\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
+ .vim.custom view
@@ -0,0 +1,31 @@+" Add the following to your .vimrc to automatically load this on startup++" if filereadable(".vim.custom")+" so .vim.custom+" endif++function StripTrailingWhitespace()+ let myline=line(".")+ let mycolumn = col(".")+ silent %s/ *$//+ call cursor(myline, mycolumn)+endfunction++" enable syntax highlighting+syntax on++" search for the tags file anywhere between here and /+set tags=TAGS;/++" highlight tabs and trailing spaces+set listchars=tab:‗‗,trail:‗+set list++" f2 runs hasktags+map <F2> :exec ":!hasktags -x -c --ignore src"<CR><CR>++" strip trailing whitespace before saving+" au BufWritePre *.hs,*.markdown silent! cal StripTrailingWhitespace()++" rebuild hasktags after saving+au BufWritePost *.hs silent! :exec ":!hasktags -x -c --ignore src"
+ CHANGELOG.markdown view
@@ -0,0 +1,5 @@+3.0.1+-----+* Updated build system+* Removed my personal intra-package dependency upper bounds+* Added `README` and `CHANGELOG`
− Data/Groupoid.hs
@@ -1,13 +0,0 @@-module Data.Groupoid- ( Groupoid(..)- ) where--import Data.Semigroupoid-import Data.Semigroupoid.Dual---- | semigroupoid with inverses. This technically should be a category with inverses, except we need to use Ob to define the valid objects for the category-class Semigroupoid k => Groupoid k where- inv :: k a b -> k b a--instance Groupoid k => Groupoid (Dual k) where- inv (Dual k) = Dual (inv k)
− Data/Isomorphism.hs
@@ -1,20 +0,0 @@-module Data.Isomorphism- ( Iso(..)- ) where--import Data.Semigroupoid-import Data.Groupoid-import Control.Category-import Prelude ()--data Iso k a b = Iso { embed :: k a b, project :: k b a }--instance Semigroupoid k => Semigroupoid (Iso k) where- Iso f g `o` Iso h i = Iso (f `o` h) (i `o` g)--instance Semigroupoid k => Groupoid (Iso k) where- inv (Iso f g) = Iso g f--instance Category k => Category (Iso k) where- Iso f g . Iso h i = Iso (f . h) (i . g)- id = Iso id id
LICENSE view
@@ -1,4 +1,4 @@-Copyright 2011 Edward Kmett+Copyright 2011-2013 Edward Kmett All rights reserved.
+ README.markdown view
@@ -0,0 +1,15 @@+groupoids+==========++[](http://travis-ci.org/ekmett/groupoids)++A groupoid is a category where every arrow has an inverse. This package provides them for Haskell.++Contact Information+-------------------++Contributions and bug reports are welcome!++Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.++-Edward Kmett
groupoids.cabal view
@@ -1,6 +1,6 @@ name: groupoids category: Control, Categories-version: 3.0+version: 3.0.1 license: BSD3 cabal-version: >= 1.6 license-file: LICENSE@@ -9,12 +9,18 @@ stability: experimental homepage: http://github.com/ekmett/groupoids/ bug-reports: http://github.com/ekmett/groupoids/issues-copyright: Copyright (C) 2011 Edward A. Kmett+copyright: Copyright (C) 2011-2013 Edward A. Kmett synopsis: Haskell 98 Groupoids description: Haskell 98 Groupoids build-type: Simple -extra-source-files: .travis.yml+extra-source-files:+ .ghci+ .gitignore+ .vim.custom+ .travis.yml+ README.markdown+ CHANGELOG.markdown source-repository head type: git@@ -22,11 +28,12 @@ library build-depends:- base >= 4 && < 5,- semigroupoids >= 3.0 && <= 3.1+ base >= 4 && < 5,+ semigroupoids >= 3 exposed-modules: Data.Groupoid Data.Isomorphism - ghc-options: -Wall+ ghc-options: -Wall+ hs-source-dirs: src
+ src/Data/Groupoid.hs view
@@ -0,0 +1,13 @@+module Data.Groupoid+ ( Groupoid(..)+ ) where++import Data.Semigroupoid+import Data.Semigroupoid.Dual++-- | semigroupoid with inverses. This technically should be a category with inverses, except we need to use Ob to define the valid objects for the category+class Semigroupoid k => Groupoid k where+ inv :: k a b -> k b a++instance Groupoid k => Groupoid (Dual k) where+ inv (Dual k) = Dual (inv k)
+ src/Data/Isomorphism.hs view
@@ -0,0 +1,20 @@+module Data.Isomorphism+ ( Iso(..)+ ) where++import Data.Semigroupoid+import Data.Groupoid+import Control.Category+import Prelude ()++data Iso k a b = Iso { embed :: k a b, project :: k b a }++instance Semigroupoid k => Semigroupoid (Iso k) where+ Iso f g `o` Iso h i = Iso (f `o` h) (i `o` g)++instance Semigroupoid k => Groupoid (Iso k) where+ inv (Iso f g) = Iso g f++instance Category k => Category (Iso k) where+ Iso f g . Iso h i = Iso (f . h) (i . g)+ id = Iso id id