úÎÏNone+-./3M+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+-./3METhe 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 !"#        !"#$%&'()*+"language-ecmascript-analysis-0.9.1&Language.ECMAScript3.Analysis.LabelSet0Language.ECMAScript3.Analysis.LexicalEnvironmentLanguage.ECMAScript3.Syntax AnnotationsControlArrowDataSetLabel EmptyLabelannotateLabelSetsEnvTreeenv localVarslanguage-ecmascript-0.17 JavaScriptcontainers-0.5.5.1 Data.Set.BaseannotateStatementannotateFuncStmtBodiesannotateFuncExprBodiesid2Label $fShowLabelPartial partialLocalspartialReferences partialNestedemptyrefdeclnestunions javascriptlvalueexpr caseClause catchClausevarDeclforInit forInInitstmt makeEnvTree