Skip to content

Instantly share code, notes, and snippets.

View lewismj's full-sized avatar

Michael Lewis lewismj

  • London
View GitHub Profile
@lewismj
lewismj / Lib.scala
Created November 6, 2017 01:59 — forked from SystemFw/Lib.scala
Shapeless: derive JDBC Results for arbitrary case classes
import shapeless._ // requires.shapeless
import cats._, implicits._, data.Kleisli // requires.cats
import cats.sequence._ //requires kittens
import cats.effect.IO //requires cats-effect
// ofc, uses "-Ypartial-unification" and kind-projector
case class Result() // replace with the JDBC equivalent
case class DB(val r: Result) {
def nextInt: IO[Int] = ??? //IO(g.nextInt)