<?xml version="1.0" encoding="utf-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hal="http://hal.archives-ouvertes.fr/" xmlns:gml="http://www.opengis.net/gml/3.3/" xmlns:gmlce="http://www.opengis.net/gml/3.3/ce" version="1.1" xsi:schemaLocation="http://www.tei-c.org/ns/1.0 http://api.archives-ouvertes.fr/documents/aofr-sword.xsd">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>HAL TEI export of hal-01091947</title>
      </titleStmt>
      <publicationStmt>
        <distributor>CCSD</distributor>
        <availability status="restricted">
          <licence target="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 - Universal</licence>
        </availability>
        <date when="2026-05-22T16:51:14+02:00"/>
      </publicationStmt>
      <sourceDesc>
        <p part="N">HAL API Platform</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <body>
      <listBibl>
        <biblFull>
          <titleStmt>
            <title xml:lang="en">Lightweight Typed Customizable Unmarshaling</title>
            <author role="aut">
              <persName>
                <forename type="first">Pascal</forename>
                <surname>Cuoq</surname>
              </persName>
              <idno type="halauthorid">707547-0</idno>
              <affiliation ref="#struct-40202"/>
            </author>
            <author role="aut">
              <persName>
                <forename type="first">Julien</forename>
                <surname>Signoles</surname>
              </persName>
              <email type="md5">dccf4d49c80b05090b721f27aadc3fb3</email>
              <email type="domain">cea.fr</email>
              <idno type="idhal" notation="string">signoles-julien</idno>
              <idno type="idhal" notation="numeric">1354930</idno>
              <idno type="halauthorid" notation="string">705304-1354930</idno>
              <idno type="ORCID">https://orcid.org/0000-0001-9266-0820</idno>
              <affiliation ref="#struct-40202"/>
            </author>
            <author role="crp">
              <persName>
                <forename type="first">Damien</forename>
                <surname>Doligez</surname>
              </persName>
              <email type="md5">ac4318acd1870b293e124821cfbe9996</email>
              <email type="domain">inria.fr</email>
              <idno type="idhal" notation="string">damien-doligez</idno>
              <idno type="idhal" notation="numeric">774</idno>
              <idno type="halauthorid" notation="string">7252-774</idno>
              <idno type="IDREF">https://www.idref.fr/057358370</idno>
              <idno type="ORCID">https://orcid.org/0009-0002-3190-6342</idno>
              <affiliation ref="#struct-454410"/>
            </author>
            <editor role="depositor">
              <persName>
                <forename>Damien</forename>
                <surname>Doligez</surname>
              </persName>
              <email type="md5">ac4318acd1870b293e124821cfbe9996</email>
              <email type="domain">inria.fr</email>
            </editor>
          </titleStmt>
          <editionStmt>
            <edition n="v1" type="current">
              <date type="whenSubmitted">2015-02-04 05:29:05</date>
              <date type="whenWritten">2011</date>
              <date type="whenModified">2026-04-28 17:02:07</date>
              <date type="whenReleased">2015-02-05 11:01:12</date>
              <date type="whenProduced">2011-09-18</date>
              <date type="whenEndEmbargoed">2015-02-04</date>
              <ref type="file" target="https://inria.hal.science/hal-01091947v1/document">
                <date notBefore="2015-02-04"/>
              </ref>
              <ref type="file" subtype="author" n="1" target="https://inria.hal.science/hal-01091947v1/file/unmarshal-final.pdf" id="file-1091947-1194911">
                <date notBefore="2015-02-04"/>
              </ref>
            </edition>
            <respStmt>
              <resp>contributor</resp>
              <name key="124676">
                <persName>
                  <forename>Damien</forename>
                  <surname>Doligez</surname>
                </persName>
                <email type="md5">ac4318acd1870b293e124821cfbe9996</email>
                <email type="domain">inria.fr</email>
              </name>
            </respStmt>
          </editionStmt>
          <publicationStmt>
            <distributor>CCSD</distributor>
            <idno type="halId">hal-01091947</idno>
            <idno type="halUri">https://inria.hal.science/hal-01091947</idno>
            <idno type="halBibtex">cuoq:hal-01091947</idno>
            <idno type="halRefHtml">&lt;i&gt;ACM SIGPLAN Workshop on ML&lt;/i&gt;, Sep 2011, Tokyo, Japan</idno>
            <idno type="halRef">ACM SIGPLAN Workshop on ML, Sep 2011, Tokyo, Japan</idno>
            <availability status="restricted">
              <licence target="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0 - Attribution<ref corresp="#file-1091947-1194911"/></licence>
            </availability>
          </publicationStmt>
          <seriesStmt>
            <idno type="stamp" n="CEA">CEA - Commissariat à l'énergie atomique</idno>
            <idno type="stamp" n="INRIA">INRIA - Institut National de Recherche en Informatique et en Automatique</idno>
            <idno type="stamp" n="INRIA-ROCQ">INRIA Paris - Rocquencourt</idno>
            <idno type="stamp" n="GALLIUM">Collection HAL Gallium</idno>
            <idno type="stamp" n="INRIA_TEST">INRIA - Institut National de Recherche en Informatique et en Automatique</idno>
            <idno type="stamp" n="LORIA2">Publications du LORIA</idno>
            <idno type="stamp" n="TESTALAIN1">TESTALAIN1</idno>
            <idno type="stamp" n="DRT" corresp="CEA">Direction de la recherche technologique</idno>
            <idno type="stamp" n="INRIA2">INRIA 2</idno>
            <idno type="stamp" n="LIST" corresp="CEA">Laboratoire d'Intégration des Systèmes et des Technologies</idno>
            <idno type="stamp" n="GS-SPORT-HUMAN-MOVEMENT">Graduate School Sport, Mouvement, Facteurs Humains</idno>
          </seriesStmt>
          <notesStmt>
            <note type="audience" n="2">International</note>
            <note type="invited" n="0">No</note>
            <note type="popular" n="0">No</note>
            <note type="peer" n="1">Yes</note>
            <note type="proceedings" n="0">No</note>
          </notesStmt>
          <sourceDesc>
            <biblStruct>
              <analytic>
                <title xml:lang="en">Lightweight Typed Customizable Unmarshaling</title>
                <author role="aut">
                  <persName>
                    <forename type="first">Pascal</forename>
                    <surname>Cuoq</surname>
                  </persName>
                  <idno type="halauthorid">707547-0</idno>
                  <affiliation ref="#struct-40202"/>
                </author>
                <author role="aut">
                  <persName>
                    <forename type="first">Julien</forename>
                    <surname>Signoles</surname>
                  </persName>
                  <email type="md5">dccf4d49c80b05090b721f27aadc3fb3</email>
                  <email type="domain">cea.fr</email>
                  <idno type="idhal" notation="string">signoles-julien</idno>
                  <idno type="idhal" notation="numeric">1354930</idno>
                  <idno type="halauthorid" notation="string">705304-1354930</idno>
                  <idno type="ORCID">https://orcid.org/0000-0001-9266-0820</idno>
                  <affiliation ref="#struct-40202"/>
                </author>
                <author role="crp">
                  <persName>
                    <forename type="first">Damien</forename>
                    <surname>Doligez</surname>
                  </persName>
                  <email type="md5">ac4318acd1870b293e124821cfbe9996</email>
                  <email type="domain">inria.fr</email>
                  <idno type="idhal" notation="string">damien-doligez</idno>
                  <idno type="idhal" notation="numeric">774</idno>
                  <idno type="halauthorid" notation="string">7252-774</idno>
                  <idno type="IDREF">https://www.idref.fr/057358370</idno>
                  <idno type="ORCID">https://orcid.org/0009-0002-3190-6342</idno>
                  <affiliation ref="#struct-454410"/>
                </author>
              </analytic>
              <monogr>
                <meeting>
                  <title>ACM SIGPLAN Workshop on ML</title>
                  <date type="start">2011-09-18</date>
                  <date type="end">2011-09-18</date>
                  <settlement>Tokyo</settlement>
                  <country key="JP">Japan</country>
                </meeting>
                <imprint/>
              </monogr>
              <ref type="publisher">http://conway.rutgers.edu/ml2011/</ref>
            </biblStruct>
          </sourceDesc>
          <profileDesc>
            <langUsage>
              <language ident="en">English</language>
            </langUsage>
            <textClass>
              <classCode scheme="halDomain" n="info.info-pl">Computer Science [cs]/Programming Languages [cs.PL]</classCode>
              <classCode scheme="halTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halOldTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halTreeTypology" n="COMM">Conference papers</classCode>
            </textClass>
            <abstract xml:lang="en">
              <p>1. Abstract The contribution of this work is threefold. First, we offer an OCaml unmarshaling algorithm that uses a lightweight type-directed de-scription of the expected structure of data to make consistency checks. The second contribution is the opportunity to specify func-tions to be systematically applied on values as they are being un-marshaled. Our third contribution is a type-safe layer for these functions and for the unmarshaling algorithm itself. 2. Description The standard OCaml unmarshaling function is input value: in channel → α. The aforementioned first contribution is a function descr input val with type in channel → descr → α. One value of type descr that can be passed as second argu-ment is Abstract, and then the behavior is exactly identical to input value. The programmer can provide as much information as (s)he wants for the additional consistency checks. For instance, (s)he can pass the value (t array Abstract) to specify that the value being read is an array of undescribed values. Our unmar-shaling algorithm maintains a cursor into the structure description, allowing it to know what the current loaded value should look like.</p>
            </abstract>
          </profileDesc>
        </biblFull>
      </listBibl>
    </body>
    <back>
      <listOrg type="structures">
        <org type="researchteam" xml:id="struct-40202" status="OLD">
          <orgName>Laboratoire Sûreté des Logiciels</orgName>
          <orgName type="acronym">LSL</orgName>
          <desc>
            <address>
              <addrLine>Laboratoire Sûreté des Logiciels / Software Safety and Security Laboratory</addrLine>
              <country key="FR"/>
            </address>
          </desc>
          <listRelation>
            <relation name="DRT/LIST/DILS" active="#struct-528160" type="direct"/>
            <relation name="DRT/LIST/DILS" active="#struct-40217" type="indirect"/>
            <relation name="DRT/LIST" active="#struct-440043" type="indirect"/>
            <relation name="DRT" active="#struct-300016" type="indirect"/>
            <relation active="#struct-419361" type="indirect"/>
          </listRelation>
        </org>
        <org type="researchteam" xml:id="struct-454410" status="OLD">
          <idno type="RNSR">200618331D</idno>
          <orgName>Programming languages, types, compilation and proofs</orgName>
          <orgName type="acronym">GALLIUM</orgName>
          <date type="start">2006-05-01</date>
          <date type="end">2016-04-30</date>
          <desc>
            <address>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/equipes/gallium</ref>
          </desc>
          <listRelation>
            <relation active="#struct-86790" type="direct"/>
            <relation active="#struct-300009" type="indirect"/>
          </listRelation>
        </org>
        <org type="department" xml:id="struct-528160" status="VALID">
          <idno type="RNSR">200822623K</idno>
          <orgName>Département Ingénierie Logiciels et Systèmes</orgName>
          <orgName type="acronym">DILS (CEA, LIST)</orgName>
          <desc>
            <address>
              <country key="FR"/>
            </address>
          </desc>
          <listRelation>
            <relation name="DRT/LIST/DILS" active="#struct-40217" type="direct"/>
            <relation name="DRT/LIST" active="#struct-440043" type="indirect"/>
            <relation name="DRT" active="#struct-300016" type="indirect"/>
            <relation active="#struct-419361" type="direct"/>
          </listRelation>
        </org>
        <org type="laboratory" xml:id="struct-40217" status="VALID">
          <idno type="IdRef">156836882</idno>
          <idno type="ISNI">0000 0004 0405 1788</idno>
          <idno type="RNSR">200118591H</idno>
          <idno type="ROR">https://ror.org/000dbcc61</idno>
          <idno type="Wikidata">Q30299467</idno>
          <orgName>Laboratoire d'Intégration des Systèmes et des Technologies</orgName>
          <orgName type="acronym">LIST (CEA)</orgName>
          <desc>
            <address>
              <addrLine>DRT/LISTNano-INNOVAvenue de la Vauve91120 Palaiseau</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www-list.cea.fr/</ref>
          </desc>
          <listRelation>
            <relation name="DRT/LIST" active="#struct-440043" type="direct"/>
            <relation name="DRT" active="#struct-300016" type="indirect"/>
          </listRelation>
        </org>
        <org type="regrouplaboratory" xml:id="struct-440043" status="VALID">
          <idno type="IdRef">067087930</idno>
          <idno type="ISNI">0000000121157881</idno>
          <idno type="RNSR">199018589D</idno>
          <idno type="ROR">https://ror.org/02ggzyd20</idno>
          <idno type="Wikidata">Q30299418</idno>
          <orgName>Direction de Recherche Technologique (CEA)</orgName>
          <orgName type="acronym">DRT (CEA)</orgName>
          <desc>
            <address>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.drt-cea.com/</ref>
          </desc>
          <listRelation>
            <relation name="DRT" active="#struct-300016" type="direct"/>
          </listRelation>
        </org>
        <org type="institution" xml:id="struct-300016" status="VALID">
          <idno type="IdRef">026372061</idno>
          <idno type="ISNI">0000000122998025</idno>
          <idno type="ROR">https://ror.org/00jjx8s55</idno>
          <idno type="Wikidata">Q868550</idno>
          <orgName>Commissariat à l'énergie atomique et aux énergies alternatives</orgName>
          <orgName type="acronym">CEA</orgName>
          <desc>
            <address>
              <addrLine>Centre de SaclayCentre de GrenobleCentre de Cadaracheetc</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.cea.fr/</ref>
          </desc>
        </org>
        <org type="institution" xml:id="struct-419361" status="VALID">
          <idno type="IdRef">241345251</idno>
          <idno type="ROR">https://ror.org/03xjwb503</idno>
          <orgName>Université Paris-Saclay</orgName>
          <desc>
            <address>
              <addrLine>Bâtiment Bréguet, 3 Rue Joliot Curie 2e ét, 91190 Gif-sur-Yvette</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">https://www.universite-paris-saclay.fr/fr</ref>
          </desc>
        </org>
        <org type="laboratory" xml:id="struct-86790" status="OLD">
          <orgName>Inria Paris-Rocquencourt</orgName>
          <date type="end">2016-03-30</date>
          <desc>
            <address>
              <addrLine>INRIA Rocquencourt : Domaine de Voluceau, Rocquencourt B.P. 105 78153 le Chesnay Cedex</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/centre/paris-rocquencourt</ref>
          </desc>
          <listRelation>
            <relation active="#struct-300009" type="direct"/>
          </listRelation>
        </org>
        <org type="institution" xml:id="struct-300009" status="VALID">
          <idno type="ROR">https://ror.org/02kvxyf05</idno>
          <orgName>Institut National de Recherche en Informatique et en Automatique</orgName>
          <orgName type="acronym">Inria</orgName>
          <desc>
            <address>
              <addrLine>Domaine de VoluceauRocquencourt - BP 10578153 Le Chesnay Cedex</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/en/</ref>
          </desc>
        </org>
      </listOrg>
    </back>
  </text>
</TEI>