You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, Hydra's type inference infers, and stores as an annotation, a type not only for every element in a graph, but also for every subterm of every element. If you think of a term as a tree, every node in the tree bears a type annotation after type inference. Because every subterm has an annotation, we don't have to anticipate when the annotations will actually be needed, and when they will not. The Java coder, for example, relies much more heavily on type annotations than the Haskell coder does.
We could eliminate most of the overhead of computing, transforming, and storing these annotations if we simply provide a context-specific criterion for adding them. If the criterion evaluates to true, then we store an annotation. If not, then we don't. The Haskell coder only needs top-level annotations on elements, and nothing more. The Java coder additionally needs annotations on lambdas and other function terms, as well as in a few other places -- but it certainly doesn't need an annotation on every subterm. Type inference should be much faster after this is fixed.
The text was updated successfully, but these errors were encountered:
Currently, Hydra's type inference infers, and stores as an annotation, a type not only for every element in a graph, but also for every subterm of every element. If you think of a term as a tree, every node in the tree bears a type annotation after type inference. Because every subterm has an annotation, we don't have to anticipate when the annotations will actually be needed, and when they will not. The Java coder, for example, relies much more heavily on type annotations than the Haskell coder does.
We could eliminate most of the overhead of computing, transforming, and storing these annotations if we simply provide a context-specific criterion for adding them. If the criterion evaluates to true, then we store an annotation. If not, then we don't. The Haskell coder only needs top-level annotations on elements, and nothing more. The Java coder additionally needs annotations on lambdas and other function terms, as well as in a few other places -- but it certainly doesn't need an annotation on every subterm. Type inference should be much faster after this is fixed.
The text was updated successfully, but these errors were encountered: