def apply(c: Context)(value: c.Expr[Int]): c.Expr[PosInt] = {
val notValidMsg = Resources.notValidPosInt
val notLiteralMsg = Resources.notLiteralPosInt
import c.universe._
ensureValidIntLiteral(c)(value, notValidMsg, notLiteralMsg) { i => i > 0 }
reify { PosInt.from(value.splice).get }
}