280def participantCompileJoin =
281 (lambda unrestricted left : (family ParticipantIndex) .
282 (lambda unrestricted right : (family ParticipantIndex) .
283 (participantRequire
284 (family ParticipantIndex)
285 (naturalLess (participantUpperOf left) (participantLowerOf right))
286 (constructor ParticipantGroupFailure ParticipantUnorderedJoin)
287 (let unrestricted size =
288 (naturalAdd (participantCountOf left) (participantCountOf right))
289 in
290 (participantRequire
291 (family ParticipantIndex)
292 (naturalLessOrEqual size participantWordLimit)
293 (constructor ParticipantGroupFailure ParticipantCoordinateOverflow)
294 (constructor
295 StdResult
296 StdSuccess
297 (family ParticipantGroupFailure)
298 (family ParticipantIndex)
299 (constructor
300 ParticipantIndex
301 ParticipantJoinIndex
302 (constructor
303 ParticipantBounds
304 ParticipantBoundsOf
305 (participantLowerOf left)
306 (participantUpperOf right)
307 size
308 (naturalAdd 1 (naturalAdd (participantNodesOf left) (participantNodesOf right)))
309 (naturalAdd
310 1
311 (naturalSelect
312 (naturalLess (participantDepthOf left) (participantDepthOf right))
313 (participantDepthOf right)
314 (participantDepthOf left))))
315 left
316 right)))))))The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.