Hello!

As Dee Mon (http://thedeemon.com) has noticed that subgraph with type signature 
always regarded as function.

For example, in

        test1 n = a + a where a = somefunc 0 + 1

'a' is subgraph and computed only once but in

        test2 n = a + a where
            a :: Int
            a = somefunc 0 + 1

'a' regarded as function and computes twice (i.e. no memoization occurs).

Why is and how to coincide this compiler behavior with the language spec?

(Fresh Clean 2.3 installation was used without any modifications)

Sincerely yours,
Vag.

----------------------------------------------------------------

module test

import StdEnv, StdDebug

Start = test 10
test n = a + a where
// a :: Int
    a = somefunc 0 + 1
somefunc n = trace "!" n
_______________________________________________
clean-list mailing list
[email protected]
http://mailman.science.ru.nl/mailman/listinfo/clean-list

Reply via email to