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.
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.
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.
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.
Seems like Spire doesn’t really fit with scalaz and shapeless. Why is it included?
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.
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.
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:
So yes, it’s pretty much just about type-classes (Spire is missing but I think it’ll soon be there)