CREATE FUNCTION fun_cast(anycompatiblearray, anyrange) RETURNS anymultirange
AS $$
SELECT range_agg(t.x) FROM (SELECT unnest($1) x) t;
$$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE;
WITH i AS (
SELECT ARRAY[
daterange('2023-01-01', '2023-02-01'),
daterange('2023-05-01', '2023-09-01')
]::daterange[] x
)
SELECT fun_cast(i.x, i.x[0]) from i;