Profunctorというライブラリに、以下の様なUpStarという型があります https://hackage.haskell.org/package/profunctors-4.3.2/docs/Data-Profunctor.html#t:UpStar https://github.com/ekmett/profunctors/blob/v4.3.2/src/Data/Profunctor.hs#L67 newtype UpStar f d c = UpStar { runUpStar :: d -> f c } これは、標準ライブラリ(?)であるbaseのKleisliと同型だと思うのですが、わざわざこういうった場合に別のnewtypeを作るのはなにか理由があるのでしょうか? http://hackage.haskell.org/package/base-4.7.0.2/docs/
![HaskellにおけるProfunctorのUpStarとControl.Arrow.Kleisliについて](https://cdn-ak-scissors.b.st-hatena.com/image/square/f6bc393cd0b6bd2196935e603c5d031bd6ca6699/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fja%2FImg%2Fapple-touch-icon%402.png%3Fv%3D1cfb10b305ca)