Skip to content

Commit

Permalink
Standardize all “Available Instances” data types sections
Browse files Browse the repository at this point in the history
  • Loading branch information
calvellido committed Apr 8, 2018
1 parent abbfc4c commit 820383c
Show file tree
Hide file tree
Showing 15 changed files with 167 additions and 167 deletions.
28 changes: 14 additions & 14 deletions modules/docs/arrow-docs/docs/docs/datatypes/either/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,17 +307,17 @@ val httpStatusCode = r.getOrHandle {
// Right(b=6, dummy=kotlin.Unit)
```

## Instances

[Show]({{ '/docs/typeclasses/show' | relative_url }})
[Eq]({{ '/docs/typeclasses/eq' | relative_url }})
[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
[SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
[TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
[Each]({{ '/docs/optics/each' | relative_url }})
## Available Instances

* [Show]({{ '/docs/typeclasses/show' | relative_url }})
* [Eq]({{ '/docs/typeclasses/eq' | relative_url }})
* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
* [SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
* [TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
* [Each]({{ '/docs/optics/each' | relative_url }})
22 changes: 11 additions & 11 deletions modules/docs/arrow-docs/docs/docs/datatypes/eithert/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,17 +224,17 @@ As `EitherT<F, A ,B>` allows to manipulate the nested `Either` structure, it pro
EitherT(Option(3.left())).mapLeft(Option.functor(), {it + 1})
```

## Instances

[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
[SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
[TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
## Available Instances

* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
* [SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
* [TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})

Take a look at the [`OptionT` docs]({{ '/docs/datatypes/optiont' | relative_url }}) for an alternative version of this content with the `OptionT` monad transformer

Expand Down
20 changes: 10 additions & 10 deletions modules/docs/arrow-docs/docs/docs/datatypes/eval/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ video: FcaaTJhCEcw

## Eval

Eval is a monad that allows us to control evaluation and chain lazy operations that are not executed until `value()` is invoked.
Eval is a monad that allows us to control evaluation and chain lazy operations that are not executed until `value()` is invoked.

Eval includes internally trampolining facilities which allows us to chain computations without fear of blowing up the stack.
There are two different factors that play into evaluation: memoization and laziness.
Expand Down Expand Up @@ -64,17 +64,17 @@ fun odd(n: Int): Eval<Boolean> =
}
// if not wrapped in eval this type of computation would blow the stack and result in a StackOverflowError
odd(100000).value()
odd(100000).value()
```

### Available Instances
## Available Instances

[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[Bimonad]({{ '/docs/typeclasses/bimonad' | relative_url }})
[Comonad]({{ '/docs/typeclasses/comonad' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [Bimonad]({{ '/docs/typeclasses/bimonad' | relative_url }})
* [Comonad]({{ '/docs/typeclasses/comonad' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})

## Credits

# Credits

Contents partially adapted from [Cats Eval](https://typelevel.org/cats/datatypes/eval.html)
28 changes: 14 additions & 14 deletions modules/docs/arrow-docs/docs/docs/datatypes/id/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ video: DBvVd1pfLMo

## Id

The identity monad can be seen as the ambient monad that encodes the effect of having no effect.
The identity monad can be seen as the ambient monad that encodes the effect of having no effect.
It is ambient in the sense that plain pure values are values of `Id`.

```kotlin:ank
Expand All @@ -17,7 +17,7 @@ import arrow.core.*
Id("hello")
```

Using this type declaration, we can treat our Id type constructor as a `Monad` and as a `Comonad`.
Using this type declaration, we can treat our Id type constructor as a `Monad` and as a `Comonad`.
The `just` method, which has type `A -> Id<A>` just becomes the identity function. The `map` method
from `Functor` just becomes function application

Expand All @@ -26,15 +26,15 @@ val id: Id<Int> = Id.just(3)
id.map{it + 3}
```

Available Instances:

[Show]({{ '/docs/typeclasses/show' | relative_url }})
[Eq]({{ '/docs/typeclasses/eq' | relative_url }})
[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[Bimonad]({{ '/docs/typeclasses/bimonad' | relative_url }})
[Comonad]({{ '/docs/typeclasses/comonad' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
[TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
## Available Instances

* [Show]({{ '/docs/typeclasses/show' | relative_url }})
* [Eq]({{ '/docs/typeclasses/eq' | relative_url }})
* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [Bimonad]({{ '/docs/typeclasses/bimonad' | relative_url }})
* [Comonad]({{ '/docs/typeclasses/comonad' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
* [TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
18 changes: 9 additions & 9 deletions modules/docs/arrow-docs/docs/docs/datatypes/ior/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Ior
permalink: /docs/datatypes/ior/
---

## Ior
## Ior

`Ior` represents an inclusive-or relationship between two data types.
This makes it very similar to the [`Either`](/docs/datatypes/either) data type, which represents an "exclusive-or" relationship.
Expand Down Expand Up @@ -134,15 +134,15 @@ Ior.Both("Warning", 41).toValidated()
Ior.Both("Warning", 41).toOption()
```

Available Instances:
## Available Instances

[Show]({{ '/docs/typeclasses/show' | relative_url }})
[Eq]({{ '/docs/typeclasses/eq' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
[TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
* [Show]({{ '/docs/typeclasses/show' | relative_url }})
* [Eq]({{ '/docs/typeclasses/eq' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
* [TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})

# Credits
## Credits

Contents partially adapted from [Cats Ior](https://typelevel.org/cats/datatypes/ior.html)
18 changes: 9 additions & 9 deletions modules/docs/arrow-docs/docs/docs/datatypes/kleisli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Kleisli
permalink: /docs/datatypes/kleisli/
---

## Kleisli
## Kleisli
Kleisli enables composition of functions that return a monadic value, for instance, an `Option<Int>` or an `Either<String, Int>`, without having functions take an `Option` or `Either` as a parameter.

For example, we have the function `String.toInt()` which can throw a `NumberFormatException` and we want to do a safe conversion like this:
Expand Down Expand Up @@ -51,7 +51,7 @@ val intToDouble = {number:Int -> number.toDouble()}
val optionIntDoubleKleisli = Kleisli { str: String ->
if (str.toCharArray().all { it.isDigit() }) Some(intToDouble) else None
}
optionIntKleisli.ap(Option.applicative(), optionIntDoubleKleisli).fix().run("1")
```

Expand All @@ -71,7 +71,7 @@ import arrow.data.fix
val optionDoubleKleisli = Kleisli { str: String ->
if (str.toCharArray().all { it.isDigit() }) Some(str.toDouble()) else None
}
optionIntKleisli.flatMap(Option.monad(), { optionDoubleKleisli }).fix().run("1")
```

Expand All @@ -85,7 +85,7 @@ import arrow.data.fix
val optionFromOptionKleisli = Kleisli { number: Int ->
Some(number+1)
}
optionIntKleisli.andThen(Option.monad(), optionFromOptionKleisli).fix().run("1")
```

Expand All @@ -103,8 +103,8 @@ optionIntKleisli.andThen(Option.monad(), Some(0)).fix().run("1")

## Available Instances

[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
26 changes: 13 additions & 13 deletions modules/docs/arrow-docs/docs/docs/datatypes/nonemptylist/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,16 +133,16 @@ NonEmptyList.applicative().map(nelId, nelName, nelYear, { (id, name, year) ->

## Available Instances

[Show]({{ '/docs/typeclasses/show' | relative_url }})
[Eq]({{ '/docs/typeclasses/eq' | relative_url }})
[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[Bimonad]({{ '/docs/typeclasses/bimonad' | relative_url }})
[Comonad]({{ '/docs/typeclasses/comonad' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[Semigroup]({{ '/docs/typeclasses/semigroup' | relative_url }})
[SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
[Index]({{ '/docs/optics/index' | relative_url }})
[FilterIndex]({{ '/docs/optics/filterindex' | relative_url }})
* [Show]({{ '/docs/typeclasses/show' | relative_url }})
* [Eq]({{ '/docs/typeclasses/eq' | relative_url }})
* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [Bimonad]({{ '/docs/typeclasses/bimonad' | relative_url }})
* [Comonad]({{ '/docs/typeclasses/comonad' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [Semigroup]({{ '/docs/typeclasses/semigroup' | relative_url }})
* [SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
* [Index]({{ '/docs/optics/index' | relative_url }})
* [FilterIndex]({{ '/docs/optics/filterindex' | relative_url }})
32 changes: 16 additions & 16 deletions modules/docs/arrow-docs/docs/docs/datatypes/option/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,22 +164,22 @@ Option.monad().binding {
//None
```

Available Instances:

[Show]({{ '/docs/typeclasses/show' | relative_url }})
[Eq]({{ '/docs/typeclasses/eq' | relative_url }})
[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
[MonadFilter]({{ '/docs/typeclasses/monadfilter' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
[TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
[Each]({{ '/docs/optics/each' | relative_url }})

# Credits
## Available Instances:

* [Show]({{ '/docs/typeclasses/show' | relative_url }})
* [Eq]({{ '/docs/typeclasses/eq' | relative_url }})
* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [ApplicativeError]({{ '/docs/typeclasses/applicativeerror' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [MonadError]({{ '/docs/typeclasses/monaderror' | relative_url }})
* [MonadFilter]({{ '/docs/typeclasses/monadfilter' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
* [TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
* [Each]({{ '/docs/optics/each' | relative_url }})

## Credits

Contents partially adapted from [Scala Exercises Option Tutorial](https://www.scala-exercises.org/std_lib/options)
Originally based on the Scala Koans.
18 changes: 9 additions & 9 deletions modules/docs/arrow-docs/docs/docs/datatypes/optiont/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,15 +204,15 @@ fun getCountryCode(personId: Int): ObservableK<Option<String>> =

Here we no longer have to deal with the `None` cases, and the binding to the values on the left side are already the underlying values we want to focus on instead of the optional values. We have automatically `flatMapped` through the `ObservableK` and `Option` in a single expression reducing the boilerplate and encoding the effects concerns in the type signatures.

Available Instances:

[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[MonoidK]({{ '/docs/typeclasses/monoidk' | relative_url }})
[SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
## Available Instances

* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [MonoidK]({{ '/docs/typeclasses/monoidk' | relative_url }})
* [SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})

Take a look at the [`EitherT` docs]({{ '/docs/datatypes/eithert' | relative_url }}) for an alternative version of this content with the `EitherT` monad transformer

Expand Down
32 changes: 16 additions & 16 deletions modules/docs/arrow-docs/docs/docs/datatypes/sequencek/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,19 @@ Folding a sequence,
sequenceOf('a', 'b', 'c', 'd', 'e').k().foldLeft("") { x, y -> x + y }
```

Available Instances:

[Show]({{ '/docs/typeclasses/show' | relative_url }})
[Eq]({{ '/docs/typeclasses/eq' | relative_url }})
[Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Functor]({{ '/docs/typeclasses/functor' | relative_url }})
[Monad]({{ '/docs/typeclasses/monad' | relative_url }})
[Monoid]({{ '/docs/typeclasses/monoid' | relative_url }})
[MonoidK]({{ '/docs/typeclasses/monoidk' | relative_url }})
[Semigroup]({{ '/docs/typeclasses/semigroup' | relative_url }})
[SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
[Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
[TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
[Index]({{ '/docs/optics/index' | relative_url }})
[FilterIndex]({{ '/docs/optics/filterindex' | relative_url }})
## Available Instances

* [Show]({{ '/docs/typeclasses/show' | relative_url }})
* [Eq]({{ '/docs/typeclasses/eq' | relative_url }})
* [Applicative]({{ '/docs/typeclasses/applicative' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Functor]({{ '/docs/typeclasses/functor' | relative_url }})
* [Monad]({{ '/docs/typeclasses/monad' | relative_url }})
* [Monoid]({{ '/docs/typeclasses/monoid' | relative_url }})
* [MonoidK]({{ '/docs/typeclasses/monoidk' | relative_url }})
* [Semigroup]({{ '/docs/typeclasses/semigroup' | relative_url }})
* [SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
* [Traverse]({{ '/docs/typeclasses/traverse' | relative_url }})
* [TraverseFilter]({{ '/docs/typeclasses/traversefilter' | relative_url }})
* [Index]({{ '/docs/optics/index' | relative_url }})
* [FilterIndex]({{ '/docs/optics/filterindex' | relative_url }})
20 changes: 10 additions & 10 deletions modules/docs/arrow-docs/docs/docs/datatypes/setk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ video: xtnyCqeLI_4

## SetK

SetK(Kinded Wrapper) is a higher kinded wrapper around the the Set collection interface.
SetK(Kinded Wrapper) is a higher kinded wrapper around the the Set collection interface.

It can be created from the Kotlin Set type with a convient `k()` function.

Expand Down Expand Up @@ -57,13 +57,13 @@ SetK.monoidK().run { numbers.combineK(SetK.empty()) }
numbers.foldLeft(0) {sum, number -> sum + (number * number)}
```

Available Instances:
## Available Instances

[Show]({{ '/docs/typeclasses/show' | relative_url }})
[Eq]({{ '/docs/typeclasses/eq' | relative_url }})
[Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
[Monoid]({{ '/docs/typeclasses/monoid' | relative_url }})
[MonoidK]({{ '/docs/typeclasses/monoidk' | relative_url }})
[Semigroup]({{ '/docs/typeclasses/semigroup' | relative_url }})
[SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
[At]({{ '/docs/optics/at' | relative_url }})
* [Show]({{ '/docs/typeclasses/show' | relative_url }})
* [Eq]({{ '/docs/typeclasses/eq' | relative_url }})
* [Foldable]({{ '/docs/typeclasses/foldable' | relative_url }})
* [Monoid]({{ '/docs/typeclasses/monoid' | relative_url }})
* [MonoidK]({{ '/docs/typeclasses/monoidk' | relative_url }})
* [Semigroup]({{ '/docs/typeclasses/semigroup' | relative_url }})
* [SemigroupK]({{ '/docs/typeclasses/semigroupk' | relative_url }})
* [At]({{ '/docs/optics/at' | relative_url }})
Loading

0 comments on commit 820383c

Please sign in to comment.