orc.ast.simple.type
Class ArrowType

java.lang.Object
  extended by orc.ast.simple.type.Type
      extended by orc.ast.simple.type.ArrowType

public class ArrowType
extends Type

An arrow (lambda) type: lambda[X,...,X](T,...,T) :: T

Author:
dkitchin

Field Summary
 java.util.List<Type> argTypes
           
 Type resultType
           
 java.util.List<TypeVariable> typeParams
           
 
Fields inherited from class orc.ast.simple.type.Type
BOT, TOP
 
Constructor Summary
ArrowType(java.util.List<Type> argTypes, Type resultType, java.util.List<TypeVariable> typeParams)
           
 
Method Summary
 Type convert(Env<TypeVariable> env)
          Convert this syntactic type into an actual type, given an appropriate type context
 Type subst(Type T, FreeTypeVariable X)
          Performs the substitution [T/X], replacing occurrences of the free type variable X with the type T (which could be any type, including another variable).
 java.lang.String toString()
           
 
Methods inherited from class orc.ast.simple.type.Type
convertAll, subMap, substAll, substMaybe, subvar
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

typeParams

public java.util.List<TypeVariable> typeParams

argTypes

public java.util.List<Type> argTypes

resultType

public Type resultType
Constructor Detail

ArrowType

public ArrowType(java.util.List<Type> argTypes,
                 Type resultType,
                 java.util.List<TypeVariable> typeParams)
Method Detail

convert

public Type convert(Env<TypeVariable> env)
             throws TypeException
Description copied from class: Type
Convert this syntactic type into an actual type, given an appropriate type context

Specified by:
convert in class Type
Parameters:
env - The type environment, used in content addressable mode to find the appropriate deBruijn index of a type variable.
Returns:
A new node.
Throws:
TypeException

subst

public Type subst(Type T,
                  FreeTypeVariable X)
Description copied from class: Type
Performs the substitution [T/X], replacing occurrences of the free type variable X with the type T (which could be any type, including another variable).

Specified by:
subst in class Type
Parameters:
T - The replacing type
X - The free type variable whose occurrences will be replaced
Returns:
A new copy of the type with the substitution performed

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object