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.Serializable
A corresponding elimination for an introduction term- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Elimination.List
Eliminates a list using a fold function; this function has the signature b -> [a] -> bstatic class
Elimination.Optional
Eliminates an optional term by matching over the two possible casesstatic interface
Elimination.PartialVisitor<R>
static class
Elimination.Product
Eliminates a tuple by projecting the component at a given 0-indexed offsetstatic class
Elimination.Record
Eliminates a record by projecting a given fieldstatic class
Elimination.Union
Eliminates a union term by matching over the fields of the union.static interface
Elimination.Visitor<R>
static class
Elimination.Wrap
Unwrap a wrapped term
-
Field Summary
Fields Modifier and Type Field Description static Name
FIELD_NAME_LIST
static Name
FIELD_NAME_OPTIONAL
static Name
FIELD_NAME_PRODUCT
static Name
FIELD_NAME_RECORD
static Name
FIELD_NAME_UNION
static Name
FIELD_NAME_WRAP
static Name
TYPE_NAME
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract <R> R
accept(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)
-
-