@aEverr says correcet , your concept is recursive make no sense. type CircleShape = concept a buildCircleProps(a) proc buildCircleProps[T](a: T) = discard proc buildCircleProps(a: CircleShape) = ... Run
Wrong ! Remove buildCircleProps from concept and generic buildCircleProps . buildCircleProps defined on CircleShape enough .