# Issue 88 type BaseClass[V] = object of RootObj b: V proc new[V](t: typedesc[BaseClass], v: V): BaseClass[V] = BaseClass[V](b: v) proc baseMethod[V](v: BaseClass[V]): V = v.b proc overridedMethod[V](v: BaseClass[V]): V = v.baseMethod type ChildClass[V] = object of BaseClass[V] c: V proc new[V](t: typedesc[ChildClass], v1, v2: V): ChildClass[V] = ChildClass[V](b: v1, c: v2) proc overridedMethod[V](v: ChildClass[V]): V = v.c let c = ChildClass[string].new("Base", "Child") assert c.baseMethod == "Base" assert c.overridedMethod == "Child"