You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description="Acts and torsors model types which can be transformed under the action of another type.\n\nA prototypical example is affine space, which has an action by translation:\ngiven any two points in affine space, there is a unique translation that brings one to the other.\n\nThis can be useful in a library keeping track of time: on top of needing to keep track\nof units, one also needs to distinguish between absolute time (time stamps) and relative time\n(time differences).\nThe operations one expects in this situation are:\n\n* Addition and subtraction of time differences: time differences form a (commutative) group.\n* Translation of an absolute time by a time difference: there is an action of relative time on absolute time.\n* Given two absolute times, one can obtain the time difference between them: absolute time is a torsor under relative time.\n\nThis library provides a convenient framework which helps to avoid mixing up these two different notions.\n\n\nA fleshed out example is available at \"Acts.Examples.MusicalIntervals\",\nwhich showcases the use of actions and torsors in the context of musical intervals and harmony.\nIt also demonstrates common usage patterns of this library, such as how to automatically derive instances.\n\nSee also the [project readme](https://github.com/sheaf/acts),\nwhich includes a simple example with 2D affine space.";
copyright="Copyright (c) Don Stewart 2005-2009,\n(c) Duncan Coutts 2006-2015,\n(c) David Roundy 2003-2005,\n(c) Jasper Van der Jeugt 2010,\n(c) Simon Meier 2010-2013.";
17
+
maintainer="Haskell Bytestring Team <[email protected]>, Core Libraries Committee";
18
+
author="Don Stewart,\nDuncan Coutts";
19
+
homepage="https://github.com/haskell/bytestring";
20
+
url="";
21
+
synopsis="Fast, compact, strict and lazy byte strings with a list interface";
22
+
description="An efficient compact, immutable byte string type (both strict and lazy)\nsuitable for binary or 8-bit character data.\n\nThe 'ByteString' type represents sequences of bytes or 8-bit characters.\nIt is suitable for high performance use, both in terms of large data\nquantities, or high speed requirements. The 'ByteString' functions follow\nthe same style as Haskell\\'s ordinary lists, so it is easy to convert code\nfrom using 'String' to 'ByteString'.\n\nTwo 'ByteString' variants are provided:\n\n* Strict 'ByteString's keep the string as a single large array. This\nmakes them convenient for passing data between C and Haskell.\n\n* Lazy 'ByteString's use a lazy list of strict chunks which makes it\nsuitable for I\\/O streaming tasks.\n\nThe @Char8@ modules provide a character-based view of the same\nunderlying 'ByteString' types. This makes it convenient to handle mixed\nbinary and 8-bit character content (which is common in many file formats\nand network protocols).\n\nThe 'Builder' module provides an efficient way to build up 'ByteString's\nin an ad-hoc way by repeated concatenation. This is ideal for fast\nserialisation or pretty printing.\n\nThere is also a 'ShortByteString' type which has a lower memory overhead\nand can be converted to or from a 'ByteString'. It is suitable for keeping\nmany short strings in memory, especially long-term, without incurring any\npossible heap fragmentation costs.\n\n'ByteString's are not designed for Unicode. For Unicode strings you should\nuse the 'Text' type from the @text@ package.\n\nThese modules are intended to be imported qualified, to avoid name clashes\nwith \"Prelude\" functions, e.g.\n\n> import qualified Data.ByteString as BS";
0 commit comments