PureScriptの型クラスの継承ツリー
2021/6/10
見かけたもの、使ったことある型クラスを適当に書いてるmrsekut.icon
かつ、継承があるもの
例えばIdentityとかRow系のclassは特に継承関係がないので書いていない
https://gyazo.com/7104ed118b097f2d682b5e322487b304
https://gyazo.com/c8965faa3de5ee11dd19f716d5d765d2
Numの継承関係なんかすごいなmrsekut.icon
https://gyazo.com/93a33eec9648e7d2835047c25a7a6874
プログラム
code:graphviz
digraph 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とかはなくなっているmrsekut.icon