#pragma once

#include <concepts>

namespace eng {

template <typename F, typename T>
concept UnaryFunc = std::invocable<F, T>;

template <typename T, auto F> struct Deleter {
  void operator()(T *x) const { F(x); }
};

} // namespace eng