contract Parent {
	function theMeaningOfLife() public pure virtual returns (uint256) {
		return 42;
	}
}

contract Child is Parent {

	// INVALID: has different arguments
	function theMeaningOfLife(uint256 x) public pure override returns (uint256) {
		return 42 + x;
	}

	// INVALID: has different return type
	function theMeaningOfLife(uint256 x) public pure override returns (bool) {
		return true;
	}

	// INVALID: has different name
	function theMeaningOfLif3(uint256 x) public pure override returns (uint256) {
		return 42;
	}
}