orc.ast.extended.type
Class LambdaType

java.lang.Object
  extended by orc.ast.extended.type.Type
      extended by orc.ast.extended.type.LambdaType

public class LambdaType
extends Type

A lambda type: lambda[X,...,X](T,...,T) :: T

Author:
dkitchin

Field Summary
 java.util.List<java.util.List<Type>> argTypes
           
 Type resultType
           
 java.util.List<java.lang.String> typeParams
           
 
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
 

Field Detail

typeParams

public java.util.List<java.lang.String> typeParams

argTypes

public java.util.List<java.util.List<Type>> argTypes

resultType

public Type resultType
Constructor Detail

LambdaType

public LambdaType(java.util.List<java.util.List<Type>> argTypes,
                  Type resultType,
                  java.util.List<java.lang.String> typeParams)
Method Detail

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