template<template<class> class Container, class T, invocable<T> Fn> Container<invoke_result_t<Fn, T> > map(Container<T> container, Fn fn) { return to<Container>(transform(container, fn)); }
Whether that counts as HK types, I'll leave it to others to discuss.
Whether that counts as HK types, I'll leave it to others to discuss.