typelevel / Spotted Leopards
Licence: other
Proof of concept for a cats-like library built using Dotty features
Stars: ✭ 91
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
Taelinarena
[outdated] A moddable MOBA in Formality
Stars: ✭ 84 (-7.69%)
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
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].