-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace Split with Commutative Arrow. Continuing #1719 #1766
Replace Split with Commutative Arrow. Continuing #1719 #1766
Commits on Jul 17, 2017
-
Cats-1567 Replace Split with Commutative Arrow
This commit removes from the `core` module the `Split` typeclass. This includes the following changes: * The `Arrow` typeclass is no longer a subtype of `Split`. * The `split` operation, previously in the `Split` typeclass, is now integrated in the `Arrow` typeclass, with a default implementation. * Following notation from the `Control.Arrow` library for Haskell, we use the operator `***` as an alias for `split`. * `SplitSyntax` is replaced with `ArrowSyntax`. * We remove the `SplitLaws` and the `SplitTests`. In consequence, ArrowLaws does not inherit from SplitLaws anymore. * We modify the instances for `Kleisli`. We remove the trait `KleisliSpli`, and we replace the _factory_ method that was generating it to generate a `KleisliCompose` instead. * We remove the tests on the `SplitLaws` for Kleisli and CoKleisli
Configuration menu - View commit details
-
Copy full SHA for 50087b5 - Browse repository at this point
Copy the full SHA 50087b5View commit details -
Cats-1567 Add Commutative Arrows
We add a type-class of commutative arrows, which are those in which the `split` operation is commutative (can pair in any order).
Configuration menu - View commit details
-
Copy full SHA for a8806ee - Browse repository at this point
Copy the full SHA a8806eeView commit details -
Cats-1567 Introduce Commutative Monad
We introduce a Commutative Monad Type-class, a subclass of Monad in which the flatMap of independent operations is commutative.
Configuration menu - View commit details
-
Copy full SHA for 495ad23 - Browse repository at this point
Copy the full SHA 495ad23View commit details -
We introduce some instances of CommutativeArrow for Kleisli, which are based on CommutativeMonad.
Configuration menu - View commit details
-
Copy full SHA for 21fc3fa - Browse repository at this point
Copy the full SHA 21fc3faView commit details -
Cats-1567 Split CommutativeMonad into Commutative FlatMap
We introduce a new type class, CommutativeFlatMap, to load the commutativity law one level up.
Configuration menu - View commit details
-
Copy full SHA for ea5a064 - Browse repository at this point
Copy the full SHA ea5a064View commit details -
Cats-1567 Commutative Comonad - CoflatMap
We introduce the duals of Commutative Comonads and CoflatMap, as the duals of commutative Flatmaps and Monads. This is done to generate and test CommutativeArrow instances for the Cokleisli datatype.
Configuration menu - View commit details
-
Copy full SHA for 64965c2 - Browse repository at this point
Copy the full SHA 64965c2View commit details -
1567 Complete tests for Cokleisli
We complete the tests for the CommutativeArrow instance of Cokleisli. To use it, we mark the Monad instance of `NonEmptyList` as a Commutative Monad.
Configuration menu - View commit details
-
Copy full SHA for 8fe26df - Browse repository at this point
Copy the full SHA 8fe26dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9603c82 - Browse repository at this point
Copy the full SHA 9603c82View commit details -
Configuration menu - View commit details
-
Copy full SHA for bc0f309 - Browse repository at this point
Copy the full SHA bc0f309View commit details -
Configuration menu - View commit details
-
Copy full SHA for c5ab4a5 - Browse repository at this point
Copy the full SHA c5ab4a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for b77427b - Browse repository at this point
Copy the full SHA b77427bView commit details
Commits on Jul 18, 2017
-
Configuration menu - View commit details
-
Copy full SHA for 914c564 - Browse repository at this point
Copy the full SHA 914c564View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e975bd - Browse repository at this point
Copy the full SHA 3e975bdView commit details
Commits on Jul 19, 2017
-
Configuration menu - View commit details
-
Copy full SHA for 41edd56 - Browse repository at this point
Copy the full SHA 41edd56View commit details -
Configuration menu - View commit details
-
Copy full SHA for f34c6e5 - Browse repository at this point
Copy the full SHA f34c6e5View commit details