diff --git a/manuscript/book.org b/manuscript/book.org index 660c6d2a..087d592a 100644 --- a/manuscript/book.org +++ b/manuscript/book.org @@ -3052,6 +3052,8 @@ If you wish to check the source code for the ops, look in the #+BEGIN_SRC dot :file images/scalaz-semigroup.png :exports results digraph G { rankdir = BT; + node [fontname=Hack]; + Semigroup Monoid -> Semigroup Band -> Semigroup @@ -3245,10 +3247,58 @@ users can make use of the guarantee for performance optimisation. **** Mappable Things -[[file:/images/cats-mappable.png]] +We're focussing on things that can be "mapped over" in some sense, +shaded in this diagram: -This is only a partial view of the full typeclass hierarchy. We're -focussing on things that can be "mapped over" in some sense. +#+BEGIN_SRC dot :file images/scalaz-mappable.png :exports results +digraph G { + rankdir = BT; + node [fontname=Hack]; + + subgraph mappable { + Functor + Foldable + Foldable1 + Traverse + Traverse1 + Foldable1 -> Foldable + Traverse -> Functor + Traverse -> Foldable + Traverse1 -> Traverse + Traverse1 -> Foldable1 + } + + subgraph { + node [fontcolor=lightgrey,color=lightgrey]; + edge [color=lightgrey]; + + Functor -> InvariantFunctor + Apply -> Functor + Applicative -> Apply + Align -> Functor + Bind -> Apply + Monad -> Applicative + Monad -> Bind + + Contravariant -> InvariantFunctor + Divide -> Contravariant + Divisible -> Divide + Cobind -> Functor + Comonad -> Cobind + + PlusEmpty -> Plus + IsEmpty -> PlusEmpty + + ApplicativePlus -> Applicative + ApplicativePlus -> PlusEmpty + MonadPlus -> Monad + MonadPlus -> ApplicativePlus + } +} +#+END_SRC + +#+RESULTS: +[[file:images/scalaz-mappable.png]] ***** Functor @@ -3339,14 +3389,7 @@ Fold is for data structures that can be walked to produce a summary value. It is a one-trait army that can provide much of what you'd expect to see in a Collections API. -***** TODO Traversable -***** TODO Reducible -***** TODO Esoteric - -- FunctorFilter -- TraverseFilter -- CoflatMap -- Comonad +***** TODO Traverse **** Variance diff --git a/manuscript/images/scalaz-mappable.png b/manuscript/images/scalaz-mappable.png new file mode 100644 index 00000000..2426f421 Binary files /dev/null and b/manuscript/images/scalaz-mappable.png differ diff --git a/manuscript/images/scalaz-semigroup.png b/manuscript/images/scalaz-semigroup.png index 0659b4c0..9bb766e9 100644 Binary files a/manuscript/images/scalaz-semigroup.png and b/manuscript/images/scalaz-semigroup.png differ diff --git a/scalaz.dot b/scalaz.dot index 95d52f04..d2593af0 100644 --- a/scalaz.dot +++ b/scalaz.dot @@ -8,6 +8,7 @@ digraph G { Semigroup Monoid -> Semigroup Band -> Semigroup + Equal Show Order -> Equal