# FSharpPlus
[FSharpPlus](https://fsprojects.github.io/FSharpPlus) provides implementations for the following abstractions:
- [[FSharpPlus Monoid|Monoids]] and [[FSharpPlus Monad|Monads]]
- [[FSharpPlus Functor|Covariant Functors]], [[FSharpPlus Applicative Functor|Applicative Functors]], and [[FSharpPlus Bifunctor|Bifunctors]]
- [[FSharpPlus Contravariant Functor|Contravariant Functors]]
- [[FSharpPlus Foldable|Foldables]] and [[FSharpPlus Traversable|Traversables]]
It also includes implementations for various concrete data types including:
- [[FSharpPlus Const|Const]] – a phantom functor
- [[FSharpPlus Free|Free]] – the FSharpPlus version of a free monad
- [[FSharpPlus Endo|Endo]] – the FSharpPlus version of an endofunctor
- [[FSharpPlus Dual|Dual]] – a monoid that reverses its wrapped monoid
## Abstractions Diagram
The [FSharpPlus](https://fsprojects.github.io/FSharpPlus) library provides a very nice [abstractions diagram](https://fsprojects.github.io/FSharpPlus/abstractions.htm):
<iframe width=100% height=800px src="https://fsprojects.github.io/FSharpPlus/abstractions.html"></iframe>