Skip to content

Instantly share code, notes, and snippets.

View yasuabe's full-sized avatar

Yasuyuki Abe yasuabe

View GitHub Profile
@yasuabe
yasuabe / monadChronicle.sc
Created April 7, 2019 15:15
sample code for Cats MTL MonadChronicle
import cats.Monad
import cats.data.{Chain, Ior}
import cats.mtl.MonadChronicle
import cats.syntax.applicative._
import cats.syntax.functor._
import cats.mtl.instances.chronicle._
import cats.syntax.traverse._
import cats.instances.list._
def func[F[_]: Monad](n: Int)(implicit F: MonadChronicle[F, Chain[Int]]): F[Int] =
@yasuabe
yasuabe / monadState.sc
Created April 7, 2019 15:14
sample code for Cats MTL MonadState
import cats.Monad
import cats.data.StateT
import cats.effect.{IO, Sync}
import cats.mtl.MonadState
import cats.syntax.show._
import cats.instances.int._
import cats.syntax.flatMap._
import cats.syntax.functor._
import cats.syntax.applicative._
import cats.syntax.traverse._
@yasuabe
yasuabe / applicativeAsk.sc
Created April 7, 2019 15:11
sample code for Cats MTL ApplicativeAsk
import cats.FlatMap
import cats.data.Kleisli
import cats.syntax.flatMap._
import cats.syntax.functor._
import cats.effect.Sync
import cats.mtl.ApplicativeAsk
import monix.eval.Task
type Config = Map[String, String]
@yasuabe
yasuabe / functorTell.sc
Created April 7, 2019 15:08
sample code for Cats MTL FunctorTell
import cats.FlatMap
import cats.data.{Chain, WriterT}
import cats.mtl.FunctorTell
import cats.syntax.flatMap._
import cats.syntax.functor._
import cats.data.Chain._
import cats.effect.{IO, Sync}
import cats.mtl.instances.listen._
import Chain.one
@yasuabe
yasuabe / Main.scala
Last active May 19, 2021 00:12
main for composed behavior represented in module pattern with ZIO
import scalaz.zio.console.Console
import scalaz.zio._
// "org.scalaz" %% "scalaz-zio" % "1.0-RC3"
sealed trait AppError
case object NoValue extends AppError
trait Logger { val logger: Logger.Service }
object Logger {
@yasuabe
yasuabe / SimpleMain.scala
Created March 31, 2019 08:36
simple test main for ZIO Environment
import scalaz.zio.{App, IO, ZIO}
import scala.io.StdIn
// "org.scalaz" %% "scalaz-zio" % "1.0-RC3"
object SimpleMain extends App {
sealed trait AppError
case object NoValue extends AppError
def valueOf(key: String): ZIO[Map[String, String], AppError, String] =
@yasuabe
yasuabe / first_doobie_test_build.sbt
Created March 26, 2019 22:36
build.sbt for doobie test
name := "doobie_test"
version := "0.1"
scalaVersion := "2.12.8"
resolvers += Resolver.sonatypeRepo("snapshots")
scalacOptions ++= Seq(
"-encoding", "utf8",
@yasuabe
yasuabe / MyServiceSpec.scala
Created March 26, 2019 22:23
simple spec test for Doobie
package withhttp4s
import cats.effect.{ContextShift, IO}
import doobie.specs2.IOChecker
import org.specs2.mutable.Specification
object MyServiceSpec extends Specification with IOChecker {
import scala.concurrent.ExecutionContext.Implicits.global
implicit val cs: ContextShift[IO] = IO.contextShift(global)
@yasuabe
yasuabe / ServerMain.scala
Created March 26, 2019 22:20
simple http4s server program for examining Doobie
package withhttp4s
import cats.effect.{IO, IOApp}
import cats.implicits._
import org.http4s.{HttpApp, HttpRoutes}
import org.http4s.implicits._
import org.http4s.server.blaze._
import cats.effect._
import doobie._
import doobie.implicits._
@yasuabe
yasuabe / SimpleSampleMain.scala
Created March 26, 2019 22:16
simple program for examining Doobie with Monix Task
package doobie_top
import doobie._
import doobie.implicits._
import cats.effect._
import monix.eval.{Task, TaskApp}
case class Country(code: String, name: String, population: Long)
object SimpleSampleMain extends TaskApp {