aboutsummaryrefslogtreecommitdiffstats
path: root/tuplr.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'tuplr.hpp')
-rw-r--r--tuplr.hpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/tuplr.hpp b/tuplr.hpp
index 37a09db..69f6bfd 100644
--- a/tuplr.hpp
+++ b/tuplr.hpp
@@ -297,7 +297,7 @@ struct AType : public ATuple {
bool concrete() const {
switch (kind) {
case VAR: return false;
- case PRIM: return true;
+ case PRIM: return at(0)->str() != "Nothing";
case EXPR:
FOREACH(const_iterator, t, *this) {
AType* kid = (*t)->to<AType*>();
@@ -576,9 +576,9 @@ struct Engine {
const AType* retT, const ATuple& argsT,
const vector<string> argNames=vector<string>()) = 0;
- virtual void finishFunction(CEnv& cenv, CFunction f, CValue ret) = 0;
- virtual void eraseFunction(CEnv& cenv, CFunction f) = 0;
- virtual void writeModule(CEnv& cenv, std::ostream& os) = 0;
+ virtual void finishFunction(CEnv& cenv, CFunction f, const AType* retT, CValue ret) = 0;
+ virtual void eraseFunction(CEnv& cenv, CFunction f) = 0;
+ virtual void writeModule(CEnv& cenv, std::ostream& os) = 0;
virtual const string call(CEnv& cenv, CFunction f, AType* retT) = 0;
};