All Projects → typelevel → Spotted Leopards

typelevel / Spotted Leopards

Licence: other
Proof of concept for a cats-like library built using Dotty features

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Spotted Leopards

Monix
Asynchronous, Reactive Programming for Scala and Scala.js.
Stars: ✭ 1,819 (+1898.9%)
Mutual labels:  typelevel, functional-programming
Monocle
Optics library for Scala
Stars: ✭ 1,357 (+1391.21%)
Mutual labels:  typelevel, functional-programming
Sup
Composable, purely functional healthchecks in Scala.
Stars: ✭ 138 (+51.65%)
Mutual labels:  typelevel, functional-programming
Doobie
Functional JDBC layer for Scala.
Stars: ✭ 1,910 (+1998.9%)
Mutual labels:  typelevel, functional-programming
Shapeless
Generic programming for Scala
Stars: ✭ 3,207 (+3424.18%)
Mutual labels:  typelevel, functional-programming
Skunk
A data access library for Scala + Postgres.
Stars: ✭ 1,107 (+1116.48%)
Mutual labels:  typelevel, functional-programming
Frameless
Expressive types for Spark.
Stars: ✭ 717 (+687.91%)
Mutual labels:  typelevel, functional-programming
Monix Bio
Asynchronous data type with typed errors.
Stars: ✭ 80 (-12.09%)
Mutual labels:  typelevel, functional-programming
Zio Query
Add efficient pipelining, batching, and caching to any data source
Stars: ✭ 84 (-7.69%)
Mutual labels:  functional-programming
Zio Logging
Simple logging for ZIO apps, with correlation, context & pluggable backends out of the box.
Stars: ✭ 85 (-6.59%)
Mutual labels:  functional-programming
Omnia
Stars: ✭ 81 (-10.99%)
Mutual labels:  functional-programming
Taelinarena
[outdated] A moddable MOBA in Formality
Stars: ✭ 84 (-7.69%)
Mutual labels:  functional-programming
Fuego
Functional Experiment in Golang
Stars: ✭ 87 (-4.4%)
Mutual labels:  functional-programming
Functionalrx2
FunctionalRx2 is a collection of constructs to simplify a functional programming approach to Java and Android [STABLE]
Stars: ✭ 83 (-8.79%)
Mutual labels:  functional-programming
Fundamental Haskell
Fundamental Haskell book, to the point terse statements on Haskell, Category theory, and related fields. Encyclopedic pocketbook of meaning. Zen kōan-like meditations of understanding. For quick or memory curve spaced repetition learning.
Stars: ✭ 88 (-3.3%)
Mutual labels:  functional-programming
Dilate
Nearly zero runtime object allocation powered by scalameta. Value class and Unboxed Tagged Type generation at compile-time.
Stars: ✭ 80 (-12.09%)
Mutual labels:  typelevel
Request Compose
Composable HTTP Client
Stars: ✭ 80 (-12.09%)
Mutual labels:  functional-programming
Imlazy
😴 Functional programming with lazy immutable iterables
Stars: ✭ 89 (-2.2%)
Mutual labels:  functional-programming
Kotlintutorial
Learn Kotlin programming from scratch
Stars: ✭ 88 (-3.3%)
Mutual labels:  functional-programming
Cl Algebraic Data Type
Algebraic data types in Common Lisp
Stars: ✭ 86 (-5.49%)
Mutual labels:  functional-programming

Spotted Leopards

Spotted Leopards = Dotty + Cats

Spotted Leopards is a proof of concept for a cats-like library built using Dotty features, with no concern for source compatibility with the existing Cats library. This project has a few goals:

  • explore how new language features in Dotty could be used to improve the encodings of functional type classes and related data types, perhaps informing future Cats / Dotty roadmap
  • provide feedback on Dotty features from the perspective of cats library authors
  • provide a code base of significant size that can be used for learning and exploring Dotty

In short, this project is an experiment only and will not in any way become a library that should be used for real work. This project is NOT a preview of a future Cats version. Rather, it provides a way to explore the design space of the Dotty language features without the constraints of source compatibility and cross-building expected of Cats proper.

Getting Started

To get started, launch sbt console and run the following:

scala> import leopards._ // Import various types like Monad and OptionT

scala> import implied leopards._ // Import type class instances

scala> Some(1).map2(Some(2))(_ + _)
val res0: Option[Int] = Some(3)

scala> OptionT.fromOption[F = List](res0)
val res1: leopards.OptionT.OptionT[List, Int] = List(Some(3))
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].