Heterogeneous return types are gross; it would be more appropriate to return None.