P∀scal: Concise syntax for polymorphic values


#1

P∀scal is a compiler plugin that provides more concise syntax for creating polymorphic values (in the usual Scala encoding as objects with a single generic method).

The syntax

Λ[α](t): T

is meant to be analogous to System F’s

Λα. t : T

(where T is of the form ∀α. U)

and is rewritten to

new T { def apply[α] = t }

P∀scal generalizes kind-projector's polymorphic lambdas in several ways.

Project site: https://github.com/TomasMikula/pascal