In the proposed spec interpreter, we have:
...
and func_type = FuncT of result_type * result_type
and cont_type = ContT of heap_type
My question is: why is cont_type defined this way. This syntactically permits invalid forms of continuation types. Why isn't it the same as a func_type:
and func_type = FuncT of result_type * result_type
and cont_type = ContT of result_type * result_type