package Ġorg . elixir _ lang . beam . chunk . debug _ info . v 1 . erl _ abstract _ code . abstract _ code _ compiler _ options . abstract _ code Ċ Ċ data Ġclass ĠScope ( val Ġvar Name Set : ĠSet < String >, Ġval Ġpin ning : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠ Ġfun Ġunion ( other : ĠScope ): ĠScope Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġother Var Name Set Ġ= Ġother . varName Set ĊĠĠĠĠĠĠĠ Ġval Ġother Pin ning Ġ= Ġother . pin ning ĊĠĠĠĠĠĠĠ Ġval Ġpin ning Union Ġ= Ġpin ning Ġ|| Ġother Pin ning ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpin ning Ġ== Ġpin ning Union Ġ&& Ġvar Name Set . contains All ( other Var Name Set ) Ġ-> Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġother Pin ning Ġ== Ġpin ning Union Ġ&& Ġother Var Name Set . contains All ( varName Set ) Ġ-> Ġother ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScope ( varName Set . union ( other Var Name Set ), Ġpin ning Union ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠEMPTY Ġ= ĠScope ( empty Set ()) ĊĠĠĠ Ġ} Ċ } Ċ