Package hydra.core
Class Elimination
- java.lang.Object
-
- hydra.core.Elimination
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
Elimination.List,Elimination.Optional,Elimination.Product,Elimination.Record,Elimination.Union,Elimination.Wrap
public abstract class Elimination extends java.lang.Object implements java.io.SerializableA corresponding elimination for an introduction term- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classElimination.ListEliminates a list using a fold function; this function has the signature b -> [a] -> bstatic classElimination.OptionalEliminates an optional term by matching over the two possible casesstatic interfaceElimination.PartialVisitor<R>static classElimination.ProductEliminates a tuple by projecting the component at a given 0-indexed offsetstatic classElimination.RecordEliminates a record by projecting a given fieldstatic classElimination.UnionEliminates a union term by matching over the fields of the union.static interfaceElimination.Visitor<R>static classElimination.WrapUnwrap a wrapped term
-
Field Summary
Fields Modifier and Type Field Description static NameFIELD_NAME_LISTstatic NameFIELD_NAME_OPTIONALstatic NameFIELD_NAME_PRODUCTstatic NameFIELD_NAME_RECORDstatic NameFIELD_NAME_UNIONstatic NameFIELD_NAME_WRAPstatic NameTYPE_NAME
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract <R> Raccept(Elimination.Visitor<R> visitor)
-
-
-
Field Detail
-
TYPE_NAME
public static final Name TYPE_NAME
-
FIELD_NAME_LIST
public static final Name FIELD_NAME_LIST
-
FIELD_NAME_OPTIONAL
public static final Name FIELD_NAME_OPTIONAL
-
FIELD_NAME_PRODUCT
public static final Name FIELD_NAME_PRODUCT
-
FIELD_NAME_RECORD
public static final Name FIELD_NAME_RECORD
-
FIELD_NAME_UNION
public static final Name FIELD_NAME_UNION
-
FIELD_NAME_WRAP
public static final Name FIELD_NAME_WRAP
-
-
Method Detail
-
accept
public abstract <R> R accept(Elimination.Visitor<R> visitor)
-
-