Quiero llamar al método pure
de Scalaz para poner un valor en la mónada de estado. Las siguientes obras:En Scala, ¿hay una forma abreviada de reducir la aridad de un tipo genérico?
type IntState[A] = State[Int, A]
val a = "a".pure[IntState]
a(1)
(Int, java.lang.String) = (1,a)
También puede eliminar el tipo de alias (gracias de Scalaz Pure.scala):
val a = "a".pure[({type T[A]=State[Int,A]})#T]
a(1)
(Int, java.lang.String) = (1,a)
Pero eso es muy torpe. ¿Hay una manera más corta de sintetizar un tipo como este? Al igual que la sintaxis marcador de posición para los literales de la función, ¿hay algo como:
"a".pure[State[Int, *]]
No creo que Scala tenga dicho azúcar sintáctico, ya que [la aplicación de tipo parcial citada por michid] (http://stackoverflow.com/questions/7045967/what-are-type-projections-useful-for/7046860#7046860) como un ejemplo de la utilidad de las proyecciones de tipo. –