Skip to content

Instantly share code, notes, and snippets.

View jcazevedo's full-sized avatar

Joao Azevedo jcazevedo

View GitHub Profile
@jcazevedo
jcazevedo / gist:3849885
Created October 7, 2012 23:00 — forked from anonymous/gist:3847798
Simple Non-Polymorphic Stack Machine
import scala.util.Random
object PStack {
type Any = PStack[_, _]
}
sealed trait PStack[A, B <: PStack.Any] {
def pop2: Option[(A, B)]
def push0[C](elem: C): PStack[C, PStack[A, B]] =
NonEmptyPStack(elem, this)