Skip to content
/ ftypes Public

A collection of opinionated effectful types for building FP programs in Scala.

License

Notifications You must be signed in to change notification settings

hilios/ftypes

Repository files navigation

F[types]

Lifting impure code into F[] since 2018.

Build Status

Overview s

F[types] is a collection of opinionated algebras for writing pure functional programming in Scala.

It aims to close the gap between impure code that it's needed to develop production grade software with the FP goodies available on cats.

It embraces the tagless final pattern to build modular components that can be mixed and manipulated in a monadic style using for comprehension.

Leveraging cats-effect to suspend side-effects without making any compromise about effect it self.

In practice one can use any implementation of Effect[F] type class - being F the effect class as cats IO, Monix Task – thus providing flexibility to developer to choose which one fits best its own application.

The intention of the type classes found in this library it's to integrate out of the box with other libraries that uses the tagless final approach: for instance any Typelevel projects doobie, http4s, pureconfig, fs2;

and/or with any other library once the it's lifted into a Effect.

Install

The only hard dependency for this project are the cats and cats-effect libraries, and these must be provided by the user:

scalacOptions += "-Ypartial-unification"

libraryDependencies += "org.typelevel"     %% "cats-core"    % "1.1.0"
libraryDependencies += "org.typelevel"     %% "cats-effect"  % "0.10.1"
libraryDependencies += "com.github.hilios" %% "ftypes-log"   % "0.1.0-SNAPSHOT"
libraryDependencies += "com.github.hilios" %% "ftypes-kamon" % "0.1.0-SNAPSHOT"

License

Copyright (c) 2018 Edson Hilios. This is a free software is licensed under the MIT License.

  • Edson Hilios. Mail me: edson (at) hilios (dot) com (dot) br

About

A collection of opinionated effectful types for building FP programs in Scala.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages