Есть ли в Scala сокращение для уменьшения арности универсального типа?

Я хочу вызвать метод Скалаза чистый , чтобы поместить значение в монаду состояния. Следующие работы:

type IntState[A] = State[Int, A]
val a = "a".pure[IntState]
a(1)
    (Int, java.lang.String) = (1,a)

Я также могу удалить псевдоним типа (спасибо Pure.scala от Scalaz):

val a = "a".pure[({type T[A]=State[Int,A]})#T]
a(1)
    (Int, java.lang.String) = (1,a)

Но это очень неуклюже. Есть ли более короткий способ синтезировать такой тип? Подобно синтаксису заполнителя для функциональных литералов, есть ли что-то вроде:

"a".pure[State[Int, *]]
11
задан Luigi a.k.a. Rhys 4 October 2011 в 15:39
поделиться