text: #ifndef __FMA_CORE_CLASS_H__
  #define __FMA_CORE_CLASS_H__
  
  #include <fma/types/Class.hpp>
  #include <fma/types/RootModule.hpp>
  
  namespace FMA {
  namespace core {
  
  class ClassClass : public types::Class {
  public:
    static types::ClassPtr create(const types::RootModulePtr &root, const types::ClassPtr &Object);
  
    // STATIC
    static interpret::ResultPtr newInstance(const interpret::ContextPtr &context, const interpret::GroupedParameterList &parameter);
    static interpret::ResultPtr name(const interpret::ContextPtr &context, const interpret::GroupedParameterList &parameter);
    static interpret::ResultPtr class_eval(const interpret::ContextPtr &context, const interpret::GroupedParameterList &parameter);
    static interpret::ResultPtr instance_eval(const interpret::ContextPtr &context, const interpret::GroupedParameterList &parameter);
    static interpret::ResultPtr include(const interpret::ContextPtr &context, const interpret::GroupedParameterList &parameter);
    static interpret::ResultPtr define_method(const interpret::ContextPtr &context, const interpret::GroupedParameterList &parameter);
    static interpret::ResultPtr define_prototype_method(const interpret::ContextPtr &context, const interpret::GroupedParameterList &parameter);
  };
  
  }
  }
  
  #endif
  