adamc@239: con id = fn t :: Type => t adamc@239: con id2 = fn (t :: Type) => id t adamc@239: con id3 = fn t => id2 t adamc@239: adamc@239: con pair = fn (t :: Type) (u :: Type) => (t, u) adamc@239: con pair2 = fn t u => pair t u adamc@239: con pair3 = fn t (u :: Type) => pair2 t u adamc@240: adamc@240: con id4 (t :: Type) = t adamc@240: con id5 (t :: Type) :: Type = id4 t adamc@240: con id6 t :: Type = id5 t adamc@240: adamc@240: con pair4 t (u :: Type) = pair3 t u adamc@240: con pair5 t (u :: Type) :: (Type * Type) = pair4 t u