From: Vesa K. <ves...@gm...> - 2007-10-28 08:44:07
|
Consider the following program: <-- intinf-pat.mlb --> $(SML_LIB)/basis/basis.mlb intinf-pat.sml <-- intinf-pat.mlb --> <-- intinf-pat.sml --> fun is0 (0 : IntInf.int) = true | is0 _ = false <-- intinf-pat.sml --> Compiling it with MLKit (SVN rev 2287) gives the output: <---> [reading source file: intinf-pat.sml] Impossible: LambdaStatSem.SWITCH_I (case var1 of 0 => true | _ => false) LambdaStatEnv: [ ConEnv: { IntInf -> \/().((int list*bool)->intinf), :: -> \/('a2).(('a2*'a2 list)->'a2 list), nil -> \/('a0).'a0 list, false -> \/().bool, true -> \/().bool }; TyNameEnv: { exn -> [], vector -> [], ref -> [], list -> [nil,::], char -> [], string -> [], real -> [], word32 -> [], word -> [], word8 -> [], intinf -> [IntInf], int32 -> [], int -> [], bool -> [true,false] }; LvarEnv: { >= -> \/().((intinf*intinf)->bool), <= -> \/().((intinf*intinf)->bool), > -> \/().((intinf*intinf)->bool), < -> \/().((intinf*intinf)->bool), abs -> \/().(intinf->intinf), mod -> \/().((intinf*intinf)->intinf), div -> \/().((intinf*intinf)->intinf), - -> \/().(<intinf, intinf>->intinf), + -> \/().((intinf*intinf)->intinf), * -> \/().(<intinf, intinf>->intinf), ~ -> \/().(intinf->intinf), toWord31 -> \/().(intinf->word), fromWord31 -> \/().(word->intinf), toWord8 -> \/().(intinf->word), fromWord8X -> \/().(word->intinf), fromWord8 -> \/().(word->intinf), toWord -> \/().(intinf->word), fromWord -> \/().(word->intinf), toWord32 -> \/().(intinf->word32), fromWordX -> \/().(word->intinf), fromWord31X -> \/().(word->intinf), fromWord32X -> \/().(word32->intinf), fromWord32 -> \/().(word32->intinf), fromInt31 -> \/().(int->intinf), fromInt32 -> \/().(int32->intinf), fromInt -> \/().(int->intinf), toInt -> \/().(intinf->int), toInt32 -> \/().(intinf->int32), toInt31 -> \/().(intinf->int), var1 -> \/().intinf, is0 -> \/().(intinf->bool) }; ExConEnv: {Bind -> NONE, Match -> NONE, Div -> NONE} ] let fun is0 var1 = (case var1 of 0 => true | _ => false) in FRAME(is0: FORALL'a0.'a0) end Stopping compilation of MLB-file due to error (code 1). <---> -Vesa Karvonen |