type Foo = object -> no GC, stack object, can use destructors type Foo = ptr object -> manual memory management type Foo = ref object -> "GC", refcounting to be exact.