refined
refined copied to clipboard
Refinement types for Scala
Scala Exercises' lessons for refined would be cool, see http://www.47deg.com/blog/scala-exercises-version-two#contribute-3 and https://github.com/scala-exercises/scala-exercises/blob/master/DEV_GUIDE.md
Hi, I'm posting this feature request after a small e-mail exchange with @fthomas The code ``` for (i
``` scala import eu.timepit.refined.auto._ import eu.timepit.refined.api.Validate import shapeless.tag.@@ final case class CrashOnTypeTag[A]() object CrashOnTypeTag { implicit def crashValidate[A: reflect.runtime.universe.TypeTag]: Validate.Plain[String, CrashOnTypeTag[A]] = { Validate.fromPredicate({ tree => true }, { tree...
I think it would be great if we could use the same language at the type-level like at the value level. At least as close as possible. E.g. Instead of...
At the Typelevel Summit in Oslo @non and @dwijnand asked/talked about refining values into a coproduct of a refined type and its "negation", e.g. something like `Either[T Refined Not[P], T...
The library has first class support for `shapeless.tag.@@` and `Refined` as carrier for refinements and both types are used in tests and example. We should document the pros and cons...
`RefinePartiallyApplied.force` currently throws an `IllegalArgumentException` if the argument does not conform to the predicate. We should probably introduce a special exception type (which can be a subtype of `IllegalArgumentException`) that...
Remove `Predicate.show` and use `Show` type class instead
`refine` currently returns an `Either[String, A]`. `String` is an awful type for errors and should probably be replaced by a dedicated error type like `RefinementError`. ``` scala case class RefinementError(msg:...
eliminate duplicated code