<slide>
<title>Invariant Property Types</title>

Covariant Returns and Contravariant Parameters — Levi Morrison
https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters —

typed properties are invariant

<example return="1">
&lt;?php
class 🌐sphere {}
class 🌏planet extends 🌐sphere {}

class Copernicus
{
	public 🌐sphere $gravity;
}

class Galileo extends Copernicus
{
	public 🌏planet $gravity;
}
?>
</example>

<blurb class="error">Fatal error: Type of Galileo::$gravity must be 🌐sphere (as in class Copernicus)</blurb>
<break lines="2"/>
<blurb class="center">Property types are *in-variant*:<br/><br/>~they can *not* represent a more specific or a more broad type~</blurb>
</slide>

