fn get_all_reachable_polymorphic_targets_inclusive(
    target_expr: &Expr,
    target_type: &Option<String>,
    target_generic_replacement: Option<GenericVariableMappingContext>,
    visited_targets: Vec<String>
) -> Result<Vec<PolymorphicTarget>, Error>