hydra.mantle.TermVariant Maven / Gradle / Ivy
package hydra.mantle;
import java.io.Serializable;
/**
* The identifier of a term expression constructor
*/
public abstract class TermVariant implements Serializable {
public static final hydra.core.Name NAME = new hydra.core.Name("hydra/mantle.TermVariant");
private TermVariant () {
}
public abstract R accept(Visitor visitor) ;
public interface Visitor {
R visit(Annotated instance) ;
R visit(Application instance) ;
R visit(Function instance) ;
R visit(Let instance) ;
R visit(List instance) ;
R visit(Literal instance) ;
R visit(Map instance) ;
R visit(Optional instance) ;
R visit(Product instance) ;
R visit(Record instance) ;
R visit(Set instance) ;
R visit(Stream instance) ;
R visit(Sum instance) ;
R visit(Union instance) ;
R visit(Variable instance) ;
R visit(Wrap instance) ;
}
public interface PartialVisitor extends Visitor {
default R otherwise(TermVariant instance) {
throw new IllegalStateException("Non-exhaustive patterns when matching: " + (instance));
}
default R visit(Annotated instance) {
return otherwise((instance));
}
default R visit(Application instance) {
return otherwise((instance));
}
default R visit(Function instance) {
return otherwise((instance));
}
default R visit(Let instance) {
return otherwise((instance));
}
default R visit(List instance) {
return otherwise((instance));
}
default R visit(Literal instance) {
return otherwise((instance));
}
default R visit(Map instance) {
return otherwise((instance));
}
default R visit(Optional instance) {
return otherwise((instance));
}
default R visit(Product instance) {
return otherwise((instance));
}
default R visit(Record instance) {
return otherwise((instance));
}
default R visit(Set instance) {
return otherwise((instance));
}
default R visit(Stream instance) {
return otherwise((instance));
}
default R visit(Sum instance) {
return otherwise((instance));
}
default R visit(Union instance) {
return otherwise((instance));
}
default R visit(Variable instance) {
return otherwise((instance));
}
default R visit(Wrap instance) {
return otherwise((instance));
}
}
public static final class Annotated extends hydra.mantle.TermVariant implements Serializable {
public Annotated () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Annotated)) {
return false;
}
Annotated o = (Annotated) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Application extends hydra.mantle.TermVariant implements Serializable {
public Application () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Application)) {
return false;
}
Application o = (Application) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Function extends hydra.mantle.TermVariant implements Serializable {
public Function () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Function)) {
return false;
}
Function o = (Function) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Let extends hydra.mantle.TermVariant implements Serializable {
public Let () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Let)) {
return false;
}
Let o = (Let) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class List extends hydra.mantle.TermVariant implements Serializable {
public List () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof List)) {
return false;
}
List o = (List) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Literal extends hydra.mantle.TermVariant implements Serializable {
public Literal () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Literal)) {
return false;
}
Literal o = (Literal) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Map extends hydra.mantle.TermVariant implements Serializable {
public Map () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Map)) {
return false;
}
Map o = (Map) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Optional extends hydra.mantle.TermVariant implements Serializable {
public Optional () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Optional)) {
return false;
}
Optional o = (Optional) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Product extends hydra.mantle.TermVariant implements Serializable {
public Product () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Product)) {
return false;
}
Product o = (Product) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Record extends hydra.mantle.TermVariant implements Serializable {
public Record () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Record)) {
return false;
}
Record o = (Record) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Set extends hydra.mantle.TermVariant implements Serializable {
public Set () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Set)) {
return false;
}
Set o = (Set) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Stream extends hydra.mantle.TermVariant implements Serializable {
public Stream () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Stream)) {
return false;
}
Stream o = (Stream) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Sum extends hydra.mantle.TermVariant implements Serializable {
public Sum () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Sum)) {
return false;
}
Sum o = (Sum) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Union extends hydra.mantle.TermVariant implements Serializable {
public Union () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Union)) {
return false;
}
Union o = (Union) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Variable extends hydra.mantle.TermVariant implements Serializable {
public Variable () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Variable)) {
return false;
}
Variable o = (Variable) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
public static final class Wrap extends hydra.mantle.TermVariant implements Serializable {
public Wrap () {
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Wrap)) {
return false;
}
Wrap o = (Wrap) (other);
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public R accept(Visitor visitor) {
return visitor.visit(this);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy