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: "live functional programming with typed holes"
  Abstract: This paper develops a dynamic semantics for incomplete functional programs, starting from the static semantics developed in recent work on Hazelnut. We model incomplete functional programs as expressions with holes, with empty holes standing for missing expressions or types, and non-empty holes operating as membranes around static and dynamic type inconsistencies. Rather than aborting when evaluation encounters any of these holes as in some existing systems, evaluation proceeds around holes, tracking the closure around each hole instance as it flows through the remainder of the program. Editor services can use the information in these hole closures to help the programmer develop and confirm their mental model of the behavior of the complete portions of the program as they decide how to fill the remaining holes. Hole closures also enable a fill-and-resume operation that avoids the need to restart evaluation after edits that amount to hole filling. Formally, the semantics borrows machinery from both gradual type theory (which supplies the basis for handling unfilled type holes) and contextual modal type theory (which supplies a logical basis for hole closures), combining these and developing additional machinery necessary to continue evaluation past holes while maintaining type safety. We have mechanized the metatheory of the core calculus, called Hazelnut Live, using the Agda proof assistant. #R##N#We have also implemented these ideas into the Hazel programming environment. The implementation inserts holes automatically, following the Hazelnut edit action calculus, to guarantee that every editor state has some (possibly incomplete) type. Taken together with this paper's type safety property, the result is a proof-of-concept live programming environment where rich dynamic feedback is truly available without gaps, i.e. for every reachable editor state.

Connected through hyperedge HE-1 (induced by source paper "program sketching with live bidirectional evaluation"):
  with members:
    - "program synthesis by type guided abstraction refinement"
    - "bidirectional evaluation with directmanipulation"
    - "synthesizing symmetric lenses"
    - "programming not only by example"
    - "programmatic and direct manipulation together at last"
    - "program synthesis from polymorphic refinement types"
    - "type directed synthesis of products"
    - "coinductive big step operational semantics"

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

Connected through hyperedge HE-3 (induced by source paper "approximate normalization for gradual dependent types"):
  with members:
    - "gradual parametricity revisited"
    - "gradual session types"
    - "dependent types in haskell theory and practice"
    - "gradual certified programming in coq"
    - "equations for hereditary substitution in leivant s predicative system f a case study"
    - "irrelevance heterogeneous equality and call by value dependent type systems"

Connected through hyperedge HE-4 (induced by source paper "the meaning of a program change is a change to the program s meaning"):
  with members:
    - "imperative functional programs that explain their work"
    - "hazelnut a bidirectionally typed structure editor calculus"
    - "incremental computation with names"

Connected through hyperedge HE-5 (induced by source paper "constraint based type directed program synthesis"):
  with members:
    - "merlin a language server for ocaml experience report"
    - "hazelnut a bidirectionally typed structure editor calculus"
    - "program synthesis from polymorphic refinement types"

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)