[Haskell-cafe] I wrote a type checker: ARF. Is it novel?

Andreas Abel andreas.abel at ifi.lmu.de
Tue Sep 8 12:42:01 UTC 2015


Why not use one of the 40-year old type checking algorithms?

   https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system

What type do you infer for

   def id(n):
       return n

?

On 07.09.2015 05:21, David Foster wrote:
> I've written a small untyped language calculus (ARF) and an
> interprocedural flow-based type checker to explore techniques for
> efficiently inferring all types in the presence of recursive function
> calls, with no prior type declarations or annotations required in the
> original program.
>
> The type checking algorithm I've come up with appears not only to work
> but also to have good performance: O(m^2) time in the worst case and
> O(m) time in the average case, where m is the number of functions in the
> program.
>
> So the question I'd like to pose to any type system buffs on this list is:
> (1) Is such an interprocedural flow-based type checking algorithm with
> that kind of performance likely to be novel?
>
> And if you have some interest and time to actually review the strategy
> and/or implementation of the algorithm at
> <https://github.com/davidfstr/arf#assign-recurse-flow-arf>, I'd love to
> know:
> (2) Are there similar type checking algorithms that already exist in the
> academic literature?
>
> I'm posting these questions here because I'm guessing that a number of
> folk that work with type systems and type checkers are likely to be
> subscribed to this list. If there are other more-appropriate venues, I'd
> love to hear about about them as well.
>


-- 
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel at gu.se
http://www2.tcs.ifi.lmu.de/~abel/


More information about the Haskell-Cafe mailing list