{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:hackage/linear-generics","name":"linear-generics","description":"This package offers a version of\nGHC.Generics\nwith two important improvements:\n\nThe to, from, to1, and from1 methods have multiplicity-polymorphic\ntypes, allowing them to be used with either traditional Haskell code or\nlinearly typed code.\n\nThe representations used for Generic1 are modified slightly. As a result,\nto1 and from1 never need to use fmap. This can\ngreatly improve performance,\nand it is\nnecessary to support multiplicity polymorphism.\nA smaller change, approximately\nas proposed by spl,\nreduces the number of instances that must be written to actually use Generic1\nfor deriving instances of other classes.\n\nFor more details, see the Generics.Linear documentation.\n\nThe implementation is based on the generic-deriving package, first described in the paper\n\nA generic deriving mechanism for Haskell.\nJose Pedro Magalhaes, Atze Dijkstra, Johan Jeuring, and Andres Loeh.\nHaskell'10.\n\nThis library is organized as follows:\n\nGenerics.Linear defines the core functionality for generics,\nincluding the multiplicity-polymorphic Generic(1) classes and\na replacement for the :.: composition type.\n\nGenerics.Linear.TH implements Template Haskell functionality for\nderiving instances of Generic(1).\n\nGenerics.Linear.Unsafe.ViaGHCGenerics offers DerivingVia targets to\nderive Generic and Generic1 instances from\nGHC.Generics.GHC.Generics.Generic. Because these instances necessarily\nuse unsafe coercions, their use will likely inhibit full optimization of\ncode using them.\n\nEducational code: the educational modules exported by\ngeneric-deriving\nhave been copied into the tests/Generic/Deriving directory\nin this repository, with the very few modifications required to\naccommodate the differences between the Generic1 representations\nhere and in base. All the same caveats apply as in the originals;\nsee that package's README.","version":"0.2.3","softwareVersion":"0.2.3","license":"https://spdx.org/licenses/BSD-3-Clause","codeRepository":"https://github.com/linear-generics/linear-generics","issueTracker":"https://github.com/linear-generics/linear-generics/issues","url":"https://github.com/linear-generics/linear-generics","keywords":["bsd3","generics","library","Propose Tags"],"programmingLanguage":{"@type":"ComputerLanguage","name":"Haskell"},"maintainer":[{"@type":"Person","name":"dfeuer"},{"@type":"Person","name":"aspiwack"}],"author":[{"@type":"Person","name":"dfeuer"},{"@type":"Person","name":"aspiwack"}],"copyrightHolder":[{"@type":"Person","name":"dfeuer"},{"@type":"Person","name":"aspiwack"}],"dateCreated":"2021-10-11","dateModified":"2024-01-09","datePublished":"2024-01-09","copyrightYear":2021,"downloadUrl":"https://hackage.haskell.org/package/linear-generics-0.2.3/linear-generics-0.2.3.tar.gz","applicationCategory":"hackage","runtimePlatform":"hackage","developmentStatus":"active","sameAs":["https://hackage.haskell.org/package/linear-generics"],"https://www.w3.org/ns/activitystreams#likes":10,"https://forgefed.org/ns#forks":7}