This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Witnesses that type [[T]] is the [[N]]-dimensional nested array of type [[A]]. | |
* @author Tongfei Chen | |
*/ | |
@implicitNotFound("Cannot prove that ${T} is the ${N}-dimensional JVM array of ${A}.") | |
trait Nest[T, A, N <: Nat] { | |
def classTagA: ClassTag[A] | |
def classTagT: ClassTag[T] | |
def newArray(ns: Int*): T | |
def dim: Int |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import scala.language.experimental.macros | |
import scala.language.higherKinds | |
/** | |
* @author Tongfei Chen | |
*/ | |
trait ImplicitSummoner1[Ev[_]] { | |
/** | |
* Retrieves the implicit algebraic structure implicitly defined in this scope. | |
* @param ev The implicit object to be retrieved |