One branch returns `child` and another doesn't?