PureScriptの型クラスの継承ツリー
2021/6/10
見かけたもの、使ったことある型クラスを適当に書いてる

かつ、継承があるもの
例えば Identity
とかRow系のclassは特に継承関係がないので書いていない
Numの継承関係なんかすごいな

プログラム
graphvizdigraph G {
rankdir="BT";
aize ="4,4";
Apply -> Functor;
Applicative -> Apply;
Bind -> Apply;
Monad -> Applicative;
Monad -> Bind;
Traversable -> Functor;
Traversable -> Foldable;
MonadPlus -> Monad;
MonadPlus -> Alternative;
Alternative -> Plus;
Alternative -> Applicative;
Plus -> Alt;
Alt -> Functor;
Extend -> Functor;
Comonad -> Extend;
MonadEffect -> Monad;
MonadState -> Monad;
MonadAsk -> Monad;
MonadThrow -> Monad;
MonadError -> MonadThrow;
MonadWriter -> Monoid;
MonadWriter -> MonadTell;
MonadTell -> Semigroup;
MonadTell -> Monad;
Monoid -> Semigroup;
MonadRec -> Monad
Ord -> Eq;
Enum -> Ord;
BoundedEnum -> Bounded;
BoundedEnum -> Enum;
Bounded -> Ord;
CommutativeRing -> Ring;
Num -> Eq;
Num -> Semiring;
Num -> Ring;
Num -> CommutativeRing;
Ring -> Semiring;
DivisionRing -> Ring;
BooleanAlgebra -> HeytingAlgebra;
Category -> Semigroupoid;
Costrong -> Profunctor;
Choice -> Profunctor;
Strong -> Profunctor;
Wander -> Strong;
Wander -> Choice;
Bitraversable -> Bifunctor;
Bitraversable -> Bifoldable;
NewType -> Coercible
}
未追記
これで書き換えてみたい
webでできないのは不便だけど
参考
5年前の記事でかなり古くなっているので、この記事を参考にしつつも刷新した
EffとかArrowとかはなくなっている
