Skip to content

Instantly share code, notes, and snippets.

@gigiigig
gigiigig / gist:9d5c17ba848414e4804f
Created October 2, 2014 23:19
2 level monad transformer
import scalaz._
import Scalaz._
object console extends App {
type ListTOption[A] = ListT[Option, A]
val v1: Option[List[\/[String, Int]]] = 1.right[String].point[List].point[Option]
val v2: Option[List[\/[String, Int]]] = 2.right[String].point[List].point[Option]
@gigiigig
gigiigig / console.scala
Last active August 29, 2015 14:06
Type class DI
import scala.language.higherKinds
import scala.language.implicitConversions
import scalaz._
import Scalaz._
import shapeless._
object console {
case class ServiceA(name: String)
case class ServiceB(name: String, sa: ServiceA)