The problem here is that : is not an operator, so the expression that the parser returns is:
intmp
Then this line in the header
fun print.c [c : intmp] = print_intmp!c;;
causes the interpreter to try to print the intmp type using the base function print_intmp which only works for actual intmp objects. This is related to our current discussions on the semantics of types and we need to work out what this means.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It's erroneously calling print_intmp with something that isn't an intmp. Do base functions need to be checked by type? If so, it's still related to our types discussion. Until we solve these things I can't fix the segmentation fault.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The problem here is that : is not an operator, so the expression that the parser returns is:
intmp
Then this line in the header
fun print.c [c : intmp] = print_intmp!c;;
causes the interpreter to try to print the intmp type using the base function print_intmp which only works for actual intmp objects. This is related to our current discussions on the semantics of types and we need to work out what this means.
There should still be no coredump!
It's erroneously calling print_intmp with something that isn't an intmp. Do base functions need to be checked by type? If so, it's still related to our types discussion. Until we solve these things I can't fix the segmentation fault.