{"record_type":"pith_number_record","schema_url":"https://pith.science/schemas/pith-number/v1.json","pith_number":"pith:2018:YP57XSUFO7BIGABMZPLGBRV7S3","short_pith_number":"pith:YP57XSUF","schema_version":"1.0","canonical_sha256":"c3fbfbca8577c283002ccbd660c6bf96d9d53404cfbecadf904de6fbf28b1076","source":{"kind":"arxiv","id":"1811.02300","version":2},"attestation_state":"computed","paper":{"title":"Unboxing Mutually Recursive Type Definitions in OCaml","license":"http://creativecommons.org/licenses/by-sa/4.0/","headline":"","cross_cats":[],"primary_cat":"cs.PL","authors_text":"Gabriel Scherer, Rodolphe Lepigre, Simon Colin","submitted_at":"2018-11-06T11:36:30Z","abstract_excerpt":"In modern OCaml, single-argument datatype declarations (variants with a single constructor, records with a single field) can sometimes be `unboxed'. This means that their memory representation is the same as their single argument (omitting the variant or record constructor and an indirection), thus achieving better time and memory efficiency.\n  However, in the case of generalized/guarded algebraic datatypes (GADTs), unboxing is not always possible due to a subtle assumption about the runtime representation of OCaml values. The current correctness check is incomplete, rejecting many valid defin"},"verification_status":{"content_addressed":true,"pith_receipt":true,"author_attested":false,"weak_author_claims":0,"strong_author_claims":0,"externally_anchored":false,"storage_verified":false,"citation_signatures":0,"replication_records":0,"graph_snapshot":true,"references_resolved":false,"formal_links_present":false},"canonical_record":{"source":{"id":"1811.02300","kind":"arxiv","version":2},"metadata":{"license":"http://creativecommons.org/licenses/by-sa/4.0/","primary_cat":"cs.PL","submitted_at":"2018-11-06T11:36:30Z","cross_cats_sorted":[],"title_canon_sha256":"ba08d84e59f5a0b3b8e2967bacbc715988ad88d7b96c1a71085647b32497150d","abstract_canon_sha256":"8feaed292d27a6fe592463c9c049f01af87eb79bc8fff4bee3f6ed69dd5b4662"},"schema_version":"1.0"},"receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-05-17T23:58:30.228387Z","signature_b64":"4qSHVNpyA5BJ8GsGyfsz4mPYqXiuuohH0Eu8BfI2bQ/ZSOzS0zqQjvI1M6fZkhixwnZtt0eDZiIZBkRJQvm+BA==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"c3fbfbca8577c283002ccbd660c6bf96d9d53404cfbecadf904de6fbf28b1076","last_reissued_at":"2026-05-17T23:58:30.227819Z","signature_status":"signed_v1","first_computed_at":"2026-05-17T23:58:30.227819Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"graph_snapshot":{"paper":{"title":"Unboxing Mutually Recursive Type Definitions in OCaml","license":"http://creativecommons.org/licenses/by-sa/4.0/","headline":"","cross_cats":[],"primary_cat":"cs.PL","authors_text":"Gabriel Scherer, Rodolphe Lepigre, Simon Colin","submitted_at":"2018-11-06T11:36:30Z","abstract_excerpt":"In modern OCaml, single-argument datatype declarations (variants with a single constructor, records with a single field) can sometimes be `unboxed'. This means that their memory representation is the same as their single argument (omitting the variant or record constructor and an indirection), thus achieving better time and memory efficiency.\n  However, in the case of generalized/guarded algebraic datatypes (GADTs), unboxing is not always possible due to a subtle assumption about the runtime representation of OCaml values. The current correctness check is incomplete, rejecting many valid defin"},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1811.02300","kind":"arxiv","version":2},"verdict":{"id":null,"model_set":{},"created_at":null,"strongest_claim":"","one_line_summary":"","pipeline_version":null,"weakest_assumption":"","pith_extraction_headline":""},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"},"aliases":[{"alias_kind":"arxiv","alias_value":"1811.02300","created_at":"2026-05-17T23:58:30.227929+00:00"},{"alias_kind":"arxiv_version","alias_value":"1811.02300v2","created_at":"2026-05-17T23:58:30.227929+00:00"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1811.02300","created_at":"2026-05-17T23:58:30.227929+00:00"},{"alias_kind":"pith_short_12","alias_value":"YP57XSUFO7BI","created_at":"2026-05-18T12:33:04.347982+00:00"},{"alias_kind":"pith_short_16","alias_value":"YP57XSUFO7BIGABM","created_at":"2026-05-18T12:33:04.347982+00:00"},{"alias_kind":"pith_short_8","alias_value":"YP57XSUF","created_at":"2026-05-18T12:33:04.347982+00:00"}],"events":[],"event_summary":{},"paper_claims":[],"inbound_citations":{"count":1,"internal_anchor_count":1,"sample":[{"citing_arxiv_id":"2511.15028","citing_title":"Decoupling Data Layouts from Bounding Volume Hierarchies","ref_index":21,"is_internal_anchor":true}]},"formal_canon":{"evidence_count":0,"sample":[],"anchors":[]},"links":{"html":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3","json":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3.json","graph_json":"https://pith.science/api/pith-number/YP57XSUFO7BIGABMZPLGBRV7S3/graph.json","events_json":"https://pith.science/api/pith-number/YP57XSUFO7BIGABMZPLGBRV7S3/events.json","paper":"https://pith.science/paper/YP57XSUF"},"agent_actions":{"view_html":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3","download_json":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3.json","view_paper":"https://pith.science/paper/YP57XSUF","resolve_alias":"https://pith.science/api/pith-number/resolve?arxiv=1811.02300&json=true","fetch_graph":"https://pith.science/api/pith-number/YP57XSUFO7BIGABMZPLGBRV7S3/graph.json","fetch_events":"https://pith.science/api/pith-number/YP57XSUFO7BIGABMZPLGBRV7S3/events.json","actions":{"anchor_timestamp":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3/action/timestamp_anchor","attest_storage":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3/action/storage_attestation","attest_author":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3/action/author_attestation","sign_citation":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3/action/citation_signature","submit_replication":"https://pith.science/pith/YP57XSUFO7BIGABMZPLGBRV7S3/action/replication_record"}},"created_at":"2026-05-17T23:58:30.227929+00:00","updated_at":"2026-05-17T23:58:30.227929+00:00"}