protected function newColumn($name, array $options): ColumnInterface
    {
        // Special case of CompoundColumnType which requires that child columns
        // are set afterwards. Whenever you extend this class, make sure to honor this
        // special use-case.
        if (null === $this->compound) {
            $this->compound = $this->isCompound();
        }

        if ($this->compound) {
            return new CompoundColumn($name, $this, $options);
        }

        return new Column($name, $this, $options);
    }