Are equal uuids expected to be identical? in CLR? I feel like I ran into this in the past, but I don't recall what resulted from that (if anything).
;; cljr
=> (def uuid-1 #uuid "550e8400-e29b-41d4-a716-446655440000")
=> (def uuid-2 #uuid "550e8400-e29b-41d4-a716-446655440000")
=> (identical? uuid-1 uuid-2)
true
;; clj
=> (def uuid-1 #uuid "550e8400-e29b-41d4-a716-446655440000")
=> (def uuid-2 #uuid "550e8400-e29b-41d4-a716-446655440000")
=> (identical? uuid-1 uuid-2)
falsethat's probably up to the host environment, right? identical? checks if the two objects are "the same object" which will necessarily differ depending on implementation details
for example, in python3, numbers below 257 have a stable identity, no matter how they're calculated
>>> a, b = 1, int(str(1))
>>> a is b
True
>>> x, y = 300, int(str(300))
>>> x is y
FalseUUIDs are a structure type in C# no? Perhaps they compare by type + raw bytes.
Ah, yeah I think you're right. They are considered value types in C#, so no object ref.
user=> (identical? #uuid "550e8400-e29b-41d4-a716-446655440000" #uuid "550e8400-e29b-41d4-a716-446655440000")
trueSo just boxing since you access them from vars?
user=> (let [a #uuid "550e8400-e29b-41d4-a716-446655440000" b #uuid "550e8400-e29b-41d4-a716-446655440000"] (identical? a b))
true