Stronger static types, was Re: [Haskell-cafe] Re: Versioning

Jacques Carette carette at mcmaster.ca
Thu Dec 21 17:03:30 EST 2006


Yes, dependent types have a lot to do with all this.  And I am an eager 
lurker of all this Epigram.

Scott Brickner wrote:
> Jacques Carette wrote:
>> Array out-of-bounds, fromJust, head on an empty list, and 
>> pattern-match failures are in my list of things I wish the type 
>> system could help me with.  And sometimes it can [again, see Oleg's 
>> posts].  But is definitely where I am *eager* to see developments.
> I agree with you, though - I'm very eager to see further developments 
> along these lines. It's the main reason I started learning Haskell, 
> and I'm absolutely convinced that functional programming and this kind 
> of increasingly strong typing are the way of the future for programming.
What must be remembered is that full dependent types are NOT needed to 
get a lot of the benefits of dependent-like types.  This is what some of 
Oleg's type gymnastics shows (and others too).  My interest right now 
lies in figuring out exactly how much can be done statically. 

For example, if one had decent naturals at the type level (ie naturals 
encoded not-in-unary) with efficient arithmetic AND a few standard 
decision procedures (for linear equalities and inequalities say), then 
most of the things that people currently claim need dependent types are 
either decidable or have very strong heuristics that "work" [1].

Jacques

[1]
@book{SymbolicAnalysis,
  author    = {Thomas Fahringer and
               Bernhard Scholz},
  title     = {Advanced Symbolic Analysis for Compilers: New Techniques
               and Algorithms for Symbolic Program Analysis and 
Optimization},
  publisher = pub-SV,
  series    = {Lecture Notes in Computer Science},
  volume    = {2628},
  year      = {2003},
  isbn      = {3-540-01185-4}
}


More information about the Haskell-Cafe mailing list