mod count;
mod in_array;
mod key_exists;
mod shapes;
pub(super) use count::{
extract_array_key_first_or_last_arg, extract_array_key_first_or_last_static_prop_arg,
extract_count_arg, extract_count_static_prop_arg, narrow_array_count_comparison,
narrow_array_count_condition, narrow_array_key_first_or_last_null,
narrow_prop_array_count_comparison, narrow_prop_array_key_first_or_last_null,
narrow_static_prop_array_count_comparison, narrow_static_prop_array_key_first_or_last_null,
};
pub(super) use in_array::{
extract_haystack_type, haystack_admits_null_loosely, in_array_loose_narrowing_is_safe,
narrow_in_array_condition, narrow_to_haystack_values, strip_haystack_null,
};
pub(super) use key_exists::narrow_array_key_exists_condition;
pub(super) use shapes::{
array_access_base_target, get_shape_path_type, narrow_array_emptiness_condition,
narrow_container_non_null_non_false, narrow_empty_shape_key, narrow_isset_shape_key,
narrow_isset_shape_key_false, resolve_shape_base_current_type, set_shape_base_narrowed,
set_shape_path, ShapeBase,
};