ASH HAFEZ wrote:
>
> Hi Andy,
>
> I think you may have misunderstood the error message i was referring to
>
> here's a screen dump...
>
> Prelude>
> Prelude>
> Prelude> f' [1..3] where f' ~[x] = [x]
> [
> Program error: {v1889 [1,2] ++ takeWhile (flip (Ord_class.Ord_v1797
> (Make.Ord instEq_v32 primCmpInteger (Ord_class.Ord_v1796 (Make.Ord
> instEq_v32 primCmpInteger (Ord_class.Ord_v1796 (Make.Ord instEq_v32
> primCmpInteger (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> (Ord_class{Interrupted!}
>
Thanks for the output. I still stand by my original comments,
though. From the semantic of Haskell, and given your definition
of f', I believe
f' [1..3]
is not valid, and should give an error at runtime.
Perhaps I'm misunderstanding you.
What are you trying to do with ~[x] ?
What do you expect f' [1..3] to do?
Andy