|
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
|