Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import language.experimental.macros
- import language.implicitConversions
- import magnolia._
- trait MyTypeclass[T] {
- def f(t: T): String
- }
- object MyTypeclass {
- type Typeclass[T] = MyTypeclass[T]
- implicit def deriveOption[A](implicit ev: Typeclass[A]): Typeclass[Option[A]] = (t: Option[A]) => ???
- def combine[T](ctx: CaseClass[Typeclass, T]): Typeclass[T] = (t: T) => ???
- def dispatch[T](ctx: SealedTrait[Typeclass, T]): Typeclass[T] = (t: T) => ???
- implicit def gen[T]: Typeclass[T] = macro Magnolia.gen[T]
- }
- object Test extends App {
- case class SomeClass(id: Option[Another])
- case class Another(b: String)
- MyTypeclass.gen[List[SomeClass]]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement