Skip to content

Instantly share code, notes, and snippets.

@yuroyoro
Created December 13, 2010 06:33
Show Gist options
  • Save yuroyoro/738722 to your computer and use it in GitHub Desktop.
Save yuroyoro/738722 to your computer and use it in GitHub Desktop.
// import ModelImplicitly._
// modelOf[AbstractReadOnlyModel].as{"foo"}
object ModelImplicitly{
trait ModelBuilder[A[X] <: IModel[X]] {
def as[B](f: => B): A[B]
}
implicit object AbstractReadOnlyModelBuilder extends
ModelBuilder[AbstractReadOnlyModel]{
def as[B](f: => B) = new AbstractReadOnlyModel[B]{
def getObject = f
}
}
def modelOf[A[B] <: IModel[B] :ModelBuilder]:ModelBuilder[A] = {
implicitly[ModelBuilder[A]]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment