public function guessIdentifier(callable $fn = null)
    {
        static $guesser;
        static $table;
        if (isset($table)) {
            return $table;
        }
        if (isset($fn)) {
            $guesser = $fn;
        }
        if (!isset($guesser)) {
            $guesser = function ($class) {
                $class = preg_replace('@\\\\?Model$@', '', $class);
                return Helper::normalize($class);
            };
        }
        $class = get_class($this);
        if (strpos($class, '@anonymous') !== false) {
            $class = (new ReflectionClass($this))->getParentClass()->name;
        }
        return $guesser($class);
    }