lispsyntax-acset

Convert between LispSyntax.jl S-expressions and ACSets.jl graphs bidirectionally.

60|13|Updated Dec 22, 2025
One-click install
npx skills add https://github.com/plurigrid/asi --skill lispsyntax-acset
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: lispsyntax-acset
Source: https://github.com/plurigrid/asi/tree/main/ies/music-topos/.codex/skills/lispsyntax-acset
Command: npx skills add https://github.com/plurigrid/asi --skill lispsyntax-acset

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill creates a bidirectional bridge between LispSyntax.jl and ACSets.jl, enabling seamless S-expression serialization/deserialization and deriving workflows inspired by OCaml's ppx_sexp_conv. It reduces manual encoding work and enables deterministic data interchange between Lisp-like syntax and algebraic databases.

Core Features & Use Cases

  • Bidirectional conversion: Lisp syntax ↔ ACSet representations.
  • S-expression handling: Parse, serialize, and color S-expressions with deterministic semantics.
  • Interoperability leverage: Quick interop with OCaml-style deriving patterns for Julia-based ACSet graphs.

Quick Start

Just describe how to convert a given ACSet graph to an S-expression and back, e.g., "convert graph to sexp and back, preserving structure."

Frequently Asked Questions about lispsyntax-acset

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert an ACSet graph to S-expressions and back?

S-expression conversion between ACSets and Lisp syntax is handled by core API primitives: parse_sexp parses Lisp into structured form, sexp_of_acset serializes ACSet graphs to S-expressions, and acset_of_sexp deserializes them back, preserving graph structure bidirectionally.

What is ACSet serialization and why would I use it?

ACSet serialization converts algebraic database structures into S-expression format for interchange and storage. It enables deterministic data pipelines, OCaml-style deriving workflows, and interoperability between Lisp-based tools and Julia graph systems without manual encoding.

Can I use OCaml-style deriving patterns with Julia ACSets?

Yes. This Skill implements OCaml ppx_sexp_conv-style deriving for Julia ACSets, enabling familiar deriving workflows to generate S-expression serialization code automatically, reducing manual encoding and supporting interoperation patterns from OCaml ecosystems.

How does deterministic coloring work for S-expressions?

Deterministic coloring applies consistent tagging to S-expression elements using Gay.jl with SplitMix64 hashing, ensuring reproducible, semantically meaningful color assignment across serialization rounds for validation and debugging.

What does verify_roundtrip do?

Verify_roundtrip confirms that ACSet-to-S-expression-to-ACSet conversion preserves structure exactly, validating bidirectional conversion correctness and detecting serialization or deserialization logic errors early in data pipelines.

Does this work with colored S-expressions?

Yes. The Skill handles colored S-expressions natively, applying deterministic coloring schemes during serialization and parsing colored variants during deserialization, supporting rich semantic markup in data interchange.