Linjära typsystem har en lång och skriven historia, men inte en tydlig väg framåt för att integreras med befintliga språk som OCaml eller Haskell. I denna uppsats studerar vi ett linjärt typsystem utformat med två viktiga egenskaper i åtanke: bakåtkompatibilitet och kodåteranvändning över linjära och icke-linjära användare av ett bibliotek. Först då kan fördelarna med linjära typer genomsyra konventionell funktionell programmering. Istället för att bifurka typer till linjära och icke-linjära motsvarigheter fäster vi istället linjäritet till funktionspilar. Linjära funktioner kan ta emot ingångar från linjärt bundna värden, men kan också fungera över obegränsade, regelbundna värden. För att visa effektiviteten i vårt linjära typsystem — både hur enkelt det kan integreras i en befintlig språkimplementation och hur strömlinjeformad det gör det att skriva program med linjära typer — vi implementerade vårt typsystem i ghc, den ledande Haskell kompilatorn, och demonstrera två typer av tillämpningar av linjära typer: muterbara data med rena gränssnitt; och upprätthålla protokoll i I/O-presterande funktioner.
Linjär Haskell REF ] är ett förslag om att integrera linjära typer med lagerfunktionell programmering.
Linear Haskell: practical linearity in a higher-order polymorphic language
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}