So I was reading category theory, and it talked about initial object and the terminal object. In haskell, () is the unit, so it was the first thing I tried in ATS Postiats.
val unit = ()
implement main0 () = ()
Awesome, that compiles. So I tried putting the unit in a tuple, just for testing:
val unit = ()
val tuple = (1, unit)
implement main0 () = ()
It doesn't compile, saying
So the question is, since this is a limitation coming from C, will this be able to change in ATS3 since it will use LLVM?