[Ur] Questions regarding "nesting" of `xml ctx inp []` and `transaction (xml ctx inp [])`

Stefan Scott Alexander stefanscottalexx at gmail.com
Wed Jul 22 19:17:17 EDT 2015


Assumption: In each of the following statements, assume that the additional
requirements imposed by `ctx` are satisfied (ie, the "record-based 'poor
man’s subtyping' encoding", as described in section 8.5 on page 41 of the
manual).

Then, which of the following statements are true?

(1) It IS possible to "nest" things of type:

  `xml ctxA inpA []`

inside another thing of type:

  `xml ctxB inpB []`


(2) It IS possible to "nest" things of type:

  `xml ctxA inpA []`

inside another thing of type:

  `transaction (xml ctxB inpB [])`


(2) It is NOT possible to "nest" things of type:

  `transaction (xml ctxA inpA [])`

inside another thing of type:

  `xml ctxB inpB []`


My Guess: I'm pretty sure all three statements are true.

In other words, you CAN nest:

(1) `xml` in `xml`
(2) `xml` in `transaction xml`

But you CANNOT nest:

(3) `transaction xml` in `xml`


Informally, this would meet that "transactional-ness" ("transactionality"?)
must "bubble up" from (inner) subterms to the (outer) containing term. If
you want to have a transactional term anywhere inside a larger term, then
that larger term must itself also be transactional.

Does this make any sense?

###
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.impredicative.com/pipermail/ur/attachments/20150722/895c54ed/attachment.html>


More information about the Ur mailing list