/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

/*
 * Author: pgess <v.melnychenko@xreate.org>
 * Created on June 25, 2018, 3:24 PM
 *
 * \file    interpretation.h
 * \brief   interpretation
 */

#ifndef INTERPRETATION_H
#define INTERPRETATION_H

#include "transcendlayer.h"

namespace xreate{
namespace interpretation{

TypeAnnotation collapseColumn(const std::list<Gringo::Symbol>& symbols);
ExpandedType dereferenceSlaveType(ExpandedType t, const TranscendLayer* transcend);
Expression representTransExpression(const Gringo::Symbol& atom, ExpandedType schemaT, TranscendLayer* transcend);
std::list<Expression> generateAllInstancesInDomain2(const ExpandedType& domainT);

}
}
#endif /* INTERPRETATION_H */

