<bibliography>
 <citation type="article" key="1991:explicit-substitutions">
  <author>M. <surname>Abadi</surname></author>
  <author>L. <surname>Cardelli</surname></author>
  <author>P.-L. <surname>Curien</surname></author>
  <author>J.-J. <surname>Lévy</surname></author>
  <year>1991</year>
  <title>Explicit substitutions</title>
  <journal>Journal of Functional Programming</journal>
  <volume>1</volume>
  <number>4</number>
  <pages>375–416</pages>
  <doi>10.1017/S0956796800000186</doi>
 </citation>
 <citation type="inproceedings" key="2022:ahrens-category-typed-syntax">
  <author>Benedikt <surname>Ahrens</surname></author>
  <author>Ralph <surname>Matthes</surname></author>
  <author>Anders <surname>M&#246;rtberg</surname></author>
  <year>2022</year>
  <title>Implementing a Category-Theoretic Framework for Typed Abstract Syntax</title>
  <booktitle>Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs</booktitle>
  <series>CPP 2022</series>
  <publisher>Association for Computing Machinery</publisher>
  <address>New York, NY, USA</address>
  <pages>307–323</pages>
  <doi>10.1145/3497775.3503678</doi>
 </citation>
 <citation type="inproceedings" key="2017:type-scope-safe-programs">
  <author>Guillaume <surname>Allais</surname></author>
  <author>James <surname>Chapman</surname></author>
  <author>Conor <surname>McBride</surname></author>
  <author>James <surname>McKinna</surname></author>
  <year>2017</year>
  <title>Type-and-Scope Safe Programs and Their Proofs</title>
  <booktitle>Proceedings of the 6th ACM SIGPLAN Conference on Certified Programs and Proofs</booktitle>
  <series>CPP 2017</series>
  <publisher>Association for Computing Machinery</publisher>
  <address>New York, NY, USA</address>
  <pages>195–207</pages>
  <doi>10.1145/3018610.3018613</doi>
 </citation>
 <citation type="inproceedings" key="1999:monadic-lambda">
  <author>Thorsten <surname>Altenkirch</surname></author>
  <author>Bernhard <surname>Reus</surname></author>
  <year>1999</year>
  <title>Monadic Presentations of Lambda Terms Using Generalized Inductive Types</title>
  <booktitle>Proceedings of the 13th International Workshop and 8th Annual Conference of the EACSL on Computer Science Logic</booktitle>
  <series>CSL '99</series>
  <publisher>Springer-Verlag</publisher>
  <address>Berlin, Heidelberg</address>
  <pages>453–468</pages>
  <doi>10.1007/3-540-48168-0_32</doi>
 </citation>
 <citation type="techreport" key="2010:lngen">
  <author>Brian <surname>Aydemir</surname></author>
  <author>Stephanie <surname>Weirich</surname></author>
  <year>2010</year>
  <title>LNgen: Tool Support for Locally Nameless Representations</title>
  <type>Technical Report</type>
  <institution>University of Pennsylvania, Department of Computer and Information Science</institution>
  <url>https://repository.upenn.edu/handle/20.500.14332/7902</url>
 </citation>
 <citation type="inproceedings" key="2005:poplmark">
  <author>Brian E. <surname>Aydemir</surname></author>
  <author>Aaron <surname>Bohannon</surname></author>
  <author>Matthew <surname>Fairbairn</surname></author>
  <author>J. Nathan <surname>Foster</surname></author>
  <author>Benjamin C. <surname>Pierce</surname></author>
  <author>Peter <surname>Sewell</surname></author>
  <author>Dimitrios <surname>Vytiniotis</surname></author>
  <author>Geoffrey <surname>Washburn</surname></author>
  <author>Stephanie <surname>Weirich</surname></author>
  <author>Steve <surname>Zdancewic</surname></author>
  <year>2005</year>
  <title>Mechanized Metatheory for the Masses: The PoplMark Challenge</title>
  <booktitle>Proceedings of the 18th International Conference on Theorem Proving in Higher Order Logics</booktitle>
  <series>TPHOLs'05</series>
  <publisher>Springer-Verlag</publisher>
  <address>Berlin, Heidelberg</address>
  <pages>50–65</pages>
  <doi>10.1007/11541868_4</doi>
 </citation>
 <citation type="mastersthesis" key="2007:bakkehopfalgebras">
  <author>Tørris Koløen <surname>Bakke</surname></author>
  <year>2007</year>
  <title>Hopf Algebras and Monoidal Categories</title>
  <school>University of Tromsø</school>
  <url>https://munin.uit.no/bitstream/handle/10037/1084/finalthesis.pdf</url>
 </citation>
 <citation type="article" key="1994:bh-formal-monads">
  <author>Fran&#x00e7;oise <surname>Bellegarde</surname></author>
  <author>James <surname>Hook</surname></author>
  <year>1994</year>
  <title>Substitution: A Formal Methods Case Study Using Monads and Transformations</title>
  <journal>Sci. Comput. Program.</journal>
  <volume>23</volume>
  <number>2–3</number>
  <pages>287–311</pages>
  <doi>10.1016/0167-6423(94)00022-0</doi>
 </citation>
 <citation type="inproceedings" key="1998:bird-nested">
  <author>Richard <surname>Bird</surname></author>
  <author>Lambert <surname>Meertens</surname></author>
  <year>1998</year>
  <title>Nested datatypes</title>
  <booktitle>In MPC’98, volume 1422 of LNCS</booktitle>
  <publisher>Springer-Verlag</publisher>
  <pages>52&#8211;67</pages>
  <doi>10.1007/BFb0054285</doi>
 </citation>
 <citation type="article" key="2000:deBruijnNested">
  <author>Richard <surname>Bird</surname></author>
  <author>Ross <surname>Paterson</surname></author>
  <year>1999</year>
  <title>de Bruijn notation as a nested datatype</title>
  <journal>Journal of Functional Programming</journal>
  <volume>9</volume>
  <pages>77 &#8211; 91</pages>
  <doi>10.1017/S0956796899003366</doi>
 </citation>
 <citation type="article" key="1969:burstall-struct-rec">
  <author>R. M. <surname>Burstall</surname></author>
  <year>1969</year>
  <title>Proving Properties of Programs by Structural Induction</title>
  <journal>The Computer Journal</journal>
  <volume>12</volume>
  <number>1</number>
  <pages>41&#8211;48</pages>
  <doi>10.1093/comjnl/12.1.41</doi>
 </citation>
 <citation type="inproceedings" key="2008:phoas">
  <author>Adam <surname>Chlipala</surname></author>
  <year>2008</year>
  <title>Parametric Higher-Order Abstract Syntax for Mechanized Semantics</title>
  <booktitle>Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming</booktitle>
  <series>ICFP '08</series>
  <publisher>Association for Computing Machinery</publisher>
  <address>New York, NY, USA</address>
  <pages>143–156</pages>
  <doi>10.1145/1411204.1411226</doi>
 </citation>
 <citation type="article" key="1972:debruijn-dummies">
  <author>N.G <surname>de Bruijn</surname></author>
  <year>1972</year>
  <title>Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem</title>
  <journal>Indagationes Mathematicae (Proceedings)</journal>
  <volume>75</volume>
  <number>5</number>
  <pages>381&#8211;392</pages>
  <doi>10.1016/1385-7258(72)90034-0</doi>
 </citation>
 <citation type="inproceedings" key="2000:ltac">
  <author>David <surname>Delahaye</surname></author>
  <year>2000</year>
  <title>A Tactic Language for the System Coq</title>
  <editor>Michel <surname>Parigot</surname></editor>
  <editor>Andrei <surname>Voronkov</surname></editor>
  <booktitle>Logic for Programming and Automated Reasoning</booktitle>
  <publisher>Springer Berlin Heidelberg</publisher>
  <address>Berlin, Heidelberg</address>
  <pages>85&#8211;95</pages>
  <doi>10.1007/3-540-44404-1_7</doi>
 </citation>
 <citation type="inproceedings" key="2023:tealeaves">
  <author>Lawrence <surname>Dunn</surname></author>
  <author>Val <surname>Tannen</surname></author>
  <author>Steve <surname>Zdancewic</surname></author>
  <year>2023</year>
  <title>Tealeaves: Structured Monads for Generic First-Order Abstract Syntax Infrastructure</title>
  <editor>Adam <surname>Naumowicz</surname></editor>
  <editor>Ren&#233; <surname>Thiemann</surname></editor>
  <booktitle>14th International Conference on Interactive Theorem Proving (ITP 2023)</booktitle>
  <series>Leibniz International Proceedings in Informatics (LIPIcs)</series>
  <volume>268</volume>
  <publisher>Schloss Dagstuhl &#8211; Leibniz-Zentrum f&#252;r Informatik</publisher>
  <address>Dagstuhl, Germany</address>
  <pages>14:1&#8211;14:20</pages>
  <doi>10.4230/LIPIcs.ITP.2023.14</doi>
 </citation>
 <citation type="inproceedings" key="1999:abstractsyntax">
  <author>M. <surname>Fiore</surname></author>
  <author>G. <surname>Plotkin</surname></author>
  <author>D. <surname>Turi</surname></author>
  <year>1999</year>
  <title>Abstract syntax and variable binding</title>
  <booktitle>Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158)</booktitle>
  <pages>193&#8211;202</pages>
  <doi>10.1109/LICS.1999.782615</doi>
 </citation>
 <citation type="inproceedings" key="2008:fiore-soas">
  <author>Marcelo <surname>Fiore</surname></author>
  <year>2008</year>
  <title>Second-Order and Dependently-Sorted Abstract Syntax</title>
  <booktitle>Proceedings of the 2008 23rd Annual IEEE Symposium on Logic in Computer Science</booktitle>
  <series>LICS '08</series>
  <publisher>IEEE Computer Society</publisher>
  <address>USA</address>
  <pages>57–68</pages>
  <doi>10.1109/LICS.2008.38</doi>
 </citation>
 <citation type="article" key="2022:fiore-metatheory-soas">
  <author>Marcelo <surname>Fiore</surname></author>
  <author>Dmitrij <surname>Szamozvancev</surname></author>
  <year>2022</year>
  <title>Formal Metatheory of Second-Order Abstract Syntax</title>
  <journal>Proc. ACM Program. Lang.</journal>
  <volume>6</volume>
  <number>POPL</number>
  <doi>10.1145/3498715</doi>
 </citation>
 <citation type="book" key="fong2018seven">
  <author>Brendan <surname>Fong</surname></author>
  <author>David I <surname>Spivak</surname></author>
  <year>2018</year>
  <title>Seven Sketches in Compositionality: An Invitation to Applied Category Theory</title>
  <doi>10.48550/arXiv.1803.05316</doi>
 </citation>
 <citation type="article" key="2002:new-abstract-syntax">
  <author>Murdoch J. <surname>Gabbay</surname></author>
  <author>Andrew M. <surname>Pitts</surname></author>
  <year>2002</year>
  <title>A New Approach to Abstract Syntax with Variable Binding</title>
  <journal>Form. Asp. Comput.</journal>
  <volume>13</volume>
  <number>3–5</number>
  <pages>341–363</pages>
  <doi>10.1007/s001650200016</doi>
 </citation>
 <citation type="article" key="2009:essenseiteratorpattern">
  <author>Jeremy <surname>Gibbons</surname></author>
  <author>Bruno <surname>Oliveira</surname></author>
  <year>2009</year>
  <title>The essence of the Iterator pattern</title>
  <journal>J. Funct. Program.</journal>
  <volume>19</volume>
  <pages>377&#8211;402</pages>
  <doi>10.1017/S0956796809007291</doi>
 </citation>
 <citation type="book" key="hinzemarsden2023">
  <author>Ralf <surname>Hinze</surname></author>
  <author>Dan <surname>Marsden</surname></author>
  <year>2023</year>
  <title>Introducing String Diagrams: The Art of Category Theory</title>
  <publisher>Cambridge University Press</publisher>
  <doi>10.1017/9781009317825</doi>
 </citation>
 <citation type="article" key="2012:traversals">
  <author>Mauro <surname>Jaskelioff</surname></author>
  <author>Ondrej <surname>Rypacek</surname></author>
  <year>2012</year>
  <title>An Investigation of the Laws of Traversals</title>
  <journal>Electronic Proceedings in Theoretical Computer Science</journal>
  <volume>76</volume>
  <doi>10.4204/EPTCS.76.5</doi>
 </citation>
 <citation type="inproceedings" key="2014:cakeml">
  <author>Ramana <surname>Kumar</surname></author>
  <author>Magnus O. <surname>Myreen</surname></author>
  <author>Michael <surname>Norrish</surname></author>
  <author>Scott <surname>Owens</surname></author>
  <year>2014</year>
  <title>CakeML: a verified implementation of ML</title>
  <booktitle>The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '14, San Diego, CA, USA, January 20-21, 2014</booktitle>
  <pages>179&#8211;192</pages>
  <doi>10.1145/2535838.2535841</doi>
 </citation>
 <citation type="inproceedings" key="2011:GMeta">
  <author>Gyesik <surname>Lee</surname></author>
  <author>Bruno C. D. S. <surname>Oliveira</surname></author>
  <author>Sungkeun <surname>Cho</surname></author>
  <author>Kwangkeun <surname>Yi</surname></author>
  <year>2012</year>
  <title>GMeta: A Generic Formal Metatheory Framework for First-Order Representations</title>
  <editor>Helmut <surname>Seidl</surname></editor>
  <booktitle>Programming Languages and Systems</booktitle>
  <publisher>Springer Berlin Heidelberg</publisher>
  <address>Berlin, Heidelberg</address>
  <pages>436&#8211;455</pages>
  <doi>10.1007/978-3-642-28869-2_22</doi>
 </citation>
 <citation type="book" key="Manes1976">
  <author>Ernest G. <surname>Manes</surname></author>
  <year>1976</year>
  <title>Algebraic Theories</title>
  <publisher>Springer New York</publisher>
  <doi>10.1007/978-1-4612-9860-1</doi>
 </citation>
 <citation type="unpublished" key="2005:mcbride">
  <author>Conor <surname>McBride</surname></author>
  <year>2005</year>
  <title>Type-Preserving Renaming and Substitution</title>
  <note>Unpublished note</note>
 </citation>
 <citation type="article" key="2008:applicativeprogramming">
  <author>Conor <surname>McBride</surname></author>
  <author>Ross <surname>Paterson</surname></author>
  <year>2008</year>
  <title>Applicative Programming with Effects</title>
  <journal>J. Funct. Program.</journal>
  <volume>18</volume>
  <number>1</number>
  <pages>1–13</pages>
  <doi>10.1017/S0956796807006326</doi>
 </citation>
 <citation type="inproceedings" key="1988:moggi-monads">
  <author>Eugenio <surname>Moggi</surname></author>
  <year>1988</year>
  <title>Computational Lambda-Calculus and Monads</title>
  <publisher>IEEE Computer Society Press</publisher>
  <pages>14&#8211;23</pages>
  <doi>10.1109/LICS.1989.39155</doi>
 </citation>
 <citation type="inproceedings" key="1988:hoas">
  <author>Frank <surname>Pfenning</surname></author>
  <author>Conal <surname>Elliott</surname></author>
  <year>1988</year>
  <title>Higher-Order Abstract Syntax</title>
  <volume>23</volume>
  <pages>199&#8211;208</pages>
  <doi>10.1145/960116.54010</doi>
 </citation>
 <citation type="inproceedings" key="2003:power-unified-binding">
  <author>John <surname>Power</surname></author>
  <year>2003</year>
  <title>A Unified Category Theoretic Approach to Variable Binding</title>
  <booktitle>Proceedings of the 2003 ACM SIGPLAN Workshop on Mechanized Reasoning about Languages with Variable Binding</booktitle>
  <series>MERLIN '03</series>
  <publisher>Association for Computing Machinery</publisher>
  <address>New York, NY, USA</address>
  <pages>1–9</pages>
  <doi>10.1145/976571.976578</doi>
 </citation>
 <citation type="article" key="2008:power-tanaka-typed-signatures">
  <author>John <surname>Power</surname></author>
  <author>Miki <surname>Tanaka</surname></author>
  <year>2008</year>
  <title>Category Theoretic Semantics for Typed Binding Signatures with Recursion</title>
  <journal>Fundam. Informaticae</journal>
  <volume>84</volume>
  <pages>221&#8211;240</pages>
  <url>http://content.iospress.com/articles/fundamenta-informaticae/fi84-2-05</url>
 </citation>
 <citation type="inproceedings" key="2015:de-bruijn-algebra-coq">
  <author>Steven <surname>Sch&#228;fer</surname></author>
  <author>Gert <surname>Smolka</surname></author>
  <author>Tobias <surname>Tebbi</surname></author>
  <year>2015</year>
  <title>Completeness and Decidability of de Bruijn Substitution Algebra in Coq</title>
  <booktitle>Proceedings of the 2015 Conference on Certified Programs and Proofs</booktitle>
  <series>CPP '15</series>
  <publisher>Association for Computing Machinery</publisher>
  <address>New York, NY, USA</address>
  <pages>67–73</pages>
  <doi>10.1145/2676724.2693163</doi>
 </citation>
 <citation type="inproceedings" key="2015autosubst">
  <author>Steven <surname>Schäfer</surname></author>
  <author>Tobias <surname>Tebbi</surname></author>
  <author>Gert <surname>Smolka</surname></author>
  <year>2015</year>
  <title>Autosubst: Reasoning with de Bruijn Terms and Parallel Substitutions</title>
  <editor>Xingyuan <surname>Zhang</surname></editor>
  <editor>Christian <surname>Urban</surname></editor>
  <booktitle>Interactive Theorem Proving - 6th International Conference, ITP 2015, Nanjing, China, August 24-27, 2015</booktitle>
  <series>LNAI</series>
  <publisher>Springer-Verlag</publisher>
  <doi>10.1007/978-3-319-22102-1_24</doi>
 </citation>
 <citation type="inproceedings" key="2019:autosubst2">
  <author>Kathrin <surname>Stark</surname></author>
  <author>Steven <surname>Sch&#228;fer</surname></author>
  <author>Jonas <surname>Kaiser</surname></author>
  <year>2019</year>
  <title>Autosubst 2: Reasoning with Multi-Sorted de Bruijn Terms and Vector Substitutions</title>
  <booktitle>Proceedings of the 8th ACM SIGPLAN International Conference on Certified Programs and Proofs</booktitle>
  <series>CPP 2019</series>
  <publisher>Association for Computing Machinery</publisher>
  <address>New York, NY, USA</address>
  <pages>166–180</pages>
  <doi>10.1145/3293880.3294101</doi>
 </citation>
 <citation type="" key="2023:coq">
  <author>The Coq Development <surname>Team</surname></author>
  <year>2023</year>
  <title>The Coq Proof Assistant</title>
  <doi>10.5281/zenodo.8161141</doi>
 </citation>
 <citation type="article" key="2008:comonadic-computation">
  <author>Tarmo <surname>Uustalu</surname></author>
  <author>Varmo <surname>Vene</surname></author>
  <year>2008</year>
  <title>Comonadic Notions of Computation</title>
  <journal>Electronic Notes in Theoretical Computer Science</journal>
  <volume>203</volume>
  <number>5</number>
  <pages>263&#8211;284</pages>
  <doi>10.1016/j.entcs.2008.05.029</doi>
  <note>Proceedings of the Ninth Workshop on Coalgebraic Methods in Computer Science (CMCS 2008)</note>
 </citation>
 <citation type="mastersthesis" key="2019:cofree-traversables">
  <author>Love <surname>Waern</surname></author>
  <year>2019</year>
  <title>Cofree Traversable Functors</title>
  <type>Bachelor's thesis</type>
  <url>https://uu.diva-portal.org/smash/record.jsf?pid=diva2:1369180</url>
 </citation>
 <citation type="inproceedings" key="2012:vellvm">
  <author>Jianzhou <surname>Zhao</surname></author>
  <author>Santosh <surname>Nagarakatte</surname></author>
  <author>Milo M.K. <surname>Martin</surname></author>
  <author>Steve <surname>Zdancewic</surname></author>
  <year>2012</year>
  <title>Formalizing the LLVM Intermediate Representation for Verified Program Transformations</title>
  <booktitle>Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages</booktitle>
  <series>POPL '12</series>
  <publisher>Association for Computing Machinery</publisher>
  <address>New York, NY, USA</address>
  <pages>427–440</pages>
  <doi>10.1145/2103656.2103709</doi>
 </citation>
</bibliography>
