úÎÛ None+-./4N+Labels are either strings (identifiers) or empty (see 12.12 of the spec)KAnnotates statements with their label sets. Assuming you've also imported ,  and , the example use would be: lsAnalysis ::  a ->  (a,   e) lsAnalysis = annotateLabelSets snd (\labs -> second $ union labs) . reannotate (a -> (a, empty)) 12 ECMA262: the production  Identifier :  Statement is evaluated by adding  Identifier to the label ser of  Statement and then evluating  Statement . If the LabelledStatementT itsef has a non-empty label set, these labels are also added to the label set of  Statement5 before evaluating it. ... Prior to evaluation of a LabelledStatement, the contained  Statement@ is regarded as possessing an empty label set, unless it is an IterationStatement or a SwitchStatement\, in which case it is regarded as possessing a label set consisting of the single element, empty. annotation read functionannotation write functionthe script to annotate  None+-./4NEThe statically-determinate lexical structure of a JavaScript program.cIntermediate data structure that contains locally declared names and all references to identifers. !"enclosing environment local environment and references"environment and global definitionsbrowser/testing environment !"#        !"#$%&'()*+langu_CQGdyRTjcDe50fYQk4zAUD&Language.ECMAScript3.Analysis.LabelSet0Language.ECMAScript3.Analysis.LexicalEnvironmentLanguage.ECMAScript3.Syntax AnnotationsControlArrowDataSetLabel EmptyLabelannotateLabelSetsEnvTreeenv localVarslangu_KGX2wT89rDcJKu6Q6wlRbA JavaScriptconta_2C3ZI8RgPO2LBMidXKTvIU Data.Set.BaseannotateStatementannotateFuncStmtBodiesannotateFuncExprBodiesid2Label $fShowLabelPartial partialLocalspartialReferences partialNestedemptyrefdeclnestunions javascriptlvalueexpr caseClause catchClausevarDeclforInit forInInitstmt makeEnvTree