/// Constructs a Program from a Module, with specialization constants.
Program(const Module &, const std::map<std::string, int> & = std::map<std::string, int>());
void add_stages(const Module &, const std::map<std::string, int> & = std::map<std::string, int>());
private:
/// Constructs a Program from a Module, with specialization constants.
Program(const Module &, const std::map<std::string, int> & = std::map<std::string, int>());
void add_stages(const Module &, const std::map<std::string, int> & = std::map<std::string, int>());
private: