Functions return types should not change depending on parameters

Functions should return None, return SomeType | None or SomeType . SomeType can be a tuple, but that tuple should always have the same number of arguments. Flags like calculate_cost(return_as_float=True) should not exist. If you must have multiple versions of the same function with slightly different return signatures, I should be able to access everything in a typesafe way. This either means there should be