orc.ast.extended.type
Class LambdaType
java.lang.Object
orc.ast.extended.type.Type
orc.ast.extended.type.LambdaType
public class LambdaType
- extends Type
A lambda type: lambda[X,...,X](T,...,T) :: T
- Author:
- dkitchin
Fields inherited from class orc.ast.extended.type.Type |
BOT, TOP |
Constructor Summary |
LambdaType(java.util.List<java.util.List<Type>> argTypes,
Type resultType,
java.util.List<java.lang.String> typeParams)
|
Method Summary |
Type |
simplify()
Convert this extended AST type into a simple AST type. |
java.lang.String |
toString()
|
LambdaType |
uncurry()
From a lambda type with multiple type argument groups:
lambda[X](T)(T)(T) :: T
create a chain of lambdas each with a single such group:
lambda[X](T) :: (lambda(T) :: (lambda(T) :: T))
If there is only one type group, just return an identical copy. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
typeParams
public java.util.List<java.lang.String> typeParams
argTypes
public java.util.List<java.util.List<Type>> argTypes
resultType
public Type resultType
LambdaType
public LambdaType(java.util.List<java.util.List<Type>> argTypes,
Type resultType,
java.util.List<java.lang.String> typeParams)
simplify
public Type simplify()
- Description copied from class:
Type
- Convert this extended AST type into a simple AST type.
- Specified by:
simplify
in class Type
uncurry
public LambdaType uncurry()
- From a lambda type with multiple type argument groups:
lambda[X](T)(T)(T) :: T
create a chain of lambdas each with a single such group:
lambda[X](T) :: (lambda(T) :: (lambda(T) :: T))
If there is only one type group, just return an identical copy.
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object