Develop a solution to support the addition operation for links, aiming to provide a compact syntax and short notation for doublets in programming languages that do not support short syntactic notation for creating tuples. Consider the possibility of using a decorator that returns a structure/class Doublet with a defined + operator, storing a reference to the link storage and the doublet identifier, as well as its values.
Examples of operations with links and their analogs with string concatenation:
| Doublets Expression |
String Concatenation |
| 1 + 1 = (1 1) |
"1" + "1" = "11" |
| (1 2) + (3 4) = ((1 2) (3 4)) |
"12" + "34" = "1234" |
| ((a b) c) + (e (d f)) = (((a b) c) (e (d f))) |
"abc" + "edf" = "abcedf" |