Matches in SemOpenAlex for { <https://semopenalex.org/work/W2076018351> ?p ?o ?g. }
Showing items 1 to 87 of
87
with 100 items per page.
- W2076018351 abstract "GADTs are at the cutting edge of functional programming and becomemore widely used every day. Nevertheless, the semantic foundations underlying GADTs are not well understood. In this paper we solve this problem by showing that the standard theory of data types as carriers of initial algebras of functors can be extended from algebraic and nested data types to GADTs. We then use this observation to derivean initial algebra semantics for GADTs, thus ensuring that all of the accumulated knowledge about initial algebras can be brought to bear on them. Next, we use our initial algebra semantics for GADTs to derive expressive and principled tools --- analogous to the well-known and widely-used ones for algebraic and nested data types---for reasoning about, programming with, and improving the performance of programs involving, GADTs; we christen such a collection of tools for a GADT an initial algebra package. Along the way, we give a constructive demonstration that every GADT can be reduced to one which uses only the equality GADT and existential quantification. Although other such reductions exist in the literature, ours is entirely local, is independent of any particular syntactic presentation of GADTs, and can be implemented in the host language, rather than existing solely as a metatheoretical artifact. The main technical ideas underlying our approach are (i) to modify the notion of a higher-order functor so that GADTs can be seen as carriers of initial algebras of higher-order functors, and (ii) to use left Kan extensions to trade arbitrary GADTs for simpler-but-equivalent ones for which initial algebra semantics can bederived." @default.
- W2076018351 created "2016-06-24" @default.
- W2076018351 creator A5044007936 @default.
- W2076018351 creator A5044225957 @default.
- W2076018351 date "2008-01-07" @default.
- W2076018351 modified "2023-10-17" @default.
- W2076018351 title "Foundations for structured programming with GADTs" @default.
- W2076018351 cites W1486010533 @default.
- W2076018351 cites W1578634556 @default.
- W2076018351 cites W1966981171 @default.
- W2076018351 cites W1984514567 @default.
- W2076018351 cites W2005192022 @default.
- W2076018351 cites W2040687117 @default.
- W2076018351 cites W2117818027 @default.
- W2076018351 cites W2123360309 @default.
- W2076018351 cites W2151015971 @default.
- W2076018351 cites W2155593512 @default.
- W2076018351 cites W2159227002 @default.
- W2076018351 cites W2914837968 @default.
- W2076018351 cites W4213279211 @default.
- W2076018351 doi "https://doi.org/10.1145/1328438.1328475" @default.
- W2076018351 hasPublicationYear "2008" @default.
- W2076018351 type Work @default.
- W2076018351 sameAs 2076018351 @default.
- W2076018351 citedByCount "46" @default.
- W2076018351 countsByYear W20760183512012 @default.
- W2076018351 countsByYear W20760183512013 @default.
- W2076018351 countsByYear W20760183512014 @default.
- W2076018351 countsByYear W20760183512015 @default.
- W2076018351 countsByYear W20760183512016 @default.
- W2076018351 countsByYear W20760183512017 @default.
- W2076018351 countsByYear W20760183512019 @default.
- W2076018351 countsByYear W20760183512021 @default.
- W2076018351 countsByYear W20760183512022 @default.
- W2076018351 crossrefType "proceedings-article" @default.
- W2076018351 hasAuthorship W2076018351A5044007936 @default.
- W2076018351 hasAuthorship W2076018351A5044225957 @default.
- W2076018351 hasBestOaLocation W20760183512 @default.
- W2076018351 hasConcept C134306372 @default.
- W2076018351 hasConcept C136119220 @default.
- W2076018351 hasConcept C156772000 @default.
- W2076018351 hasConcept C182419690 @default.
- W2076018351 hasConcept C184337299 @default.
- W2076018351 hasConcept C18912844 @default.
- W2076018351 hasConcept C199360897 @default.
- W2076018351 hasConcept C202444582 @default.
- W2076018351 hasConcept C2778701210 @default.
- W2076018351 hasConcept C2779729104 @default.
- W2076018351 hasConcept C33923547 @default.
- W2076018351 hasConcept C41008148 @default.
- W2076018351 hasConcept C80444323 @default.
- W2076018351 hasConcept C9376300 @default.
- W2076018351 hasConcept C98045186 @default.
- W2076018351 hasConceptScore W2076018351C134306372 @default.
- W2076018351 hasConceptScore W2076018351C136119220 @default.
- W2076018351 hasConceptScore W2076018351C156772000 @default.
- W2076018351 hasConceptScore W2076018351C182419690 @default.
- W2076018351 hasConceptScore W2076018351C184337299 @default.
- W2076018351 hasConceptScore W2076018351C18912844 @default.
- W2076018351 hasConceptScore W2076018351C199360897 @default.
- W2076018351 hasConceptScore W2076018351C202444582 @default.
- W2076018351 hasConceptScore W2076018351C2778701210 @default.
- W2076018351 hasConceptScore W2076018351C2779729104 @default.
- W2076018351 hasConceptScore W2076018351C33923547 @default.
- W2076018351 hasConceptScore W2076018351C41008148 @default.
- W2076018351 hasConceptScore W2076018351C80444323 @default.
- W2076018351 hasConceptScore W2076018351C9376300 @default.
- W2076018351 hasConceptScore W2076018351C98045186 @default.
- W2076018351 hasLocation W20760183511 @default.
- W2076018351 hasLocation W20760183512 @default.
- W2076018351 hasLocation W20760183513 @default.
- W2076018351 hasOpenAccess W2076018351 @default.
- W2076018351 hasPrimaryLocation W20760183511 @default.
- W2076018351 hasRelatedWork W1502311553 @default.
- W2076018351 hasRelatedWork W1535840459 @default.
- W2076018351 hasRelatedWork W1587224678 @default.
- W2076018351 hasRelatedWork W1719337452 @default.
- W2076018351 hasRelatedWork W1779606338 @default.
- W2076018351 hasRelatedWork W2007121951 @default.
- W2076018351 hasRelatedWork W2027875302 @default.
- W2076018351 hasRelatedWork W2385699660 @default.
- W2076018351 hasRelatedWork W584408591 @default.
- W2076018351 hasRelatedWork W2788308474 @default.
- W2076018351 isParatext "false" @default.
- W2076018351 isRetracted "false" @default.
- W2076018351 magId "2076018351" @default.
- W2076018351 workType "article" @default.