Type list algorithms in Traits/detail/Algorithm.hpp should operate on type containers instead of bare type variadic packs to allow for more fluent composability of algorithms.
For example, with the current design its hard to sort a type list and then transform it. Since the sharp::Sort trait returns a std::tuple<> which cannot be used as an argument to sharp::Transform
Type list algorithms in
Traits/detail/Algorithm.hpp
should operate on type containers instead of bare type variadic packs to allow for more fluent composability of algorithms.For example, with the current design its hard to sort a type list and then transform it. Since the
sharp::Sort
trait returns astd::tuple<>
which cannot be used as an argument tosharp::Transform