1. 4
  1.  

  2. 1

    A collaboration between the maintainers of scalaz, shapeless and spire. They’re making implicit conversions from appropriate type-classes to make it possible for the libraries to work nicely together.

    1. 1

      Seems like Spire doesn’t really fit with scalaz and shapeless. Why is it included?

      1. 1

        Why doesn’t it fit in? Spire has type-classes for equality, semigroups, monoids, groups, rngs, etc. The typelevel.scala collaboration allows Spire’s equivalent type-classes to be converted into instances of other libraries.

        For example: instances of Spire’s Monoid can be converted to instances of shapeless' definition of Monoid. Or Spire’s Group to scalaz' Group.

        1. 2

          It seems like Scalaz and Shapeless are a lot more about punishing the scala type system, complicated type programming, and borrowing idioms from Haskell, whereas Spire seems more about processing a lot of data. If the idea behind typelevel is just about type classes, that makes it make more sense.

          I’m not familiar with any of the libraries, but from a glance, it seemed like it would be more useful to unify algebird/spire over scalaz/spire.

          1. 1

            Well, scalaz-core doesn’t really punish the Scala type system.

            Anyway, if you look at the projects under the GitHub account:

            https://github.com/typelevel

            They are:

            • Interoperability libraries & additional data structures and instances for Scalaz
            • Interoperability libraries for Shapeless

            So yes, it’s pretty much just about type-classes (Spire is missing but I think it’ll soon be there)