package com.biosimilarity.lift.lib.scalar.Absyn; // Java Package generated by the BNF Converter.

public class Abstraction extends LambdaExpr {
  public final ListVariableExpr listvariableexpr_;
  public final Program program_;

  public Abstraction(ListVariableExpr p1, Program p2) { listvariableexpr_ = p1; program_ = p2; }

  public <R,A> R accept(com.biosimilarity.lift.lib.scalar.Absyn.LambdaExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); }

  public boolean equals(Object o) {
    if (this == o) return true;
    if (o instanceof com.biosimilarity.lift.lib.scalar.Absyn.Abstraction) {
      com.biosimilarity.lift.lib.scalar.Absyn.Abstraction x = (com.biosimilarity.lift.lib.scalar.Absyn.Abstraction)o;
      return this.listvariableexpr_.equals(x.listvariableexpr_) && this.program_.equals(x.program_);
    }
    return false;
  }

  public int hashCode() {
    return 37*(this.listvariableexpr_.hashCode())+this.program_.hashCode();
  }


}
