Code Generation
Isabelle can generate code for ML, Haskell, Scala and OCaml
Scala
abstract sealed class list[A]
final case class Nila[A]() extends list[A]
final case class Cons[A](a: A, b: list[A]) extends list[A]
def append[A](x0: list[A], xs: list[A]): list[A] = (x0, xs) match {
case (Nila(), xs) => xs
case (Cons(y, ys), xs) => Cons[A](y, append[A](ys, xs))
}
12