public function findPreviousToken($matcher)
    {
        $previousToken = $this->previousToken;
        while (null !== $previousToken) {
            if ($previousToken->matches($matcher)) {
                return new Some($previousToken);
            }

            $previousToken = $previousToken->previousToken;
        }

        return None::create();
    }