fp-ts一覧

fp-tsの一覧を出して、かつ、難易度順がわかるようにしたい

# 参照元
https://gcanti.github.io/fp-ts/modules/

## 一覧をまとめる基準について

https://gcanti.github.io/fp-ts/guides/HKT.html#functor-instance

https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation

下記のような記述があるものと、ないものがある
あるもののほうが基本だと思われるためそれらを先にする
```ts
declare module 'fp-ts/HKT' {
  interface URItoKind<A> {
    readonly Identity: Identity<A>
  }
}
```

declare module 'fp-ts/HKT' で使われるもの一覧
* URItoKind<A>
* URItoKind2<E, A>
* URItoKind3<R, E, A>
* URItoKind4<S, R, E, A>

あとは、import先が少ないものも先にする


## 一覧

<table>
  <caption>fp-tsの一覧</caption>
  <thead>
    <tr>
      <th>ファイル名</th> 
      <th>import先</th> 
      <th>ソースの中身</th>
      <th>declare module がある</th>
      <th>参考</th>
    </tr>
  </thead>

  <!-- original -->
  <tr>
    <td>HKT</td> 
    <td>なし</td> 
    <td>interface, type のみ</td>
    <td>全て</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/1ad81f9ac1be6ba7cedd#hkt%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D-functor%E3%82%82%E5%90%AB%E3%82%80">HKTの内容確認 (Functorも含む)</a>
            </li>
        </ul>
    </td>
  </tr>
  
　<!-- URItoKind<A> :: 数個 -->
  <tr>
    <td>Endomorphism</td> 
    <td>
        <ul>
            <li>function</li>
            <li>Monoid</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Eq</td> 
    <td>
        <ul>
            <li>Contravariant</li>
            <li>function</li>
            <li>Monoid</li>
            <li>ReadonlyRecord</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#eq%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">Eqの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>Ord</td> 
    <td>
        <ul>
            <li>Contravariant</li>
            <li>Eq</li>
            <li>function</li>
            <li>Monoid</li>
            <li>Ordering</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#ord%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">Ordの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>Predicate</td> 
    <td>
        <ul>
            <li>Contravariant</li>
            <li>function</li>
            <li>Monoid</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
　
  <!-- URItoKind<A> :: いくつか -->
  <tr>
    <td>ReadonlySet</td> 
    <td>いくつか</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  
  <!-- URItoKind<A> :: たくさん -->
  <tr>
    <td>Array</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>IO</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#io%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">IOの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>IOOption</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Identity</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>NonEmptyArray</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Option</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/6d795fe231c0a6df48ac#chapter-2-option">Chapter 2: Option</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>ReadonlyArray</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>ReadonlyNonEmptyArray</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>ReadonlyRecord</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#readonlyrecord%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">ReadonlyRecordの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>Record</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Task</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>TaskOption</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Tree</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind&lt;A&gt;</td>
    <td></td>
  </tr>

　<!-- URItoKind2<E, A> :: 数個 -->
  <tr>
    <td>Separated</td> 
    <td>
        <ul>
            <li>Bifunctor</li>
            <li>function</li>
            <li>Functor</li>
        </ul>
    </td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Store</td> 
    <td>
        <ul>
            <li>Comonad</li>
            <li>Endomorphism</li>
            <li>Extend</li>
            <li>function</li>
            <li>Functor</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Traced</td> 
    <td>
        <ul>
            <li>Comonad</li>
            <li>function</li>
            <li>Functor</li>
            <li>Monoid</li>
        </ul>
    </td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  
  <!-- URItoKind2<E, A> :: いくつか -->
  <tr>
    <td>Writer</td> 
    <td>いくつか</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>

  <!-- URItoKind2<E, A> :: たくさん -->
  <tr>
    <td>Const</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Either</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/0db5b9ea2d1004ac0ea2#chapter-3-either">Chapter 3: Either</a>
            </li>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#either%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">Eitherの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>IOEither</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Map</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Reader</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>ReaderIO</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>ReaderTask</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>ReadonlyMap</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>ReadonlyTuple</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>State</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>TaskEither</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>TaskThese</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>These</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>Tuple</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind2&lt;E, A&gt;</td>
    <td></td>
  </tr>
  
  <!-- URItoKind3<R, E, A> -->
  <tr>
    <td>ReaderEither</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind3&lt;R, E, A&gt;</td>
    <td></td>
  </tr>
  <tr>
    <td>ReaderTaskEither</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind3&lt;R, E, A&gt;</td>
    <td></td>
  </tr>

  <!-- URItoKind4<S, R, E, A> -->
  <tr>
    <td>StateReaderTaskEither</td> 
    <td>たくさん</td>
    <td>いろいろ</td>
    <td>URItoKind4&lt;S, R, E, A&gt;</td>
    <td></td>
  </tr>

　<!-- import のみ -->
  <tr>
    <td>index</td> 
    <td>たくさん</td>
    <td>import のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- class -->
  <tr>
    <td>IORef</td> 
    <td>
        <ul>
            <li>IO</li>
        </ul>
    </td>
    <td>class</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- const のみ :: 数個 -->
  <tr>
    <td>Console</td> 
    <td>
        <ul>
            <li>IO</li>
        </ul>
    </td>
    <td>const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Date</td> 
    <td>
        <ul>
            <li>Eq</li>
            <li>function</li>
            <li>IO</li>
            <li>number</li>
            <li>Ord</li>
        </ul>
    </td>
    <td>const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
　<tr>
    <td>struct</td> 
    <td>
        <ul>
            <li>internal</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>void</td> 
    <td>
        <ul>
            <li>Monoid</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- const のみ :: いくつか -->
  <tr>
    <td>boolean</td> 
    <td>いくつか</td>
    <td>const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>number</td> 
    <td>いくつか</td>
    <td>const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>string</td> 
    <td>いくつか</td>
    <td>const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- interface のみ :: なし -->
  <tr>
    <td>JoinSemilattice</td> 
    <td>なし</td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>MeetSemilattice</td> 
    <td>なし</td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- interface のみ :: 数個 -->
  <tr>
    <td>Bifunctor</td> 
    <td>
        <ul>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>BoundedJoinSemilattice</td> 
    <td>
        <ul>
            <li>JoinSemilattice</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>BoundedLattice</td> 
    <td>
        <ul>
            <li>BoundedJoinSemilattice</li>
            <li>BoundedMeetSemilattice</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>BoundedMeetSemilattice</td> 
    <td>
        <ul>
            <li>MeetSemilattice</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Category</td> 
    <td>
        <ul>
            <li>HKT</li>
            <li>Semigroupoid</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Comonad</td> 
    <td>
        <ul>
            <li>Extend</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Contravariant</td> 
    <td>
        <ul>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#contravariant%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">Contravariantの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>Extend</td> 
    <td>
        <ul>
            <li>Functor</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Group</td> 
    <td>
        <ul>
            <li>Monoid</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>HeytingAlgebra</td> 
    <td>
        <ul>
            <li>BoundedDistributiveLattice</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Invariant</td> 
    <td>
        <ul>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Lattice</td> 
    <td>
        <ul>
            <li>JoinSemilattice</li>
            <li>MeetSemilattice</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Monad</td> 
    <td>
        <ul>
            <li>Applicative</li>
            <li>Chain</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#monad%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">Monadの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>MonadIO</td> 
    <td>
        <ul>
            <li>FromIO</li>
            <li>HKT</li>
            <li>Monad</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>MonadTask</td> 
    <td>
        <ul>
            <li>FromTask</li>
            <li>HKT</li>
            <li>MonadIO</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>MonadThrow</td> 
    <td>
        <ul>
            <li>HKT</li>
            <li>Monad</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>NaturalTransformation</td> 
    <td>
        <ul>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Pointed</td> 
    <td>
        <ul>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Profunctor</td> 
    <td>
        <ul>
            <li>Functor</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Semigroupoid</td> 
    <td>
        <ul>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>TraversableWithIndex</td> 
    <td>
        <ul>
            <li>Applicative</li>
            <li>FoldableWithIndex</li>
            <li>FunctorWithIndex</li>
            <li>HKT</li>
            <li>Traversable</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Unfoldable</td> 
    <td>
        <ul>
            <li>HKT</li>
            <li>Option</li>
        </ul>
    </td>
    <td>interface のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- interface, type のみ -->
  <tr>
    <td>FilterableWithIndex</td> 
    <td>
        <ul>
            <li>Either</li>
            <li>Filterable</li>
            <li>FunctorWithIndex</li>
            <li>HKT</li>
            <li>Option</li>
            <li>Separated</li>
        </ul>
    </td>
    <td>interface, type のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- interface, function のみ :: 数個 -->
  <tr>
    <td>Alt</td> 
    <td>
        <ul>
            <li>function</li>
            <li>Functor</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Applicative</td> 
    <td>
        <ul>
            <li>Apply</li>
            <li>function</li>
            <li>Functor</li>
            <li>HKT</li>
            <li>Monoid</li>
            <li>Pointed</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#applicative%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">Applicativeの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>BoundedDistributiveLattice</td> 
    <td>
        <ul>
            <li>BoundedLattice</li>
            <li>DistributiveLattice</li>
            <li>Ord</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Chain</td> 
    <td>
        <ul>
            <li>Apply</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#chain%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">Chainの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>Choice</td> 
    <td>
        <ul>
            <li>Category</li>
            <li>Either</li>
            <li>function</li>
            <li>HKT</li>
            <li>Profunctor</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Compactable</td> 
    <td>
        <ul>
            <li>Either</li>
            <li>function</li>
            <li>Functor</li>
            <li>HKT</li>
            <li>Option</li>
            <li>Separated</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>DistributiveLattice</td> 
    <td>
        <ul>
            <li>Lattice</li>
            <li>Ord</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>FoldableWithIndex</td> 
    <td>
        <ul>
            <li>Foldable</li>
            <li>function</li>
            <li>HKT</li>
            <li>Monoid</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>FromIO</td> 
    <td>
        <ul>
            <li>Chain</li>
            <li>function</li>
            <li>HKT</li>
            <li>IO</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>FromReader</td> 
    <td>
        <ul>
            <li>Chain</li>
            <li>function</li>
            <li>HKT</li>
            <li>Reader</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>FromState</td> 
    <td>
        <ul>
            <li>Chain</li>
            <li>Endomorphism</li>
            <li>function</li>
            <li>HKT</li>
            <li>State</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>FromTask</td> 
    <td>
        <ul>
            <li>Chain</li>
            <li>FromIO</li>
            <li>function</li>
            <li>HKT</li>
            <li>Task</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>FromThese</td> 
    <td>
        <ul>
            <li>function</li>
            <li>HKT</li>
            <li>These</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Functor</td> 
    <td>
        <ul>
            <li>function</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/da2382829dea4330afc5">Functorの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>FunctorWithIndex</td> 
    <td>
        <ul>
            <li>function</li>
            <li>Functor</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Strong</td> 
    <td>
        <ul>
            <li>Category</li>
            <li>function</li>
            <li>HKT</li>
            <li>Profunctor</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Traversable</td> 
    <td>
        <ul>
            <li>Applicative</li>
            <li>Foldable</li>
            <li>function</li>
            <li>Functor</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>WriterT</td> 
    <td>
        <ul>
            <li>HKT</li>
            <li>Monad</li>
            <li>Monoid</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Zero</td> 
    <td>
        <ul>
            <li>HKT</li>
            <li>Pointed</li>
        </ul>
    </td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- interface, function のみ :: いくつか -->
  <tr>
    <td>Alternative</td> 
    <td>いくつか</td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
　<tr>
    <td>FromEither</td> 
    <td>いくつか</td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>ReaderT</td> 
    <td>いくつか</td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>StateT</td> 
    <td>いくつか</td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Witherable</td> 
    <td>いくつか</td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- interface, function のみ :: たくさん -->
  <tr>
    <td>Filterable</td> 
    <td>たくさん</td>
    <td>interface, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- interface, const のみ -->
  <tr>
    <td>BooleanAlgebra</td> 
    <td>
        <ul>
            <li>function</li>
            <li>HeytingAlgebra</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Bounded</td> 
    <td>
        <ul>
            <li>Ord</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>ChainRec</td> 
    <td>
        <ul>
            <li>Chain</li>
            <li>Either</li>
            <li>HKT</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Magma</td> 
    <td>
        <ul>
            <li>Endomorphism</li>
            <li>Predicate</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Monoid</td> 
    <td>
        <ul>
            <li>Bounded</li>
            <li>Endomorphism</li>
            <li>function</li>
            <li>internal</li>
            <li>ReadonlyRecord</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/dabc82cf22dbb3d81535">Monoidの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>Refinement</td> 
    <td>
        <ul>
            <li>Either</li>
            <li>internal</li>
            <li>Option</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Ring</td> 
    <td>
        <ul>
            <li>function</li>
            <li>Semiring</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Semiring</td> 
    <td>
        <ul>
            <li>function</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Show</td> 
    <td>
        <ul>
            <li>internal</li>
            <li>ReadonlyRecord</li>
        </ul>
    </td>
    <td>interface, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- type, const のみ -->
  <tr>
    <td>Ordering</td> 
    <td>
        <ul>
            <li>Eq</li>
            <li>Monoid</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>type, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- function, const のみ -->
  <tr>
    <td>Random</td> 
    <td>
        <ul>
            <li>function</li>
            <li>IO</li>
            <li>ReadonlyNonEmptyArray</li>
        </ul>
    </td>
    <td>function, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- interface, type, function のみ :: 数個 -->
  <tr>
    <td>Apply</td> 
    <td>
        <ul>
            <li>function</li>
            <li>Functor</li>
            <li>HKT</li>
            <li>internal</li>
            <li>Semigroup</li>
        </ul>
    </td>
    <td>interface, type, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
　<!-- interface, type, function のみ :: いくつか -->
  <tr>
    <td>EitherT</td> 
    <td>いくつか</td>
    <td>interface, type, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
　<tr>
    <td>ValidationT</td> 
    <td>いくつか</td>
    <td>interface, type, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- interface, type, function のみ :: たくさん -->
  <tr>
    <td>OptionT</td> 
    <td>たくさん</td>
    <td>interface, type, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>TheseT</td> 
    <td>たくさん</td>
    <td>interface, type, function のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
  <!-- interface, type, const のみ -->
  <tr>
    <td>internal</td> 
    <td>いくつか</td>
    <td>interface, type, const のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/b47008672c98d6ec67c4#internal%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D%E3%81%AF%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84">internalの内容確認はできない</a>
            </li>
        </ul>
    </td>
  </tr>
  
  <!-- interface, function, const のみ :: 数個 -->
  <tr>
    <td>Field</td> 
    <td>
        <ul>
            <li>Eq</li>
            <li>Ring</li>
        </ul>
    </td>
    <td>interface, function, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Foldable</td> 
    <td>
        <ul>
            <li>Applicative</li>
            <li>function</li>
            <li>HKT</li>
            <li>Monad</li>
            <li>Monoid</li>
        </ul>
    </td>
    <td>interface, function, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  <tr>
    <td>Semigroup</td> 
    <td>
        <ul>
            <li>function</li>
            <li>internal</li>
            <li>Magma</li>
            <li>Ord</li>
            <li>ReadonlyRecord</li>
        </ul>
    </td>
    <td>interface, function, const のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/ac2f89c75cf013f63460">Semigroupの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  <tr>
    <td>function</td> 
    <td>
        <ul>
            <li>BooleanAlgebra</li>
            <li>Monoid</li>
            <li>Ring</li>
            <li>Semigroup</li>
            <li>Semiring</li>
        </ul>
    </td>
    <td>interface, function, const のみ</td>
    <td>なし</td>
    <td>
        <ul>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/6d795fe231c0a6df48ac#chapter-1-pipe-and-flow">Chapter 1: pipe and flow</a>
            </li>
            <li>
                <a href="https://qiita.com/kuangzhixitian3/items/1ad81f9ac1be6ba7cedd#function%E3%81%AE%E5%86%85%E5%AE%B9%E7%A2%BA%E8%AA%8D">functionの内容確認</a>
            </li>
        </ul>
    </td>
  </tr>
  
  <!-- interface, function, const のみ :: いくつか -->
  <tr>
    <td>Set</td> 
    <td>いくつか</td>
    <td>interface, function, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- interface, function, const のみ :: たくさん -->
  <tr>
    <td>pipeable</td> 
    <td>たくさん</td>
    <td>interface, function, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>

  <!-- interface, type, function, const のみ -->
  <tr>
    <td>Json</td> 
    <td>
        <ul>
            <li>Either</li>
            <li>function</li>
        </ul>
    </td>
    <td>interface, type, function, const のみ</td>
    <td>なし</td>
    <td></td>
  </tr>
  
</table>