[clean-list] Compiler dying with message `dart' when fusion turned on

Vag Vagoff vag.vagoff at gmail.com
Tue Oct 6 02:22:48 MEST 2009


Compiler dying with very strange message `drat' on black screen when 
fusion turned on:

module utf

Start = 1

import StdEnv, StdMaybe

class indexBy i a e :: (a e) i -> e

:: Utf8Str a
    = Utf8Compressed !{Int}
    | Utf8Indexed !{Int} !{#Int}

:: Utf8Char = { uc :: !Int }

instance == Utf8Char where (==) {uc=a} {uc=b} = a == b

instance AsString (Utf8Str Utf8Char)
where
    substring str sub = searchSubstring str sub

searchSubstring str sub
    = search str 0 sub 0
where
    search s i0 u j
        #! i = i0 + j
        | indexBy s i == indexBy u j = search s (i0 + 1) u 0
        = search s i0 u (j + 1)

instance indexBy Int Utf8Str Utf8Char
where
    indexBy a=:(Utf8Compressed _) i = indexBy a i
    indexBy a=:(Utf8Indexed _ is) i = indexBy a i

class AsString s
where
    substring :: s s -> Maybe Int


(all options are by defaut except `fusion')



More information about the clean-list mailing list