human: Given a node-centered hypergraph: <hypergraph>, where nodes represent papers and hyperedges represent sets of papers co-cited by a source paper.

Details of the hypergraph:
Center node: "hazelnut a bidirectionally typed structure editor calculus"
  Abstract: Structure editors allow programmers to edit the tree structure of a program directly. This can have cognitive benefits, particularly for novice and end-user programmers. It also simplifies matters for tool designers, because they do not need to contend with malformed program text. This paper defines Hazelnut, a structure editor based on a small bidirectionally typed lambda calculus extended with holes and a cursor. Hazelnut goes one step beyond syntactic well-formedness: its edit actions operate over statically meaningful incomplete terms. Naively, this would force the programmer to construct terms in a rigid "outside-in" manner. To avoid this problem, the action semantics automatically places terms assigned a type that is inconsistent with the expected type inside a hole. This safely defers the type consistency check until the term inside the hole is finished. Hazelnut is a foundational type-theoretic account of typed structure editing, rather than an end-user tool itself. To that end, we describe how Hazelnut's rich metatheory, which we have mechanized in Agda, guides the definition of an extension to the calculus. We also discuss various plausible evaluation strategies for terms with holes, and in so doing reveal connections with gradual typing and contextual modal type theory, the Curry-Howard interpretation of contextual modal logic. Finally, we discuss how Hazelnut's semantics lends itself to implementation as a functional reactive program. Our reference implementation is written using js_of_ocaml.

Connected through hyperedge HE-1 (induced by source paper "foundations of a live data exploration environment"):
  with members:
    - "live functional programming with typed holes"
    - "exploratory and live programming and coding a literature study comparing perspectives on liveness"
    - "types from data making structured data first class citizens in f"
    - "incremental computation with names"
    - "denotation of contextual modal type theory cmtt syntax and meta programming"

Connected through hyperedge HE-2 (induced by source paper "the meaning of a program change is a change to the program s meaning"):
  with members:
    - "live functional programming with typed holes"
    - "imperative functional programs that explain their work"
    - "incremental computation with names"

Connected through hyperedge HE-3 (induced by source paper "constraint based type directed program synthesis"):
  with members:
    - "live functional programming with typed holes"
    - "merlin a language server for ocaml experience report"
    - "program synthesis from polymorphic refinement types"

Connected through hyperedge HE-4 (induced by source paper "live functional programming with typed holes"):
  with members:
    - "exploratory and live programming and coding a literature study comparing perspectives on liveness"
    - "augmenting source code lines with sample variable values"
    - "using elm to introduce algebraic thinking to k 8 students"
    - "imperative functional programs that explain their work"
    - "toward semantic foundations for program editors"
    - "a survey of symbolic execution techniques"
    - "dynamic witnesses for static type errors or ill typed programs usually go wrong"
    - "programmatic and direct manipulation together at last"

Connected through hyperedge HE-5 (induced by source paper "d euce a lightweight user interface for structured editing"):
  with members:
    - "toward semantic foundations for program editors"
    - "programmatic and direct manipulation together at last"
    - "semi automated svg programming via direct manipulation"

Connected through hyperedge HE-6 (induced by source paper "using elm to introduce algebraic thinking to k 8 students"):
  with members:
    - "learn quantum mechanics with haskell"

Connected through hyperedge HE-7 (induced by source paper "imperative functional programs that explain their work"):
  with members:
    - "dynamic witnesses for static type errors or ill typed programs usually go wrong"
    - "causally consistent dynamic slicing"
    - "constructive galois connections taming the galois connection framework for mechanized metatheory"
    - "database queries that explain their work"
    - "a core calculus for provenance"

Connected through hyperedge HE-8 (induced by source paper "languages of play towards semantic foundations for game interfaces"):
  with members:
    - "toward semantic foundations for program editors"

Question: Please tell me which class the center node belongs to. The 40 classes are: cs.NA(Numerical Analysis), cs.MM(Multimedia), cs.LO(Logic in Computer Science), cs.CY(Computers and Society), cs.CR(Cryptography and Security), cs.DC(Distributed, Parallel, and Cluster Computing), cs.HC(Human-Computer Interaction), cs.CE(Computational Engineering, Finance, and Science), cs.NI(Networking and Internet Architecture), cs.CC(Computational Complexity), cs.AI(Artificial Intelligence), cs.MA(Multiagent Systems), cs.GL(General Literature), cs.NE(Neural and Evolutionary Computing), cs.SC(Symbolic Computation), cs.AR(Hardware Architecture), cs.CV(Computer Vision and Pattern Recognition), cs.GR(Graphics), cs.ET(Emerging Technologies), cs.SY(Systems and Control), cs.CG(Computational Geometry), cs.OH(Other Computer Science), cs.PL(Programming Languages), cs.SE(Software Engineering), cs.LG(Machine Learning), cs.SD(Sound), cs.SI(Social and Information Networks), cs.RO(Robotics), cs.IT(Information Theory), cs.PF(Performance), cs.CL(Computation and Language), cs.IR(Information Retrieval), cs.MS(Mathematical Software), cs.FL(Formal Languages and Automata Theory), cs.DS(Data Structures and Algorithms), cs.OS(Operating Systems), cs.GT(Computer Science and Game Theory), cs.DB(Databases), cs.DL(Digital Libraries), cs.DM(Discrete Mathematics). Directly output the class name.

gpt: cs.PL(Programming Languages)