<slide>
<title>Contravariant Argument Types</title>

<example result="0">
&lt;?php
class 🐖pig {}
class 🐗boar extends 🐖 {}

class Asterix
{
	public function hunt(🐖pig $animal) {}
}

class Gauls extends Asterix
{
	public function hunt(🐗boar $animal) {}
}
?>
</example>

<blurb class="error">Warning: Declaration of Gauls::hunt(🐗boar $animal) should be compatible with Asterix::hunt(🐖pig $animal)</blurb>
<break lines="2"/>
<blurb class="center">Arguments types are *contra-variant*:<br/><br/>~they can *not* accept a narrower type~</blurb>
</slide>

