:: {N:n, n:n?, B:b, b:b?, s:s, ss:s*, o:o, g:g, X:n, Y:n, Z:n}

"B" in ""
"B" in null
null in null
null !in null
null not in null

"" in ss
null in ss
s in ss
s !in ss
s not in ss

"B" in ss
"B" !in ss
"B" ~in ss
"B" !~in ss
"B" not~in ss
"B" not ~in ss

"B" in [1]
"B" in ["B"]
"B" in ["B", null]
"B" in ["B", null, 1]
"B" in [null]
"B" in []

null in [1]
null in [1, null]
null in ["B"]
null in [1, null, "B"]

1 in [1]
1 in [1, null]
1 in [1, null, "B"]
1 in [1, 3000, 1000000000]
1000000000 in [1, 2, 3]

{A:1} in [{A:1}]
[{A:1}] in [[{A:1}]]

"B" ! in ss
"B" ~ in ss
"B" ! ~in ss
"B" !~ in ss
"B" ! ~ in ss

{A:"hi"} ~in [{A:"HI"}]
[{A:"hi"}] ~in [[{A:"HI"}]]

// *** Lifting
:: {s:s*, ss:s**}

s in ss

"B" in [[1]]
"B" in [["B"], ["A"]]
"B" in [["B", null], ["B"], ["A"]]
"B" in [["B", null, 1], [1]]
"B" in [[1],[]]

null in [[1], [null]]
null in [[1, null], []]
null in [["B"], [1]]
null in [[1, null, "B"]]

1 in [[1], [2], [1,2]]
1 in [[1, null], [2], [1,2], [null]]
1 in [[1, null, "B"]]

1 in [[[Range(10), Range(20)], [Range(30)]]]

Range(1) in [Range(1)]

3 ~in Range(10)
3 !~in Range(10)
3 ~!in Range(10)
3 ~ not in Range(10)
3 not ~ in Range(10)

3 + 5 in Range(10)
14 in [ 3, 8 + 6 ]
