Dear list,

I am interested in learning more about static analysis of Haskell code. Specifically of the relation between arguments of recursive and non-recursive calls.

For example if we look at the ++ function from Prelude:

        (++) []     ys = ys
        (++) (x:xs) ys = x : xs ++ ys

amongst others, we could infer the relations:

        ys_i+1     = ys_i
        (x:xs)_i+1 = xs_i

Searching the web I found several tools (HLint, Haskabelle, Sourcegraph), but I am interested in the theory behind this. If you could recommend a paper or a book on this topic I would be grateful.

Thanks,
  Maarten Faddegon
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to