Polymorphic Classes

Polymorphic classes are defined using withTypeParams(...):

(CLASSDEF("Queue") withTypeParams(TYPEVAR("T"))
  withParams(VAL("leading", "T"), VAL("trailing", "T")): Tree)

This prints as:

class Queue[T](val leading: List[T], val trailing: List[T])