How does cast work with Set Returning Functions (SRF) like generate_series?
Cast the actual value, not the set.

SELECT v::date
FROM generate_series('2018-01-01'::date, '2019-01-01'::date, '1 day') as t(v);