final object RecType

Constructors

Members

def apply ( parentExp: RecType => Type ) ( implicit ctx: Context ) : RecType

Create a RecType, normalizing its contents. This means:

  1. Nested Rec types on the type's spine are merged with the outer one.
  2. Any refinement of the form type T = z.T on the spine of the type where z refers to the created rec-type is replaced by type T. This avoids infinite recursons later when we try to follow these references. TODO: Figure out how to guarantee absence of cycles of length > 1

Create a RecType, normalizing its contents. This means:

  1. Nested Rec types on the type's spine are merged with the outer one.
  2. Any refinement of the form type T = z.T on the spine of the type where z refers to the created rec-type is replaced by type T. This avoids infinite recursons later when we try to follow these references. TODO: Figure out how to guarantee absence of cycles of length > 1
def closeOver ( parentExp: RecType => Type ) ( implicit ctx: Context ) : Type