package edu.stanford.nlp.sempre.tables.lambdadcs;
import edu.stanford.nlp.sempre.*;
import fig.basic.LispTree;
public interface PairList {
// ============================================================
// Representation
// ============================================================
public String toString();
public LispTree toLispTree();
public PairListValue toValue();
// ============================================================
// Getter
// ============================================================
public UnaryDenotation domain();
public UnaryDenotation range();
public UnaryDenotation get(Value key);
public UnaryDenotation inverseGet(Value value);
// ============================================================
// Operations
// ============================================================
public PairList aggregate(AggregateFormula.Mode mode);
public PairList filter(UnaryDenotation upperBound, UnaryDenotation domainUpperBound);
public PairList reverse();
public UnaryDenotation joinOnKey(UnaryDenotation keys);
public UnaryDenotation joinOnValue(UnaryDenotation values);
public ExplicitPairList explicitlyFilterOnKey(UnaryDenotation keys);
public ExplicitPairList explicitlyFilterOnValue(UnaryDenotation values);
}