Skip to content

Instantly share code, notes, and snippets.

@julien-truffaut
Created March 8, 2016 20:50
Show Gist options
  • Save julien-truffaut/45ae3ceab4113651c8a8 to your computer and use it in GitHub Desktop.
Save julien-truffaut/45ae3ceab4113651c8a8 to your computer and use it in GitHub Desktop.
Algebra encoding
sealed trait Alg1[A]
case class Foo1(s: String) extends Alg1[Int]
case object Bar1 extends Alg1[Boolean]
sealed trait Alg2[A]
case class Foo2[A](s: String, f: String => A) extends Alg2[A]
case class Bar[A](f: Boolean => A) extends Alg2[A]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment