Skip to content
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

Merged

Commits on Jul 17, 2017

  1. 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
    diesalbla authored and kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    50087b5 View commit details
    Browse the repository at this point in the history
  2. 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).
    diesalbla authored and kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    a8806ee View commit details
    Browse the repository at this point in the history
  3. 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.
    diesalbla authored and kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    495ad23 View commit details
    Browse the repository at this point in the history
  4. Cats-1567 Kleisli Instances

    We introduce some instances of CommutativeArrow for Kleisli, which
    are based on CommutativeMonad.
    diesalbla authored and kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    21fc3fa View commit details
    Browse the repository at this point in the history
  5. Cats-1567 Split CommutativeMonad into Commutative FlatMap

    We introduce a new type class, CommutativeFlatMap, to load the
    commutativity law one level up.
    diesalbla authored and kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    ea5a064 View commit details
    Browse the repository at this point in the history
  6. 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.
    diesalbla authored and kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    64965c2 View commit details
    Browse the repository at this point in the history
  7. 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.
    diesalbla authored and kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    8fe26df View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    9603c82 View commit details
    Browse the repository at this point in the history
  9. fix unmoored statement

    kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    bc0f309 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    c5ab4a5 View commit details
    Browse the repository at this point in the history
  11. fix import error

    kailuowang committed Jul 17, 2017
    Configuration menu
    Copy the full SHA
    b77427b View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2017

  1. Configuration menu
    Copy the full SHA
    914c564 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3e975bd View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2017

  1. Configuration menu
    Copy the full SHA
    41edd56 View commit details
    Browse the repository at this point in the history
  2. added back arrow tests

    kailuowang committed Jul 19, 2017
    Configuration menu
    Copy the full SHA
    f34c6e5 View commit details
    Browse the repository at this point in the history