# Maybe not so easy question...

**Daniel Wang
**
danwang@CS.Princeton.EDU

*07 Apr 2001 18:56:15 -0400*

I'm playing games with the MLton frontend, so that I can reuse
closure-convert.fun to spit out code in my own IL and then convert my IL
back to MLton's CPS.
Doing, so seems to be tickling a bug related to the way boolean's are
handled that I don't quite understand...
The input the simplify pass..
Datatypes:
bool = false | true
exn1067_0 = Match_1064_0 | Bind_1065_0
Globals:
Functions:
fun main_1068_0() =
let
val x_1075_0 = ()
val x_1076_0 = MY_halt()
val t1077_0 = x_1075_0
val x_3 = MY_halt()
val x_2 = MY_FromId(x_3)
in
x_2
end
Main: main_1068_0
The input to simplifyTypes
Datatypes:
exn1067_0 =
bool = dummy_0
Globals:
val unit_0 = ()
Functions:
fun main_1068_0() =
let
val x_1076_0 = MY_halt()
val x_3 = MY_halt()
val x_2 = MY_FromId(x_3)
in
()
end
Main: main_1068_0
uncaught exception Fail: bug: true has no info property
raised at: mlton/library/basic/error.sml:6.21-6.47
mlton/library/basic/trace.sml:315.16-315.19
mlton/library/basic/trace.sml:315.16-315.19
my-compile.sml:244.19
mlton/library/basic/dynamic-wind.sml:7.40-7.43
mlton/library/basic/dynamic-wind.sml:7.40-7.43
What I don't understand is where it's finding the "true" constructor as it
doesn't seem to occur anywhere in the input. I also don't know why the bool
get's replaced with this "dummy_0" constructor....
Any hints?