blob: 1e2c97baf994356c33de40cb3bc2c61ea67be580 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Free[A] {
this match {
case a @ Gosub() => gosub(a.a)(x => gosub(???)(???))
}
def gosub[A, B](a0: Free[A])(f0: A => Any): Free[B] = ???
}
case class Gosub[B]() extends Free[B] {
type C
def a: Free[C] = ???
}
|