[clean-list] Re: Clean compiler exited abnormally

Siegfried Gonzi siegfried.gonzi@kfunigraz.ac.at
Thu, 13 Sep 2001 14:44:46 +0200


"G.W.M. Vissers" wrote:

> Yes, I did make an implementation AND a definition module, and everything
> is imported correctly, I think. I have included the output of
> clm -v bla -o bla below. It seems that the types are all ok, but that the
> compiler either cannot work it's way through the strictness analysis or
> is unable to generate (ABC ?) code:

Try it with strictness information: 

But then you may not use the size-function in your function; but you can
pass the size (for the test case only) directly or use it this way:


str1d :: {#t} -> String | ArrayElem, toString t
str1d x = str1d` 0
where
  //n = size x
  str1d` i
  | i == (size x) = ""
  = toString x.[i] +++ " " +++ str1d` (inc i)

str2d :: {*{#t}} -> String | ArrayElem, toString t
str2d xx = str2d` 0
where
  //n = size xx
  str2d` i
  | i == (size xx) = ""
  = str1d xx.[i] +++ "\n" +++ str2d` (inc i)

Start = str2d {{1,2,3},{3,4,5},{5,6,7}}


Notice: str1d will not accept: *{#} only str2d accepts unique
information!


Please report what will happen now.

S. Gonzi