1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
digraph {
node[shape=box];
functor [label="Functor"];
foldable [label="Foldable"];
traversable [label="Traversable"];
apply [label="Apply", penwidth=2.0];
bind [label="Bind", penwidth=2.0];
applicative [label="Applicative"];
alt [label="Alt", penwidth=2.0];
plus [label="Plus", penwidth=2.0];
alternative [label="Alternative"];
monad [label="Monad"];
monad_plus [label="MonadPlus"];
foldable1 [label="Foldable1", penwidth=2.0];
traversable1 [label="Traversable1", penwidth=2.0];
bifunctor [label="Bifunctor"];
biapply [label="Biapply", penwidth=2.0];
contravariant [label="Contravariant"];
divise [label="Divise", penwidth=2.0];
decide [label="Decide", penwidth=2.0];
divisible [label="Divisible"];
decidable [label="Decidable"];
conclude [label="Conclude", penwidth=2.0];
semigroupoid [label="Semigroupoid", penwidth=2.0];
category [label="Category"];
arrow [label="Arrow"];
functor -> apply;
functor -> alt;
apply -> bind;
apply -> applicative [style=dashed];
alt -> plus;
plus -> alternative [style=dashed];
applicative -> alternative;
applicative -> monad;
bind -> monad [style=dashed];
monad -> monad_plus;
alternative -> monad_plus;
functor -> traversable;
foldable -> traversable;
foldable -> foldable1;
foldable1 -> traversable1;
traversable -> traversable1;
bifunctor -> biapply;
contravariant -> divise;
contravariant -> decide;
divise -> divisible [style=dashed];
decide -> decidable [style=dashed];
decide -> conclude;
conclude -> decidable [style=dashed];
semigroupoid -> category [style=dashed];
category -> arrow;
}
|