'Regra de compatibilidade de void especial' do Lambda - expressão de instrução

Estou lendo o Java 8 em ação. Na seção 3.5.2, há um parágrafo sobre 'regra de compatibilidade de vozes':

Se um lambda tem uma expressão de declaração como corpo, é compatível com um descritor de função que retorna nulo (desde que a lista de parâmetros também seja compatível). Por exemplo, as duas linhas a seguir são legais, mesmo que o método add de uma List retorne um valor booleano e não seja nulo conforme o esperado no contexto do Consumidor (T -> nulo):

// Predicate has a boolean return 
Predicate<String> p = s -> list.add(s); 
// Consumer has a void return 
Consumer<String> b = s -> list.add(s);

Como você descreveria a 'expressão de declaração' em geral? Eu pensei que era uma declaração ou expressão. Além disso, essa regra de compatibilidade de nulos não é 100% clara para mim, você pode pensar em outros exemplos?

questionAnswers(3)

yourAnswerToTheQuestion