Hi

On 29 Aug 2008, at 21:12, Jonathan Cast wrote:


If you want to avoid infinite normal forms (or just plain lack of normal
forms, as in let x = x in x or (\x -> x x) (\ x -> x x)), you need to
follow three rules:

1) Static typing

With you there.

2) No value recursion

Mostly with you: might allow productive corecursion
computing only on demand.

3) If you allow data types, no recursive data types

I can think of a few Turing incomplete languages with
(co)recursive data types, so

Otherwise, your language will be Turing-complete,

seems suspect to me.

It's quite possible to identify a total fragment of
Haskell, eg, by seeing which of your Haskell programs
compile in Agda.

Things aren't as hopeless as you suggest.

Cheers

Conor

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

Reply via email to