DUCT is the Dotty Utilising Category Theory library.1
Following in the footsteps of Scalaz and Cats, DUCT brings powerful and principled abstractions from Category Theory to Scala, but with some different design goals. DUCT is designed more for learning and experimentation than real world applications.
- Implement the data types and type classes as simply as possible but no simpler.
- Documented development on YouTube: Functional Justin and my blog.
- Scala 3 first; no backwards compatibility.
- A simple IO type is likely along with the ability to compose parallel operations.
Scala doc is gradually being added.
The project can be accessed from GitHub packages as well as compiled and run from source directly.
TODO add instructions to configure GitHub packages in a project including the authorization.
<dependency>
<groupId>io.github.functionaljustin</groupId>
<artifactId>duct_3</artifactId>
<version>0.5.0-SNAPSHOT</version>
</dependency>
© 2021-2025 Justin Heyes-Jones and DUCT contributors. All Rights Reserved.