#ifndef EMPATHY_IR_HELPERS_H
#define EMPATHY_IR_HELPERS_H
namespace empathy::ir
{
static inline auto VecSize( const Term& vectorTerm )
{
return get< pvec >( vectorTerm )->terms().size();
}
template< typename... T >
Term AppendToVectorTerm( const Term& vectorTerm, T&&... t );
extern Term ConcatenateVectorTerms( const Term& vector1, const Term& vector2 );
extern Term TakeVectorTerm( const Term& vectorTerm, size_t n );
extern Term DropVectorTerm( const Term& vectorTerm, size_t n );
template< typename F >
void ForEachInVectorTerm( const Term& vectorTerm, F&& func );
template< typename F >
bool ForEachInVectorTerms( const Term& vectorTerm1, const Term& vectorTerm2, F&& func );
}
#endif