I want to call Scalaz\'s pure method to put a value into the State monad. The following works:
pure
type IntState[A] = State[Int, A] val a = \"a\".pure[I
For concise partial type application (arity-2) in Scala, you can infix type notation as followings.
type ![F[_, _], X] = TF { type ![Y] = F[X, Y] } "a".pure[(State!Int)# !]
Note that we can infix notation for two arity type constructor (or type alias).