# Hierarchy For All Packages

Package Hierarchies:

- jif,
- jif.ast,
- jif.bin,
- jif.extension,
- jif.lang,
- jif.net,
- jif.parse,
- jif.runtime,
- jif.translate,
- jif.types,
- jif.types.hierarchy,
- jif.types.label,
- jif.types.principal,
- jif.visit

## Class Hierarchy

- java.lang.Object
  - polyglot.ast.AbstractDelFactory_c (implements polyglot.ast.DelFactory)
    - jif.ast.JifDelFactory_c (implements jif.ast.JifDelFactory)
  - polyglot.frontend.AbstractExtensionInfo (implements polyglot.frontend.ExtensionInfo)
    - polyglot.frontend.ParserlessJLExtensionInfo
      - polyglot.frontend.JLExtensionInfo
        - jif.ExtensionInfo
        - jif.OutputExtensionInfo
  - polyglot.ast.AbstractExtFactory_c (implements polyglot.ast.ExtFactory)
    - jif.ast.AbstractJifExtFactory_c (implements jif.ast.JifExtFactory)
      - jif.ast.JifExtFactory_c
  - polyglot.frontend.goals.AbstractGoal (implements polyglot.frontend.goals.Goal)
    - polyglot.frontend.goals.SourceFileGoal
      - jif.FieldLabelInferenceGoal
      - jif.LabelCheckGoal
      - polyglot.frontend.goals.VisitorGoal
        - jif.JifExceptionsChecked
  - polyglot.ast.AbstractNodeFactory_c (implements polyglot.ast.NodeFactory)
    - polyglot.ast.NodeFactory_c
      - jif.ast.JifNodeFactory_c (implements jif.ast.JifNodeFactory)
  - polyglot.frontend.AbstractPass (implements polyglot.frontend.Pass)
    - jif.visit.LabelCheckPass
  - jif.lang.AbstractPolicy (implements jif.lang.Policy)
    - jif.lang.JoinPolicy (implements jif.lang.Policy)
      - jif.lang.JoinConfPolicy (implements jif.lang.ConfPolicy)
      - jif.lang.JoinIntegPolicy (implements jif.lang.IntegPolicy)
    - jif.lang.MeetPolicy (implements jif.lang.Policy)
      - jif.lang.MeetConfPolicy (implements jif.lang.ConfPolicy)
      - jif.lang.MeetIntegPolicy (implements jif.lang.IntegPolicy)
    - jif.lang.ReaderPolicy (implements jif.lang.ConfPolicy)
    - jif.lang.WriterPolicy (implements jif.lang.IntegPolicy)
  - jif.lang.AbstractPrincipal (implements jif.lang.Principal)
  - jif.types.AbstractSolver (implements jif.types.Solver)
    - jif.types.SolverGLB
  - jif.types.AbstractSolver.EquationQueue
  - jif.types.AbstractSolver.Frame
  - jif.types.label.AccessPath (implements polyglot.util.Copy<T>, java.io.Serializable)
    - jif.types.label.AccessPathField
    - jif.types.label.AccessPathRoot
      - jif.types.label.AccessPathClass
      - jif.types.label.AccessPathConstant
      - jif.types.label.AccessPathLocal
      - jif.types.label.AccessPathThis
      - jif.types.label.AccessPathUninterpreted
  - jif.translate.ActsForConstraintToJavaExpr_c (implements jif.translate.ActsForConstraintToJavaExpr)
  - jif.lang.ActsForProof
    - jif.lang.DelegatesProof
    - jif.lang.FromDisjunctProof
    - jif.lang.ReflexiveProof
    - jif.lang.ToConjunctProof
    - jif.lang.TransitiveProof
  - jif.parse.Amb
    - jif.parse.Access
    - jif.parse.Array
    - jif.parse.Inst
    - jif.parse.InstOrAccess
    - jif.parse.LabeledExpr
    - jif.parse.Name
  - jif.extension.CallHelper
  - jif.lang.Capability
  - jif.lang.Closure_JIF_IMPL
  - jif.lang.ConjunctivePrincipal (implements jif.lang.Principal)
  - jif.types.Constraint
    - jif.types.LabelConstraint
    - jif.types.PrincipalConstraint
  - jif.types.ConstraintMessage
  - jif.extension.ConstructorChecker
  - polyglot.types.Context_c (implements polyglot.types.Context)
    - jif.types.JifContext_c (implements jif.types.JifContext)
  - polyglot.visit.DataFlow.Item
    - jif.visit.IntegerBoundsChecker.DataFlowItem
  - jif.parse.Declarator
  - polyglot.types.DeserializedClassInitializer (implements polyglot.types.LazyClassInitializer)
    - jif.types.JifDeserializedClassInitializer
  - polyglot.ast.Disamb_c (implements polyglot.ast.Disamb)
    - jif.ast.JifDisamb_c
  - jif.lang.DisjunctivePrincipal (implements jif.lang.Principal)
  - polyglot.util.Enum (implements polyglot.util.Internable, java.io.Serializable)
    - jif.types.Constraint.Kind
    - jif.types.ParamInstance.Kind
    - jif.types.Path.FixedPath (implements jif.types.Path)
  - jif.types.Equation
    - jif.types.LabelEquation
    - jif.types.PrincipalEquation
  - jif.types.ExceptionPath_c (implements jif.types.ExceptionPath)
  - polyglot.ast.Ext_c (implements polyglot.ast.Ext)
    - jif.ast.JifExt_c (implements jif.ast.JifExt)
      - jif.extension.JifClassBodyExt
      - jif.extension.JifClassDeclExt
      - jif.extension.JifExprExt
        - jif.extension.JifArrayAccessExt
        - jif.extension.JifArrayInitExt
        - jif.extension.JifAssignExt
          - jif.extension.JifArrayAccessAssignExt
          - jif.extension.JifFieldAssignExt
          - jif.extension.JifLocalAssignExt
        - jif.extension.JifBinaryExt
        - jif.extension.JifCallExt (implements polyglot.ast.CallOps)
        - jif.extension.JifCastExt
        - jif.extension.JifConditionalExt
        - jif.extension.JifDowngradeExprExt
          - jif.extension.JifDeclassifyExprExt
          - jif.extension.JifEndorseExprExt
        - jif.extension.JifFieldExt
        - jif.extension.JifInstanceofExt
        - jif.extension.JifLabelExprExt
        - jif.extension.JifLiteralExt
        - jif.extension.JifLocalExt
        - jif.extension.JifNewArrayExt
        - jif.extension.JifNewExt
        - jif.extension.JifPrincipalExprExt
        - jif.extension.JifPrincipalNodeExt
        - jif.extension.JifSpecialExt
        - jif.extension.JifUnaryExt
      - jif.extension.JifFieldDeclExt_c (implements jif.extension.JifFieldDeclExt)
      - jif.extension.JifFormalExt
      - jif.extension.JifInitializerExt
      - jif.extension.JifLocalClassDeclExt (implements polyglot.ast.Ext)
      - jif.extension.JifProcedureDeclExt_c (implements jif.extension.JifProcedureDeclExt)
        - jif.extension.JifConstructorDeclExt
        - jif.extension.JifMethodDeclExt
      - jif.extension.JifSourceFileExt
      - jif.extension.JifStmtExt_c (implements jif.extension.JifStmtExt)
        - jif.extension.JifBlockExt
        - jif.extension.JifBranchExt
        - jif.extension.JifCaseExt
        - jif.extension.JifConstructorCallExt
        - jif.extension.JifDoExt
        - jif.extension.JifDowngradeStmtExt
          - jif.extension.JifDeclassifyStmtExt
          - jif.extension.JifEndorseStmtExt
            - jif.extension.JifCheckedEndorseStmtExt
        - jif.extension.JifEmptyExt
        - jif.extension.JifEvalExt
        - jif.extension.JifForExt
        - jif.extension.JifIfExt
        - jif.extension.JifLabeledExt
        - jif.extension.JifLocalDeclExt
        - jif.extension.JifReturnExt
        - jif.extension.JifSwitchExt
        - jif.extension.JifSynchronizedExt
        - jif.extension.JifThrowExt
        - jif.extension.JifTryExt
        - jif.extension.JifWhileExt
    - jif.translate.ToJavaExt_c (implements jif.translate.ToJavaExt)
      - jif.translate.ArrayAccessAssignToJavaExt_c
      - jif.translate.ArrayAccessToJavaExt_c
      - jif.translate.ArrayInitToJavaExt_c
      - jif.translate.BlockToJavaExt_c
      - jif.translate.BranchToJavaExt_c
      - jif.translate.CannotToJavaExt_c
      - jif.translate.CanonicalLabelNodeToJavaExt_c
      - jif.translate.CanonicalPrincipalNodeToJavaExt_c
      - jif.translate.CanonicalTypeNodeToJavaExt_c
      - jif.translate.CaseToJavaExt_c
      - jif.translate.CastToJavaExt_c
      - jif.translate.CatchToJavaExt_c
      - jif.translate.ClassBodyToJavaExt_c
      - jif.translate.ClassDeclToJavaExt_c
      - jif.translate.ConditionalToJavaExt_c
      - jif.translate.ConstructorCallToJavaExt_c
      - jif.translate.ConstructorDeclToJavaExt_c
      - jif.translate.DoToJavaExt_c
      - jif.translate.DowngradeExprToJavaExt_c
      - jif.translate.DowngradeStmtToJavaExt_c
      - jif.translate.EmptyToJavaExt_c
      - jif.translate.EvalToJavaExt_c
      - jif.translate.ExprToJavaExt_c
        - jif.translate.BinaryToJavaExt_c
        - jif.translate.CallToJavaExt_c
        - jif.translate.FieldToJavaExt_c
        - jif.translate.LocalToJavaExt_c
        - jif.translate.NewToJavaExt_c
      - jif.translate.FieldAssignToJavaExt_c
      - jif.translate.FieldDeclToJavaExt_c
      - jif.translate.FormalToJavaExt_c
      - jif.translate.ForToJavaExt_c
      - jif.translate.IdToJavaExt_c
      - jif.translate.IfToJavaExt_c
      - jif.translate.ImportToJavaExt_c
      - jif.translate.InitializerToJavaExt_c
      - jif.translate.InstanceOfToJavaExt_c
      - jif.translate.LabeledToJavaExt_c
      - jif.translate.LabelExprToJavaExt_c
        - jif.translate.NewLabelToJavaExt_c
      - jif.translate.LitToJavaExt_c
      - jif.translate.LocalAssignToJavaExt_c
      - jif.translate.LocalClassDeclToJavaExt_c (implements jif.translate.ToJavaExt)
      - jif.translate.LocalDeclToJavaExt_c
      - jif.translate.MethodDeclToJavaExt_c
      - jif.translate.NewArrayToJavaExt_c
      - jif.translate.PackageNodeToJavaExt_c
      - jif.translate.PrincipalExprToJavaExt_c
      - jif.translate.ReturnToJavaExt_c
      - jif.translate.SourceFileToJavaExt_c
      - jif.translate.SpecialToJavaExt_c
      - jif.translate.SwitchBlockToJavaExt_c
      - jif.translate.SwitchToJavaExt_c
      - jif.translate.SynchronizedToJavaExt_c
      - jif.translate.ThrowToJavaExt_c
      - jif.translate.TryToJavaExt_c
      - jif.translate.UnaryToJavaExt_c
      - jif.translate.WhileToJavaExt_c
  - jif.ExtensionInfo.JifJobExt (implements polyglot.frontend.JobExt)
  - jif.types.FailedConstraintSnapshot
  - jif.runtime.FileSystem
  - jif.types.FixedSignature (implements jif.types.DefaultSignature)
  - javax.tools.ForwardingFileObject<F> (implements javax.tools.FileObject)
    - polyglot.frontend.Source_c (implements polyglot.frontend.FileSource)
      - jif.parse.UTF8FileSource
  - jif.types.GotoPath_c (implements jif.types.Path)
  - jif.types.Graph
    - jif.types.LabelFlowGraph
  - jif.types.Graph.LabellingVisitor (implements jif.types.Graph.NodeVisitor)
  - jif.types.Graph.PathFinder (implements jif.types.Graph.NodeVisitor)
  - jif.types.InformationFlowTrace
  - jif.visit.IntegerBoundsChecker.Bound
    - jif.visit.IntegerBoundsChecker.ArrayLengthBound
    - jif.visit.IntegerBoundsChecker.LocalBound
  - jif.visit.IntegerBoundsChecker.Bounds
  - jif.visit.IntegerBoundsChecker.Interval
  - jif.types.JifContext_c.Key
  - jif.ast.JifInstantiator
  - jif.types.JifSubst_c.ConstraintXform (implements polyglot.util.Transformation<T,U>)
  - jif.types.JifSubst_c.LabelXform (implements polyglot.util.Transformation<T,U>)
  - jif.types.JifSubst_c.PrincipalXform (implements polyglot.util.Transformation<T,U>)
  - jif.ast.JifUtil
  - polyglot.ast.JLDel_c (implements polyglot.ast.JLDel, java.io.Serializable)
    - jif.extension.JifDel_c (implements jif.extension.JifDel)
      - jif.extension.JifArrayAccessDel
      - jif.extension.JifArrayInitDel
      - jif.extension.JifAssignDel
        - jif.extension.JifArrayAccessAssignDel
        - jif.extension.JifFieldAssignDel
      - jif.extension.JifBinaryDel
      - jif.extension.JifCallDel (implements polyglot.ast.CallOps)
      - jif.extension.JifCastDel (implements jif.extension.JifPreciseClassDel)
      - jif.extension.JifCatchDel
      - jif.extension.JifClassDeclDel (implements polyglot.ast.ClassDeclOps)
      - jif.extension.JifConstructorCallDel
      - jif.extension.JifFieldDeclDel
      - jif.extension.JifFieldDel
      - jif.extension.JifFormalDel
      - jif.extension.JifIfDel
      - jif.extension.JifInitializerDel
      - jif.extension.JifInstanceOfDel
      - jif.extension.JifLocalDeclDel
      - jif.extension.JifNewArrayDel
      - jif.extension.JifNewDel (implements polyglot.ast.NewOps)
      - jif.extension.JifProcedureDeclDel (implements polyglot.ast.ProcedureDeclOps)
        - jif.extension.JifMethodDeclDel
      - jif.extension.JifThrowDel
      - jif.extension.JifTypeNodeDel
  - jif.visit.LabelChecker (implements polyglot.util.Copy<T>)
  - jif.types.hierarchy.LabelEnv_c (implements jif.types.hierarchy.LabelEnv)
  - jif.translate.LabelLeAssertionToJavaExpr_c (implements jif.translate.LabelLeAssertionToJavaExpr)
  - jif.types.LabelSubstitution
    - jif.extension.JifFieldDeclExt_c.InvarianceLabelChecker
    - jif.extension.JifFieldDeclExt_c.StaticFieldLabelChecker
    - jif.extension.JifFormalExt.FormalVarianceLabelChecker
    - jif.extension.JifMethodDeclExt.CovariantLabelChecker
    - jif.extension.JifProcedureDeclExt_c.ConstraintVarianceLabelChecker
    - jif.types.JifSubst_c.SubstLabelSubst (implements java.io.Serializable)
    - jif.extension.JifTypeNodeDel.StaticLabelChecker
    - jif.types.label.VariableGatherer
  - jif.translate.LabelToJavaExpr_c (implements jif.translate.LabelToJavaExpr)
    - jif.translate.CannotLabelToJavaExpr_c
    - jif.translate.DynamicLabelToJavaExpr_c
    - jif.translate.JoinLabelToJavaExpr_c
    - jif.translate.MeetLabelToJavaExpr_c
    - jif.translate.PairLabelToJavaExpr_c
    - jif.translate.ProviderLabelToJavaExpr_c
  - jif.extension.LabelTypeCheckUtil
  - jif.lang.LabelUtil
  - jif.parse.Lexer_c (implements polyglot.lex.Lexer)
  - java_cup.runtime.lr_parser
    - polyglot.parse.BaseParser
      - polyglot.parse.Grm
        - jif.parse.Grm
  - jif.types.NamedLabel
  - jif.runtime.NativePrincipal (implements jif.lang.Principal)
  - polyglot.ast.Node_c (implements polyglot.ast.Node)
    - jif.ast.AmbExprParam_c (implements jif.ast.AmbExprParam)
    - jif.ast.AmbParam_c (implements jif.ast.AmbParam)
    - jif.ast.AmbParamTypeOrAccess_c (implements jif.ast.AmbParamTypeOrAccess)
    - jif.ast.ConstraintNode_c<Constraint> (implements jif.ast.ConstraintNode<Constraint>)
      - jif.ast.ActsForConstraintNode_c<Actor,Granter> (implements jif.ast.ActsForConstraintNode<Actor,Granter>)
        - jif.ast.LabelActsForLabelConstraintNode_c (implements jif.ast.LabelActsForLabelConstraintNode)
        - jif.ast.LabelActsForPrincipalConstraintNode_c (implements jif.ast.LabelActsForPrincipalConstraintNode)
        - jif.ast.PrincipalActsForPrincipalConstraintNode_c (implements jif.ast.PrincipalActsForPrincipalConstraintNode)
      - jif.ast.AuthConstraintNode_c (implements jif.ast.AuthConstraintNode)
      - jif.ast.AutoEndorseConstraintNode_c (implements jif.ast.AutoEndorseConstraintNode)
      - jif.ast.CallerConstraintNode_c (implements jif.ast.CallerConstraintNode)
      - jif.ast.CanonicalConstraintNode_c (implements jif.ast.CanonicalConstraintNode)
      - jif.ast.LabelLeAssertionNode_c (implements jif.ast.LabelLeAssertionNode)
    - jif.ast.LabelNode_c (implements jif.ast.LabelNode)
      - jif.ast.AmbLabelNode_c (implements polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbDynamicLabelNode_c (implements jif.ast.AmbDynamicLabelNode)
        - jif.ast.AmbProviderLabelNode_c (implements jif.ast.AmbProviderLabelNode)
        - jif.ast.AmbThisLabelNode_c (implements jif.ast.AmbThisLabelNode)
        - jif.ast.AmbVarLabelNode_c (implements jif.ast.AmbVarLabelNode)
        - jif.ast.JoinLabelNode_c (implements jif.ast.JoinLabelNode)
        - jif.ast.MeetLabelNode_c (implements jif.ast.MeetLabelNode)
      - jif.ast.CanonicalLabelNode_c (implements jif.ast.CanonicalLabelNode)
    - jif.ast.ParamDecl_c (implements jif.ast.ParamDecl)
    - jif.ast.PolicyNode_c (implements jif.ast.PolicyNode)
      - jif.ast.ReaderPolicyNode_c
      - jif.ast.WriterPolicyNode_c
    - polyglot.ast.Term_c (implements polyglot.ast.Term, polyglot.ast.TermOps)
      - polyglot.ast.ClassDecl_c (implements polyglot.ast.ClassDecl, polyglot.ast.ClassDeclOps)
        - jif.ast.JifClassDecl_c (implements jif.ast.JifClassDecl)
      - polyglot.ast.Expr_c (implements polyglot.ast.Expr, polyglot.ast.ExprOps)
        - jif.ast.AmbNewArray_c (implements jif.ast.AmbNewArray)
        - polyglot.ast.Assign_c (implements polyglot.ast.Assign)
          - polyglot.ast.ArrayAccessAssign_c (implements polyglot.ast.ArrayAccessAssign)
            - jif.ast.JifArrayAccessAssign_c
        - polyglot.ast.Binary_c (implements polyglot.ast.Binary)
          - jif.ast.JifBinary_c (implements polyglot.ast.Binary)
        - polyglot.ast.Call_c (implements polyglot.ast.Call, polyglot.ast.CallOps)
          - jif.ast.JifCall_c
        - jif.ast.DowngradeExpr_c (implements jif.ast.DowngradeExpr)
          - jif.ast.DeclassifyExpr_c (implements jif.ast.DeclassifyExpr)
          - jif.ast.EndorseExpr_c (implements jif.ast.EndorseExpr)
        - jif.ast.LabelExpr_c (implements jif.ast.LabelExpr)
          - jif.ast.NewLabel_c (implements jif.ast.NewLabel)
        - polyglot.ast.New_c (implements polyglot.ast.New, polyglot.ast.NewOps)
          - jif.ast.JifNew_c (implements polyglot.ast.New)
        - jif.ast.PrincipalExpr_c (implements jif.ast.PrincipalExpr)
        - jif.ast.PrincipalNode_c (implements jif.ast.PrincipalNode)
          - jif.ast.AmbJunctivePrincipalNode_c (implements jif.ast.AmbJunctivePrincipalNode)
          - jif.ast.AmbPrincipalNode_c (implements jif.ast.AmbPrincipalNode)
          - jif.ast.CanonicalPrincipalNode_c (implements jif.ast.CanonicalPrincipalNode)
        - jif.parse.Wrapper
      - polyglot.ast.Formal_c (implements polyglot.ast.Formal)
        - jif.ast.JifFormal_c
      - polyglot.ast.ProcedureDecl_c (implements polyglot.ast.ProcedureDecl, polyglot.ast.ProcedureDeclOps)
        - polyglot.ast.ConstructorDecl_c (implements polyglot.ast.ConstructorDecl)
          - jif.ast.JifConstructorDecl_c (implements jif.ast.JifConstructorDecl)
        - polyglot.ast.MethodDecl_c (implements polyglot.ast.MethodDecl)
          - jif.ast.JifMethodDecl_c (implements jif.ast.JifMethodDecl)
      - polyglot.ast.Stmt_c (implements polyglot.ast.Stmt)
        - polyglot.ast.AbstractBlock_c (implements polyglot.ast.Block)
          - polyglot.ast.Block_c
            - jif.ast.Prologue_c (implements jif.ast.Prologue)
        - polyglot.ast.Catch_c (implements polyglot.ast.Catch)
          - jif.ast.JifCatch_c
        - jif.ast.DowngradeStmt_c (implements jif.ast.DowngradeStmt)
          - jif.ast.DeclassifyStmt_c (implements jif.ast.DeclassifyStmt)
          - jif.ast.EndorseStmt_c (implements jif.ast.EndorseStmt)
            - jif.ast.CheckedEndorseStmt_c (implements jif.ast.CheckedEndorseStmt)
        - polyglot.ast.LocalDecl_c (implements polyglot.ast.LocalDecl)
          - jif.ast.JifLocalDecl_c
      - polyglot.ast.TypeNode_c (implements polyglot.ast.TypeNode)
        - polyglot.ast.ArrayTypeNode_c (implements polyglot.ast.ArrayTypeNode)
          - jif.ast.ConstArrayTypeNode_c (implements jif.ast.ConstArrayTypeNode)
        - polyglot.ast.CanonicalTypeNode_c (implements polyglot.ast.CanonicalTypeNode)
          - jif.ast.JifCanonicalTypeNode_c (implements jif.ast.JifCanonicalTypeNode)
        - jif.ast.InstTypeNode_c (implements polyglot.ast.Ambiguous, jif.ast.InstTypeNode)
        - jif.ast.LabeledTypeNode_c (implements polyglot.ast.Ambiguous, jif.ast.LabeledTypeNode)
  - polyglot.visit.NodeVisitor (implements polyglot.util.Copy<T>)
    - jif.visit.ConstChecker
    - polyglot.visit.HaltingVisitor
      - polyglot.visit.ErrorHandlingVisitor
        - polyglot.visit.ContextVisitor
          - polyglot.visit.DisambiguationDriver
            - polyglot.visit.TypeChecker
              - jif.visit.JifTypeChecker
          - jif.visit.FieldLabelResolver
          - jif.visit.FinalParams
          - jif.visit.JifLabelSubst
          - jif.translate.JifToJavaRewriter
        - polyglot.visit.DataFlow<FlowItem>
          - polyglot.visit.DefiniteAssignmentChecker
            - jif.visit.JifInitChecker
          - jif.visit.IntegerBoundsChecker
          - jif.visit.NotNullChecker
          - jif.visit.PreciseClassChecker
        - polyglot.visit.ExceptionChecker
          - jif.visit.JifExceptionChecker
        - jif.visit.JifExceptionChecker.FatalExceptionSetter
    - jif.visit.LabelSubstitutionVisitor
    - jif.visit.NativeConstructorAdder
    - jif.parse.UnwrapVisitor
  - polyglot.main.Options
    - jif.JifOptions
  - jif.lang.PairLabel (implements jif.lang.Label)
  - jif.translate.ParamToJavaExpr_c (implements jif.translate.LabelToJavaExpr, jif.translate.PrincipalToJavaExpr)
  - jif.types.PathMap
  - polyglot.visit.PrettyPrinter
    - polyglot.visit.Translator (implements polyglot.util.Copy<T>)
      - polyglot.visit.TypedTranslator
        - jif.visit.JifTranslator
  - jif.lang.Principal_JIF_IMPL
  - jif.types.hierarchy.PrincipalHierarchy
  - jif.lang.PrincipalSet
  - jif.translate.PrincipalToJavaExpr_c (implements jif.translate.PrincipalToJavaExpr)
    - jif.translate.BottomPrincipalToJavaExpr_c
    - jif.translate.CannotPrincipalToJavaExpr_c
    - jif.translate.ConjunctivePrincipalToJavaExpr_c
    - jif.translate.DisjunctivePrincipalToJavaExpr_c
    - jif.translate.DynamicPrincipalToJavaExpr_c
    - jif.translate.ExternalPrincipalToJavaExpr_c
    - jif.translate.TopPrincipalToJavaExpr_c
  - jif.lang.PrincipalUtil
  - jif.runtime.Runtime
  - polyglot.frontend.Scheduler
    - polyglot.frontend.JLScheduler
      - jif.JifScheduler
      - jif.OutputExtensionInfo.OutputScheduler
  - polyglot.types.SchedulerClassInitializer (implements polyglot.types.LazyClassInitializer)
    - jif.types.JifLazyClassInitializer_c
  - jif.bin.SigMerge
  - jif.net.SocketUtil
  - polyglot.ext.param.types.Subst_c<Formal,Actual> (implements polyglot.ext.param.types.Subst<Formal,Actual>)
    - jif.types.JifSubst_c (implements jif.types.JifSubst)
  - jif.extension.SubtypeChecker
  - jif.parse.sym
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - polyglot.types.SemanticException
        - jif.types.SemanticDetailedException
        - jif.types.UnsatisfiableConstraintException
  - jif.Topics
  - polyglot.types.TypeObject_c (implements polyglot.types.TypeObject)
    - jif.types.ActsForConstraint_c<Actor,Granter> (implements jif.types.ActsForConstraint<Actor,Granter>)
    - jif.types.AuthConstraint_c (implements jif.types.AuthConstraint)
    - jif.types.AutoEndorseConstraint_c (implements jif.types.AutoEndorseConstraint)
    - jif.types.CallerConstraint_c (implements jif.types.CallerConstraint)
    - jif.types.LabelLeAssertion_c (implements jif.types.LabelLeAssertion)
    - jif.types.Param_c (implements jif.types.Param)
      - jif.types.label.Label_c (implements jif.types.label.Label)
        - jif.types.label.ArgLabel_c (implements jif.types.label.ArgLabel)
        - jif.types.label.CovariantParamLabel_c (implements jif.types.label.CovariantParamLabel)
        - jif.types.label.DynamicLabel_c (implements jif.types.label.DynamicLabel)
        - jif.types.label.JoinLabel_c (implements jif.types.label.JoinLabel)
        - jif.types.label.MeetLabel_c (implements jif.types.label.MeetLabel)
        - jif.types.label.NotTaken_c (implements jif.types.label.NotTaken)
        - jif.types.label.PairLabel_c (implements jif.types.label.PairLabel)
        - jif.types.label.ParamLabel_c (implements jif.types.label.ParamLabel)
        - jif.types.label.ProviderLabel_c (implements jif.types.label.ProviderLabel)
        - jif.types.label.ThisLabel_c (implements jif.types.label.ThisLabel)
        - jif.types.label.UnknownLabel_c (implements jif.types.label.UnknownLabel)
        - jif.types.label.VarLabel_c (implements jif.types.label.VarLabel)
        - jif.types.label.WritersToReadersLabel_c (implements jif.types.label.WritersToReadersLabel)
      - jif.types.principal.Principal_c (implements jif.types.principal.Principal)
        - jif.types.principal.BottomPrincipal_c (implements jif.types.principal.BottomPrincipal)
        - jif.types.principal.ConjunctivePrincipal_c (implements jif.types.principal.ConjunctivePrincipal)
        - jif.types.principal.DisjunctivePrincipal_c (implements jif.types.principal.DisjunctivePrincipal)
        - jif.types.principal.DynamicPrincipal_c (implements jif.types.principal.DynamicPrincipal)
        - jif.types.principal.ExternalPrincipal_c (implements jif.types.principal.ExternalPrincipal)
        - jif.types.principal.ParamPrincipal_c (implements jif.types.principal.ParamPrincipal)
        - jif.types.principal.TopPrincipal_c (implements jif.types.principal.TopPrincipal)
        - jif.types.principal.UnknownPrincipal_c (implements jif.types.principal.UnknownPrincipal)
        - jif.types.principal.VarPrincipal_c (implements jif.types.principal.VarPrincipal)
      - jif.types.UnknownParam_c (implements jif.types.UnknownParam)
    - polyglot.ext.param.types.PClass_c<Formal,Actual> (implements polyglot.ext.param.types.PClass<Formal,Actual>)
      - polyglot.ext.param.types.MuPClass_c<Formal,Actual> (implements polyglot.ext.param.types.MuPClass<Formal,Actual>)
        - jif.types.JifMuPClass_c
    - jif.types.label.Policy_c (implements jif.types.label.Policy)
      - jif.types.label.ConfProjectionPolicy_c (implements jif.types.label.ConfProjectionPolicy)
      - jif.types.label.IntegProjectionPolicy_c (implements jif.types.label.IntegPolicy)
      - jif.types.label.JoinPolicy_c<P> (implements jif.types.label.JoinPolicy<P>)
        - jif.types.label.JoinConfPolicy_c (implements jif.types.label.JoinConfPolicy)
        - jif.types.label.JoinIntegPolicy_c (implements jif.types.label.IntegPolicy)
      - jif.types.label.MeetPolicy_c<P> (implements jif.types.label.MeetPolicy<P>)
        - jif.types.label.MeetConfPolicy_c (implements jif.types.label.MeetConfPolicy)
        - jif.types.label.MeetIntegPolicy_c (implements jif.types.label.IntegPolicy)
      - jif.types.label.ReaderPolicy_c (implements jif.types.label.ReaderPolicy)
      - jif.types.label.WriterPolicy_c (implements jif.types.label.WriterPolicy)
    - polyglot.types.ProcedureInstance_c (implements polyglot.types.ProcedureInstance)
      - polyglot.types.ConstructorInstance_c (implements polyglot.types.ConstructorInstance)
        - jif.types.JifConstructorInstance_c (implements jif.types.JifConstructorInstance)
      - polyglot.types.MethodInstance_c (implements polyglot.types.MethodInstance)
        - jif.types.JifMethodInstance_c (implements jif.types.JifMethodInstance)
    - polyglot.types.Type_c (implements polyglot.types.Type)
      - jif.types.LabeledType_c (implements jif.types.LabeledType)
      - polyglot.types.ReferenceType_c (implements polyglot.types.ReferenceType)
        - polyglot.types.ArrayType_c (implements polyglot.types.ArrayType)
          - jif.types.ConstArrayType_c (implements jif.types.ConstArrayType)
        - polyglot.types.ClassType_c (implements polyglot.types.ClassType)
          - polyglot.types.ParsedClassType_c (implements polyglot.types.ParsedClassType)
            - jif.types.JifParsedPolyType_c (implements jif.types.JifParsedPolyType)
          - polyglot.ext.param.types.SubstClassType_c<Formal,Actual> (implements polyglot.ext.param.types.SubstType<Formal,Actual>)
            - jif.types.JifSubstClassType_c (implements jif.types.JifSubstType)
    - polyglot.types.VarInstance_c (implements polyglot.types.VarInstance)
      - polyglot.types.FieldInstance_c (implements polyglot.types.FieldInstance)
        - jif.types.JifFieldInstance_c (implements jif.types.JifFieldInstance)
      - polyglot.types.LocalInstance_c (implements polyglot.types.LocalInstance)
        - jif.types.JifLocalInstance_c (implements jif.types.JifLocalInstance)
      - jif.types.ParamInstance_c (implements jif.types.ParamInstance)
      - jif.types.PrincipalInstance_c (implements jif.types.PrincipalInstance)
  - jif.types.TypeSubstitutor
    - jif.extension.JifFieldDeclExt_c.InvarianceLabelSubstr
    - jif.extension.JifFormalExt.FormalVarianceLabelSubstr
  - polyglot.types.TypeSystem_c (implements polyglot.types.TypeSystem)
    - polyglot.ext.param.types.ParamTypeSystem_c<Formal,Actual> (implements polyglot.ext.param.types.ParamTypeSystem<Formal,Actual>)
      - jif.types.JifTypeSystem_c (implements jif.types.JifTypeSystem)
  - jif.types.VarMap
  - jif.types.VarSignature (implements jif.types.DefaultSignature)
  - polyglot.main.Version
    - jif.Version

## Interface Hierarchy

- java.lang.Cloneable
  - polyglot.util.Copy<T>
    - polyglot.types.Context (also extends polyglot.types.Resolver)
      - jif.types.JifContext
    - polyglot.ast.Ext (also extends polyglot.ast.NodeOps, java.io.Serializable)
      - jif.ast.JifExt
        - jif.extension.JifFieldDeclExt
        - jif.extension.JifProcedureDeclExt
        - jif.extension.JifStmtExt
      - jif.translate.ToJavaExt
    - polyglot.ast.Node (also extends polyglot.ast.NodeOps, java.io.Serializable)
      - polyglot.ast.Ambiguous
        - jif.ast.AmbDynamicLabelNode (also extends jif.ast.LabelNode)
        - jif.ast.AmbNewArray (also extends polyglot.ast.Expr)
        - jif.ast.AmbParam (also extends jif.ast.ParamNode)
          - jif.ast.AmbExprParam
        - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Receiver)
        - jif.ast.AmbPrincipalNode (also extends jif.ast.PrincipalNode)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbProviderLabelNode (also extends jif.ast.LabelNode)
        - jif.ast.AmbThisLabelNode (also extends jif.ast.LabelNode)
        - jif.ast.AmbVarLabelNode (also extends jif.ast.LabelNode)
        - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.TypeNode)
          - jif.ast.ConstArrayTypeNode
      - jif.ast.ConstraintNode<Constraint>
        - jif.ast.ActsForConstraintNode<Actor,Granter>
          - jif.ast.LabelActsForLabelConstraintNode
          - jif.ast.LabelActsForPrincipalConstraintNode
          - jif.ast.PrincipalActsForPrincipalConstraintNode
        - jif.ast.AuthConstraintNode
        - jif.ast.AutoEndorseConstraintNode
        - jif.ast.CallerConstraintNode
        - jif.ast.CanonicalConstraintNode
        - jif.ast.LabelActsForLabelConstraintNode
        - jif.ast.LabelActsForPrincipalConstraintNode
        - jif.ast.LabelLeAssertionNode
        - jif.ast.PrincipalActsForPrincipalConstraintNode
      - polyglot.ast.Documentable
        - polyglot.ast.ProcedureDecl (also extends polyglot.ast.CodeDecl)
          - polyglot.ast.ConstructorDecl
            - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
          - jif.ast.JifProcedureDecl
            - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
            - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
          - polyglot.ast.MethodDecl
            - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
        - polyglot.ast.TopLevelDecl
          - polyglot.ast.ClassDecl (also extends polyglot.ast.ClassMember)
            - jif.ast.JifClassDecl
      - jif.ast.LabelComponentNode
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.CanonicalLabelNode
        - jif.ast.JoinLabelNode
        - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>)
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.CanonicalLabelNode
          - jif.ast.JoinLabelNode
          - jif.ast.MeetLabelNode
        - jif.ast.MeetLabelNode
        - jif.ast.PolicyNode
      - jif.ast.ParamDecl
      - jif.ast.ParamNode
        - jif.ast.ActsForParamNode<Param>
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
          - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous, jif.ast.PrincipalNode)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
          - jif.ast.CanonicalLabelNode
          - jif.ast.CanonicalPrincipalNode
          - jif.ast.JoinLabelNode
          - jif.ast.LabelNode (also extends jif.ast.LabelComponentNode)
            - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.CanonicalLabelNode
            - jif.ast.JoinLabelNode
            - jif.ast.MeetLabelNode
          - jif.ast.MeetLabelNode
          - jif.ast.PrincipalNode (also extends polyglot.ast.Expr)
            - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbExprParam
        - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbParam (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbExprParam
        - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous, jif.ast.PrincipalNode)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.CanonicalLabelNode
        - jif.ast.CanonicalPrincipalNode
        - jif.ast.JoinLabelNode
        - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>, jif.ast.LabelComponentNode)
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.CanonicalLabelNode
          - jif.ast.JoinLabelNode
          - jif.ast.MeetLabelNode
        - jif.ast.MeetLabelNode
        - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>, polyglot.ast.Expr)
          - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - polyglot.ast.Prefix
        - polyglot.ast.QualifierNode
          - polyglot.ast.TypeNode (also extends polyglot.ast.Receiver, polyglot.ast.Term)
            - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.ConstArrayTypeNode
            - polyglot.ast.CanonicalTypeNode
              - jif.ast.JifCanonicalTypeNode
            - jif.ast.InstTypeNode
            - jif.ast.LabeledTypeNode
        - polyglot.ast.Receiver (also extends polyglot.ast.Typed)
          - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
          - polyglot.ast.Expr (also extends polyglot.ast.Term)
            - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
            - jif.ast.DowngradeExpr
              - jif.ast.DeclassifyExpr
              - jif.ast.EndorseExpr
            - jif.ast.LabelExpr
              - jif.ast.NewLabel
            - jif.ast.PrincipalExpr
            - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
              - jif.ast.AmbJunctivePrincipalNode
              - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
                - jif.ast.AmbJunctivePrincipalNode
              - jif.ast.CanonicalPrincipalNode
          - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
            - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.ConstArrayTypeNode
            - polyglot.ast.CanonicalTypeNode
              - jif.ast.JifCanonicalTypeNode
            - jif.ast.InstTypeNode
            - jif.ast.LabeledTypeNode
      - polyglot.ast.Term
        - polyglot.ast.ClassMember
          - polyglot.ast.ClassDecl (also extends polyglot.ast.TopLevelDecl)
            - jif.ast.JifClassDecl
          - polyglot.ast.CodeDecl (also extends polyglot.ast.CodeBlock)
            - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
              - polyglot.ast.ConstructorDecl
                - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
              - jif.ast.JifProcedureDecl
                - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
              - polyglot.ast.MethodDecl
                - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
        - polyglot.ast.CodeNode
          - polyglot.ast.CodeBlock
            - polyglot.ast.CodeDecl (also extends polyglot.ast.ClassMember)
              - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
                - polyglot.ast.ConstructorDecl
                  - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
                - jif.ast.JifProcedureDecl
                  - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                  - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
                - polyglot.ast.MethodDecl
                  - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
        - polyglot.ast.Expr (also extends polyglot.ast.Receiver)
          - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
          - jif.ast.DowngradeExpr
            - jif.ast.DeclassifyExpr
            - jif.ast.EndorseExpr
          - jif.ast.LabelExpr
            - jif.ast.NewLabel
          - jif.ast.PrincipalExpr
          - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
            - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - polyglot.ast.Stmt
          - polyglot.ast.CompoundStmt
            - polyglot.ast.Block
              - jif.ast.Prologue
            - jif.ast.DowngradeStmt
              - jif.ast.CheckedEndorseStmt
              - jif.ast.DeclassifyStmt
              - jif.ast.EndorseStmt
                - jif.ast.CheckedEndorseStmt
        - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Receiver)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
    - polyglot.types.TypeObject (also extends java.io.Serializable)
      - jif.types.Assertion
        - jif.types.ActsForConstraint<Actor,Granter>
        - jif.types.AuthConstraint
        - jif.types.AutoEndorseConstraint
        - jif.types.CallerConstraint
        - jif.types.LabelLeAssertion
      - polyglot.types.CodeInstance
        - polyglot.types.ProcedureInstance
          - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
            - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
          - polyglot.types.FunctionInstance
            - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
              - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
          - jif.types.JifProcedureInstance
            - jif.types.JifConstructorInstance (also extends polyglot.types.ConstructorInstance)
            - jif.types.JifMethodInstance (also extends polyglot.types.MethodInstance)
      - polyglot.types.Declaration
        - polyglot.types.ClassType (also extends polyglot.types.Importable, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
          - jif.types.JifClassType
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
            - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.types.ConstructorInstance (also extends polyglot.types.MemberInstance, polyglot.types.ProcedureInstance)
          - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.MethodInstance (also extends polyglot.types.FunctionInstance, polyglot.types.MemberInstance)
          - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.VarInstance
          - polyglot.types.FieldInstance (also extends polyglot.types.MemberInstance)
            - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
          - jif.types.JifVarInstance
            - jif.types.JifFieldInstance (also extends polyglot.types.FieldInstance)
            - jif.types.JifLocalInstance (also extends polyglot.types.LocalInstance)
          - polyglot.types.LocalInstance
            - jif.types.JifLocalInstance (also extends jif.types.JifVarInstance)
          - jif.types.ParamInstance (also extends polyglot.ext.param.types.Param)
          - jif.types.PrincipalInstance
      - polyglot.types.MemberInstance
        - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.ReferenceType)
          - jif.types.JifClassType
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
            - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.ProcedureInstance)
          - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.FieldInstance (also extends polyglot.types.VarInstance)
          - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
        - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.FunctionInstance)
          - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.Named
        - polyglot.types.Importable
          - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
            - jif.types.JifClassType
              - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
              - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
                - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
              - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
            - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
              - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.ext.param.types.Param
          - jif.types.ParamInstance (also extends polyglot.types.VarInstance)
        - polyglot.types.ParsedTypeObject
          - polyglot.types.ParsedClassType (also extends polyglot.types.ClassType)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - jif.types.Param
        - jif.types.ActsForParam
          - jif.types.label.ArgLabel
          - jif.types.principal.BottomPrincipal
          - jif.types.principal.ConjunctivePrincipal
          - jif.types.label.CovariantParamLabel
          - jif.types.principal.DisjunctivePrincipal
          - jif.types.label.DynamicLabel
          - jif.types.principal.DynamicPrincipal
          - jif.types.principal.ExternalPrincipal
          - jif.types.label.JoinLabel
          - jif.types.label.Label
            - jif.types.label.ArgLabel
            - jif.types.label.CovariantParamLabel
            - jif.types.label.DynamicLabel
            - jif.types.label.JoinLabel
            - jif.types.label.MeetLabel
            - jif.types.label.NotTaken
            - jif.types.label.PairLabel
            - jif.types.label.ParamLabel
            - jif.types.label.ProviderLabel
            - jif.types.label.ThisLabel
            - jif.types.label.UnknownLabel
            - jif.types.label.VarLabel (also extends jif.types.label.Variable)
            - jif.types.label.WritersToReadersLabel
          - jif.types.label.MeetLabel
          - jif.types.label.NotTaken
          - jif.types.label.PairLabel
          - jif.types.label.ParamLabel
          - jif.types.principal.ParamPrincipal
          - jif.types.principal.Principal
            - jif.types.principal.BottomPrincipal
            - jif.types.principal.ConjunctivePrincipal
            - jif.types.principal.DisjunctivePrincipal
            - jif.types.principal.DynamicPrincipal
            - jif.types.principal.ExternalPrincipal
            - jif.types.principal.ParamPrincipal
            - jif.types.principal.TopPrincipal
            - jif.types.principal.UnknownPrincipal
            - jif.types.principal.VarPrincipal (also extends jif.types.label.Variable)
          - jif.types.label.ProviderLabel
          - jif.types.label.ThisLabel
          - jif.types.principal.TopPrincipal
          - jif.types.label.UnknownLabel
          - jif.types.principal.UnknownPrincipal
          - jif.types.label.VarLabel (also extends jif.types.label.Label, jif.types.label.Variable)
          - jif.types.principal.VarPrincipal (also extends jif.types.principal.Principal, jif.types.label.Variable)
          - jif.types.label.WritersToReadersLabel
        - jif.types.label.ArgLabel
        - jif.types.principal.BottomPrincipal
        - jif.types.principal.ConjunctivePrincipal
        - jif.types.label.CovariantParamLabel
        - jif.types.principal.DisjunctivePrincipal
        - jif.types.label.DynamicLabel
        - jif.types.principal.DynamicPrincipal
        - jif.types.principal.ExternalPrincipal
        - jif.types.label.JoinLabel
        - jif.types.label.Label
          - jif.types.label.ArgLabel
          - jif.types.label.CovariantParamLabel
          - jif.types.label.DynamicLabel
          - jif.types.label.JoinLabel
          - jif.types.label.MeetLabel
          - jif.types.label.NotTaken
          - jif.types.label.PairLabel
          - jif.types.label.ParamLabel
          - jif.types.label.ProviderLabel
          - jif.types.label.ThisLabel
          - jif.types.label.UnknownLabel
          - jif.types.label.VarLabel (also extends jif.types.label.Variable)
          - jif.types.label.WritersToReadersLabel
        - jif.types.label.MeetLabel
        - jif.types.label.NotTaken
        - jif.types.label.PairLabel
        - jif.types.label.ParamLabel
        - jif.types.principal.ParamPrincipal
        - jif.types.principal.Principal
          - jif.types.principal.BottomPrincipal
          - jif.types.principal.ConjunctivePrincipal
          - jif.types.principal.DisjunctivePrincipal
          - jif.types.principal.DynamicPrincipal
          - jif.types.principal.ExternalPrincipal
          - jif.types.principal.ParamPrincipal
          - jif.types.principal.TopPrincipal
          - jif.types.principal.UnknownPrincipal
          - jif.types.principal.VarPrincipal (also extends jif.types.label.Variable)
        - jif.types.label.ProviderLabel
        - jif.types.label.ThisLabel
        - jif.types.principal.TopPrincipal
        - jif.types.label.UnknownLabel
        - jif.types.UnknownParam
        - jif.types.principal.UnknownPrincipal
        - jif.types.label.VarLabel (also extends jif.types.label.Label, jif.types.label.Variable)
        - jif.types.principal.VarPrincipal (also extends jif.types.principal.Principal, jif.types.label.Variable)
        - jif.types.label.WritersToReadersLabel
      - jif.types.label.Policy
        - jif.types.label.ConfPolicy
          - jif.types.label.ConfProjectionPolicy
          - jif.types.label.JoinConfPolicy (also extends jif.types.label.JoinPolicy<P>)
          - jif.types.label.MeetConfPolicy (also extends jif.types.label.MeetPolicy<P>)
          - jif.types.label.ReaderPolicy
        - jif.types.label.ConfProjectionPolicy
        - jif.types.label.IntegPolicy
          - jif.types.label.WriterPolicy
        - jif.types.label.JoinConfPolicy (also extends jif.types.label.ConfPolicy, jif.types.label.JoinPolicy<P>)
        - jif.types.label.JoinPolicy<P>
          - jif.types.label.JoinConfPolicy (also extends jif.types.label.ConfPolicy)
        - jif.types.label.MeetConfPolicy (also extends jif.types.label.ConfPolicy, jif.types.label.MeetPolicy<P>)
        - jif.types.label.ReaderPolicy
        - jif.types.label.WriterPolicy
      - polyglot.types.Qualifier
        - polyglot.types.Type
          - polyglot.ext.param.types.InstType<Formal,Actual>
            - jif.types.JifPolyType (also extends jif.types.JifClassType)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends jif.types.JifClassType, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - jif.types.LabeledType
          - polyglot.types.ReferenceType
            - polyglot.types.ArrayType
              - jif.types.ConstArrayType
            - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.MemberInstance)
              - jif.types.JifClassType
                - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
                - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
                  - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
                - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
              - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
                - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
          - polyglot.ext.param.types.SubstType<Formal,Actual>
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, jif.types.JifClassType)
- jif.lang.Closure
- jif.types.DefaultSignature
- polyglot.ast.DelFactory
  - jif.ast.JifDelFactory
- jif.types.Graph.NodeVisitor
- java.lang.Iterable<T>
  - polyglot.ast.ExtFactory
    - jif.ast.JifExtFactory (also extends jif.ast.JifStmtExtFactory)
- jif.extension.JifDel
- jif.extension.JifPreciseClassDel
- jif.ast.JifStmtExtFactory
  - jif.ast.JifExtFactory (also extends polyglot.ast.ExtFactory)
- jif.lang.Label
- jif.types.hierarchy.LabelEnv
- jif.types.hierarchy.LabelEnv.SearchState
- jif.types.label.MeetPolicy<P>
  - jif.types.label.MeetConfPolicy (also extends jif.types.label.ConfPolicy)
- polyglot.ast.NodeFactory
  - jif.ast.JifNodeFactory
- polyglot.ast.NodeOps
  - polyglot.ast.Ext (also extends polyglot.util.Copy<T>, java.io.Serializable)
    - jif.ast.JifExt
      - jif.extension.JifFieldDeclExt
      - jif.extension.JifProcedureDeclExt
      - jif.extension.JifStmtExt
    - jif.translate.ToJavaExt
  - polyglot.ast.Node (also extends polyglot.util.Copy<T>, java.io.Serializable)
    - polyglot.ast.Ambiguous
      - jif.ast.AmbDynamicLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbNewArray (also extends polyglot.ast.Expr)
      - jif.ast.AmbParam (also extends jif.ast.ParamNode)
        - jif.ast.AmbExprParam
      - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Receiver)
      - jif.ast.AmbPrincipalNode (also extends jif.ast.PrincipalNode)
        - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbProviderLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends jif.ast.LabelNode)
      - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.TypeNode)
        - jif.ast.ConstArrayTypeNode
    - jif.ast.ConstraintNode<Constraint>
      - jif.ast.ActsForConstraintNode<Actor,Granter>
        - jif.ast.LabelActsForLabelConstraintNode
        - jif.ast.LabelActsForPrincipalConstraintNode
        - jif.ast.PrincipalActsForPrincipalConstraintNode
      - jif.ast.AuthConstraintNode
      - jif.ast.AutoEndorseConstraintNode
      - jif.ast.CallerConstraintNode
      - jif.ast.CanonicalConstraintNode
      - jif.ast.LabelActsForLabelConstraintNode
      - jif.ast.LabelActsForPrincipalConstraintNode
      - jif.ast.LabelLeAssertionNode
      - jif.ast.PrincipalActsForPrincipalConstraintNode
    - polyglot.ast.Documentable
      - polyglot.ast.ProcedureDecl (also extends polyglot.ast.CodeDecl)
        - polyglot.ast.ConstructorDecl
          - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
        - jif.ast.JifProcedureDecl
          - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
          - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
        - polyglot.ast.MethodDecl
          - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.TopLevelDecl
        - polyglot.ast.ClassDecl (also extends polyglot.ast.ClassMember)
          - jif.ast.JifClassDecl
    - jif.ast.LabelComponentNode
      - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.CanonicalLabelNode
      - jif.ast.JoinLabelNode
      - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>)
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.CanonicalLabelNode
        - jif.ast.JoinLabelNode
        - jif.ast.MeetLabelNode
      - jif.ast.MeetLabelNode
      - jif.ast.PolicyNode
    - jif.ast.ParamDecl
    - jif.ast.ParamNode
      - jif.ast.ActsForParamNode<Param>
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous, jif.ast.PrincipalNode)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.CanonicalLabelNode
        - jif.ast.CanonicalPrincipalNode
        - jif.ast.JoinLabelNode
        - jif.ast.LabelNode (also extends jif.ast.LabelComponentNode)
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.CanonicalLabelNode
          - jif.ast.JoinLabelNode
          - jif.ast.MeetLabelNode
        - jif.ast.MeetLabelNode
        - jif.ast.PrincipalNode (also extends polyglot.ast.Expr)
          - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbExprParam
      - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbParam (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbExprParam
      - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous, jif.ast.PrincipalNode)
        - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.CanonicalLabelNode
      - jif.ast.CanonicalPrincipalNode
      - jif.ast.JoinLabelNode
      - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>, jif.ast.LabelComponentNode)
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.CanonicalLabelNode
        - jif.ast.JoinLabelNode
        - jif.ast.MeetLabelNode
      - jif.ast.MeetLabelNode
      - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>, polyglot.ast.Expr)
        - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.CanonicalPrincipalNode
    - polyglot.ast.Prefix
      - polyglot.ast.QualifierNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.Receiver, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
      - polyglot.ast.Receiver (also extends polyglot.ast.Typed)
        - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
        - polyglot.ast.Expr (also extends polyglot.ast.Term)
          - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
          - jif.ast.DowngradeExpr
            - jif.ast.DeclassifyExpr
            - jif.ast.EndorseExpr
          - jif.ast.LabelExpr
            - jif.ast.NewLabel
          - jif.ast.PrincipalExpr
          - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
            - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
    - polyglot.ast.Term
      - polyglot.ast.ClassMember
        - polyglot.ast.ClassDecl (also extends polyglot.ast.TopLevelDecl)
          - jif.ast.JifClassDecl
        - polyglot.ast.CodeDecl (also extends polyglot.ast.CodeBlock)
          - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
            - polyglot.ast.ConstructorDecl
              - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
            - jif.ast.JifProcedureDecl
              - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
              - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
            - polyglot.ast.MethodDecl
              - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.CodeNode
        - polyglot.ast.CodeBlock
          - polyglot.ast.CodeDecl (also extends polyglot.ast.ClassMember)
            - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
              - polyglot.ast.ConstructorDecl
                - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
              - jif.ast.JifProcedureDecl
                - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
              - polyglot.ast.MethodDecl
                - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.Expr (also extends polyglot.ast.Receiver)
        - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
        - jif.ast.DowngradeExpr
          - jif.ast.DeclassifyExpr
          - jif.ast.EndorseExpr
        - jif.ast.LabelExpr
          - jif.ast.NewLabel
        - jif.ast.PrincipalExpr
        - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
          - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - polyglot.ast.Stmt
        - polyglot.ast.CompoundStmt
          - polyglot.ast.Block
            - jif.ast.Prologue
          - jif.ast.DowngradeStmt
            - jif.ast.CheckedEndorseStmt
            - jif.ast.DeclassifyStmt
            - jif.ast.EndorseStmt
              - jif.ast.CheckedEndorseStmt
      - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Receiver)
        - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.ConstArrayTypeNode
        - polyglot.ast.CanonicalTypeNode
          - jif.ast.JifCanonicalTypeNode
        - jif.ast.InstTypeNode
        - jif.ast.LabeledTypeNode
- jif.types.Path
  - jif.types.ExceptionPath
- jif.lang.Policy
  - jif.lang.ConfPolicy
  - jif.lang.IntegPolicy
- jif.lang.Principal
- polyglot.types.Resolver
  - polyglot.types.Context (also extends polyglot.util.Copy<T>)
    - jif.types.JifContext
- java.io.Serializable
  - jif.translate.ActsForConstraintToJavaExpr
  - polyglot.ast.Ext (also extends polyglot.util.Copy<T>, polyglot.ast.NodeOps)
    - jif.ast.JifExt
      - jif.extension.JifFieldDeclExt
      - jif.extension.JifProcedureDeclExt
      - jif.extension.JifStmtExt
    - jif.translate.ToJavaExt
  - jif.translate.LabelLeAssertionToJavaExpr
  - jif.translate.LabelToJavaExpr
  - polyglot.ast.Node (also extends polyglot.util.Copy<T>, polyglot.ast.NodeOps)
    - polyglot.ast.Ambiguous
      - jif.ast.AmbDynamicLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbNewArray (also extends polyglot.ast.Expr)
      - jif.ast.AmbParam (also extends jif.ast.ParamNode)
        - jif.ast.AmbExprParam
      - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Receiver)
      - jif.ast.AmbPrincipalNode (also extends jif.ast.PrincipalNode)
        - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbProviderLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends jif.ast.LabelNode)
      - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.TypeNode)
        - jif.ast.ConstArrayTypeNode
    - jif.ast.ConstraintNode<Constraint>
      - jif.ast.ActsForConstraintNode<Actor,Granter>
        - jif.ast.LabelActsForLabelConstraintNode
        - jif.ast.LabelActsForPrincipalConstraintNode
        - jif.ast.PrincipalActsForPrincipalConstraintNode
      - jif.ast.AuthConstraintNode
      - jif.ast.AutoEndorseConstraintNode
      - jif.ast.CallerConstraintNode
      - jif.ast.CanonicalConstraintNode
      - jif.ast.LabelActsForLabelConstraintNode
      - jif.ast.LabelActsForPrincipalConstraintNode
      - jif.ast.LabelLeAssertionNode
      - jif.ast.PrincipalActsForPrincipalConstraintNode
    - polyglot.ast.Documentable
      - polyglot.ast.ProcedureDecl (also extends polyglot.ast.CodeDecl)
        - polyglot.ast.ConstructorDecl
          - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
        - jif.ast.JifProcedureDecl
          - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
          - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
        - polyglot.ast.MethodDecl
          - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.TopLevelDecl
        - polyglot.ast.ClassDecl (also extends polyglot.ast.ClassMember)
          - jif.ast.JifClassDecl
    - jif.ast.LabelComponentNode
      - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.CanonicalLabelNode
      - jif.ast.JoinLabelNode
      - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>)
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.CanonicalLabelNode
        - jif.ast.JoinLabelNode
        - jif.ast.MeetLabelNode
      - jif.ast.MeetLabelNode
      - jif.ast.PolicyNode
    - jif.ast.ParamDecl
    - jif.ast.ParamNode
      - jif.ast.ActsForParamNode<Param>
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous, jif.ast.PrincipalNode)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.CanonicalLabelNode
        - jif.ast.CanonicalPrincipalNode
        - jif.ast.JoinLabelNode
        - jif.ast.LabelNode (also extends jif.ast.LabelComponentNode)
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.CanonicalLabelNode
          - jif.ast.JoinLabelNode
          - jif.ast.MeetLabelNode
        - jif.ast.MeetLabelNode
        - jif.ast.PrincipalNode (also extends polyglot.ast.Expr)
          - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbExprParam
      - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbParam (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbExprParam
      - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous, jif.ast.PrincipalNode)
        - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous, jif.ast.LabelNode)
      - jif.ast.CanonicalLabelNode
      - jif.ast.CanonicalPrincipalNode
      - jif.ast.JoinLabelNode
      - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>, jif.ast.LabelComponentNode)
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.CanonicalLabelNode
        - jif.ast.JoinLabelNode
        - jif.ast.MeetLabelNode
      - jif.ast.MeetLabelNode
      - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>, polyglot.ast.Expr)
        - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.CanonicalPrincipalNode
    - polyglot.ast.Prefix
      - polyglot.ast.QualifierNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.Receiver, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
      - polyglot.ast.Receiver (also extends polyglot.ast.Typed)
        - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
        - polyglot.ast.Expr (also extends polyglot.ast.Term)
          - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
          - jif.ast.DowngradeExpr
            - jif.ast.DeclassifyExpr
            - jif.ast.EndorseExpr
          - jif.ast.LabelExpr
            - jif.ast.NewLabel
          - jif.ast.PrincipalExpr
          - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
            - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
    - polyglot.ast.Term
      - polyglot.ast.ClassMember
        - polyglot.ast.ClassDecl (also extends polyglot.ast.TopLevelDecl)
          - jif.ast.JifClassDecl
        - polyglot.ast.CodeDecl (also extends polyglot.ast.CodeBlock)
          - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
            - polyglot.ast.ConstructorDecl
              - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
            - jif.ast.JifProcedureDecl
              - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
              - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
            - polyglot.ast.MethodDecl
              - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.CodeNode
        - polyglot.ast.CodeBlock
          - polyglot.ast.CodeDecl (also extends polyglot.ast.ClassMember)
            - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
              - polyglot.ast.ConstructorDecl
                - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
              - jif.ast.JifProcedureDecl
                - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
              - polyglot.ast.MethodDecl
                - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.Expr (also extends polyglot.ast.Receiver)
        - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
        - jif.ast.DowngradeExpr
          - jif.ast.DeclassifyExpr
          - jif.ast.EndorseExpr
        - jif.ast.LabelExpr
          - jif.ast.NewLabel
        - jif.ast.PrincipalExpr
        - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
          - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - polyglot.ast.Stmt
        - polyglot.ast.CompoundStmt
          - polyglot.ast.Block
            - jif.ast.Prologue
          - jif.ast.DowngradeStmt
            - jif.ast.CheckedEndorseStmt
            - jif.ast.DeclassifyStmt
            - jif.ast.EndorseStmt
              - jif.ast.CheckedEndorseStmt
      - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Receiver)
        - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.ConstArrayTypeNode
        - polyglot.ast.CanonicalTypeNode
          - jif.ast.JifCanonicalTypeNode
        - jif.ast.InstTypeNode
        - jif.ast.LabeledTypeNode
  - jif.translate.PrincipalToJavaExpr
  - polyglot.ext.param.types.Subst<Formal,Actual>
    - jif.types.JifSubst
  - polyglot.types.TypeObject (also extends polyglot.util.Copy<T>)
    - jif.types.Assertion
      - jif.types.ActsForConstraint<Actor,Granter>
      - jif.types.AuthConstraint
      - jif.types.AutoEndorseConstraint
      - jif.types.CallerConstraint
      - jif.types.LabelLeAssertion
    - polyglot.types.CodeInstance
      - polyglot.types.ProcedureInstance
        - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
          - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
        - polyglot.types.FunctionInstance
          - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.MemberInstance)
            - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
        - jif.types.JifProcedureInstance
          - jif.types.JifConstructorInstance (also extends polyglot.types.ConstructorInstance)
          - jif.types.JifMethodInstance (also extends polyglot.types.MethodInstance)
    - polyglot.types.Declaration
      - polyglot.types.ClassType (also extends polyglot.types.Importable, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
        - jif.types.JifClassType
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
          - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
            - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
          - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
        - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - polyglot.types.ConstructorInstance (also extends polyglot.types.MemberInstance, polyglot.types.ProcedureInstance)
        - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.MethodInstance (also extends polyglot.types.FunctionInstance, polyglot.types.MemberInstance)
        - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.VarInstance
        - polyglot.types.FieldInstance (also extends polyglot.types.MemberInstance)
          - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
        - jif.types.JifVarInstance
          - jif.types.JifFieldInstance (also extends polyglot.types.FieldInstance)
          - jif.types.JifLocalInstance (also extends polyglot.types.LocalInstance)
        - polyglot.types.LocalInstance
          - jif.types.JifLocalInstance (also extends jif.types.JifVarInstance)
        - jif.types.ParamInstance (also extends polyglot.ext.param.types.Param)
        - jif.types.PrincipalInstance
    - polyglot.types.MemberInstance
      - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.ReferenceType)
        - jif.types.JifClassType
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
          - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
            - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
          - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
        - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - polyglot.types.ConstructorInstance (also extends polyglot.types.Declaration, polyglot.types.ProcedureInstance)
        - jif.types.JifConstructorInstance (also extends jif.types.JifProcedureInstance)
      - polyglot.types.FieldInstance (also extends polyglot.types.VarInstance)
        - jif.types.JifFieldInstance (also extends jif.types.JifVarInstance)
      - polyglot.types.MethodInstance (also extends polyglot.types.Declaration, polyglot.types.FunctionInstance)
        - jif.types.JifMethodInstance (also extends jif.types.JifProcedureInstance)
    - polyglot.types.Named
      - polyglot.types.Importable
        - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.MemberInstance, polyglot.types.ReferenceType)
          - jif.types.JifClassType
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
            - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
              - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
            - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
          - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
            - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
      - polyglot.ext.param.types.Param
        - jif.types.ParamInstance (also extends polyglot.types.VarInstance)
      - polyglot.types.ParsedTypeObject
        - polyglot.types.ParsedClassType (also extends polyglot.types.ClassType)
          - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
    - jif.types.Param
      - jif.types.ActsForParam
        - jif.types.label.ArgLabel
        - jif.types.principal.BottomPrincipal
        - jif.types.principal.ConjunctivePrincipal
        - jif.types.label.CovariantParamLabel
        - jif.types.principal.DisjunctivePrincipal
        - jif.types.label.DynamicLabel
        - jif.types.principal.DynamicPrincipal
        - jif.types.principal.ExternalPrincipal
        - jif.types.label.JoinLabel
        - jif.types.label.Label
          - jif.types.label.ArgLabel
          - jif.types.label.CovariantParamLabel
          - jif.types.label.DynamicLabel
          - jif.types.label.JoinLabel
          - jif.types.label.MeetLabel
          - jif.types.label.NotTaken
          - jif.types.label.PairLabel
          - jif.types.label.ParamLabel
          - jif.types.label.ProviderLabel
          - jif.types.label.ThisLabel
          - jif.types.label.UnknownLabel
          - jif.types.label.VarLabel (also extends jif.types.label.Variable)
          - jif.types.label.WritersToReadersLabel
        - jif.types.label.MeetLabel
        - jif.types.label.NotTaken
        - jif.types.label.PairLabel
        - jif.types.label.ParamLabel
        - jif.types.principal.ParamPrincipal
        - jif.types.principal.Principal
          - jif.types.principal.BottomPrincipal
          - jif.types.principal.ConjunctivePrincipal
          - jif.types.principal.DisjunctivePrincipal
          - jif.types.principal.DynamicPrincipal
          - jif.types.principal.ExternalPrincipal
          - jif.types.principal.ParamPrincipal
          - jif.types.principal.TopPrincipal
          - jif.types.principal.UnknownPrincipal
          - jif.types.principal.VarPrincipal (also extends jif.types.label.Variable)
        - jif.types.label.ProviderLabel
        - jif.types.label.ThisLabel
        - jif.types.principal.TopPrincipal
        - jif.types.label.UnknownLabel
        - jif.types.principal.UnknownPrincipal
        - jif.types.label.VarLabel (also extends jif.types.label.Label, jif.types.label.Variable)
        - jif.types.principal.VarPrincipal (also extends jif.types.principal.Principal, jif.types.label.Variable)
        - jif.types.label.WritersToReadersLabel
      - jif.types.label.ArgLabel
      - jif.types.principal.BottomPrincipal
      - jif.types.principal.ConjunctivePrincipal
      - jif.types.label.CovariantParamLabel
      - jif.types.principal.DisjunctivePrincipal
      - jif.types.label.DynamicLabel
      - jif.types.principal.DynamicPrincipal
      - jif.types.principal.ExternalPrincipal
      - jif.types.label.JoinLabel
      - jif.types.label.Label
        - jif.types.label.ArgLabel
        - jif.types.label.CovariantParamLabel
        - jif.types.label.DynamicLabel
        - jif.types.label.JoinLabel
        - jif.types.label.MeetLabel
        - jif.types.label.NotTaken
        - jif.types.label.PairLabel
        - jif.types.label.ParamLabel
        - jif.types.label.ProviderLabel
        - jif.types.label.ThisLabel
        - jif.types.label.UnknownLabel
        - jif.types.label.VarLabel (also extends jif.types.label.Variable)
        - jif.types.label.WritersToReadersLabel
      - jif.types.label.MeetLabel
      - jif.types.label.NotTaken
      - jif.types.label.PairLabel
      - jif.types.label.ParamLabel
      - jif.types.principal.ParamPrincipal
      - jif.types.principal.Principal
        - jif.types.principal.BottomPrincipal
        - jif.types.principal.ConjunctivePrincipal
        - jif.types.principal.DisjunctivePrincipal
        - jif.types.principal.DynamicPrincipal
        - jif.types.principal.ExternalPrincipal
        - jif.types.principal.ParamPrincipal
        - jif.types.principal.TopPrincipal
        - jif.types.principal.UnknownPrincipal
        - jif.types.principal.VarPrincipal (also extends jif.types.label.Variable)
      - jif.types.label.ProviderLabel
      - jif.types.label.ThisLabel
      - jif.types.principal.TopPrincipal
      - jif.types.label.UnknownLabel
      - jif.types.UnknownParam
      - jif.types.principal.UnknownPrincipal
      - jif.types.label.VarLabel (also extends jif.types.label.Label, jif.types.label.Variable)
      - jif.types.principal.VarPrincipal (also extends jif.types.principal.Principal, jif.types.label.Variable)
      - jif.types.label.WritersToReadersLabel
    - jif.types.label.Policy
      - jif.types.label.ConfPolicy
        - jif.types.label.ConfProjectionPolicy
        - jif.types.label.JoinConfPolicy (also extends jif.types.label.JoinPolicy<P>)
        - jif.types.label.MeetConfPolicy (also extends jif.types.label.MeetPolicy<P>)
        - jif.types.label.ReaderPolicy
      - jif.types.label.ConfProjectionPolicy
      - jif.types.label.IntegPolicy
        - jif.types.label.WriterPolicy
      - jif.types.label.JoinConfPolicy (also extends jif.types.label.ConfPolicy, jif.types.label.JoinPolicy<P>)
      - jif.types.label.JoinPolicy<P>
        - jif.types.label.JoinConfPolicy (also extends jif.types.label.ConfPolicy)
      - jif.types.label.MeetConfPolicy (also extends jif.types.label.ConfPolicy, jif.types.label.MeetPolicy<P>)
      - jif.types.label.ReaderPolicy
      - jif.types.label.WriterPolicy
    - polyglot.types.Qualifier
      - polyglot.types.Type
        - polyglot.ext.param.types.InstType<Formal,Actual>
          - jif.types.JifPolyType (also extends jif.types.JifClassType)
            - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
          - jif.types.JifSubstType (also extends jif.types.JifClassType, polyglot.ext.param.types.SubstType<Formal,Actual>)
        - jif.types.LabeledType
        - polyglot.types.ReferenceType
          - polyglot.types.ArrayType
            - jif.types.ConstArrayType
          - polyglot.types.ClassType (also extends polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.MemberInstance)
            - jif.types.JifClassType
              - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType, polyglot.types.ParsedClassType)
              - jif.types.JifPolyType (also extends polyglot.ext.param.types.InstType<Formal,Actual>)
                - jif.types.JifParsedPolyType (also extends polyglot.types.ParsedClassType)
              - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, polyglot.ext.param.types.SubstType<Formal,Actual>)
            - polyglot.types.ParsedClassType (also extends polyglot.types.ParsedTypeObject)
              - jif.types.JifParsedPolyType (also extends jif.types.JifPolyType)
        - polyglot.ext.param.types.SubstType<Formal,Actual>
          - jif.types.JifSubstType (also extends polyglot.ext.param.types.InstType<Formal,Actual>, jif.types.JifClassType)
- jif.net.SocketAcceptor
- jif.types.Solver
- polyglot.ast.Typed
  - polyglot.ast.Receiver (also extends polyglot.ast.Prefix)
    - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
    - polyglot.ast.Expr (also extends polyglot.ast.Term)
      - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
      - jif.ast.DowngradeExpr
        - jif.ast.DeclassifyExpr
        - jif.ast.EndorseExpr
      - jif.ast.LabelExpr
        - jif.ast.NewLabel
      - jif.ast.PrincipalExpr
      - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
        - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.CanonicalPrincipalNode
    - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
      - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.ConstArrayTypeNode
      - polyglot.ast.CanonicalTypeNode
        - jif.ast.JifCanonicalTypeNode
      - jif.ast.InstTypeNode
      - jif.ast.LabeledTypeNode
- polyglot.types.TypeSystem
  - polyglot.ext.param.types.ParamTypeSystem<Formal,Actual>
    - jif.types.JifTypeSystem
- jif.types.label.Variable
  - jif.types.label.VarLabel (also extends jif.types.label.Label)
  - jif.types.principal.VarPrincipal (also extends jif.types.principal.Principal)

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - jif.JifOptions.JifLocations (implements javax.tools.JavaFileManager.Location)
    - jif.types.InformationFlowTrace.Direction
    - jif.visit.IntegerBoundsChecker.Bound.Type