text: #ifndef STAN_LANG_AST_FUN_RETURNS_TYPE_HPP
  #define STAN_LANG_AST_FUN_RETURNS_TYPE_HPP
  
  #include <stan/lang/ast/type/bare_expr_type.hpp>
  #include <stan/lang/ast/node/statement.hpp>
  #include <ostream>
  
  namespace stan {
  namespace lang {
  
  /**
   * Return true if the specified statement is a return statement
   * returning an expression of the specified type, otherwise return
   * false and write an error message to the specified error stream.
   *
   * @param[in] return_type expected type of returned expression
   * @param[in] statement statement to test
   * @param[in, out] error_msgs stream to which error messages are
   * written
   * @return true if the specified statement is a return statement
   * with a return expression of the specified type
   */
  bool returns_type(const bare_expr_type& return_type, const statement& statement,
                    std::ostream& error_msgs);
  
  }  // namespace lang
  }  // namespace stan
  #endif
  