Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Eitan Chatav authored and Eitan Chatav committed Nov 2, 2019
1 parent e777a4b commit a8e9fb2
Showing 1 changed file with 1 addition and 31 deletions.
32 changes: 1 addition & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1 @@
# free-categories

Consider the category of Haskell "quivers" with

* objects are types of higher kind
* `p :: k -> k -> Type`
* morphisms are terms of `RankNType`,
* `forall x y. p x y -> q x y`
* identity is `id`
* composition is `.`

Now, consider the subcategory of Haskell `Category`s with

* constrained objects `Category c => c`
* morphisms act functorially
* `t :: (Category c, Category d) => c x y -> d x y`
* `t id = id`
* `t (g . f) = t g . t f`

The [free category functor](https://ncatlab.org/nlab/show/free+category)
from quivers to `Category`s may be defined up to isomorphism as

* the functor `Path` of type-aligned lists

* the functor `FoldPath` of categorical folds

* abstractly as `CFree path => path`, the class of
left adjoints to the functor which
forgets the constraint on `Category c => c`

* or as any isomorphic data structure
The free category on a quiver.

0 comments on commit a8e9fb2

Please sign in to comment.