Cabal revisions of data-accessor-0.2.3.1
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-Name: data-accessor-Version: 0.2.3.1-License: BSD3-License-File: LICENSE-Author: Henning Thielemann <haskell@henning-thielemann.de>, Luke Palmer <lrpalmer@gmail.com>-Maintainer: Henning Thielemann <haskell@henning-thielemann.de>-Homepage: http://www.haskell.org/haskellwiki/Record_access-Category: Data-Cabal-Version: >=1.10-Build-Type: Simple-Tested-With: GHC==6.4.1, GHC==6.8.2, GHC==6.10.4, GHC==6.12.3-Tested-With: GHC==7.0.1, GHC==7.2.1, GHC==7.4.1, GHC==7.6.3-Tested-With: JHC==0.7.3-Synopsis: Utilities for accessing and manipulating fields of records-Description:- In Haskell 98 the name of a record field- is automatically also the name of a function which gets the value- of the according field.- E.g. if we have- .- data Pair a b = Pair {first :: a, second :: b}- .- then- .- > first :: Pair a b -> a- > second :: Pair a b -> b- .- However for setting or modifying a field value- we need to use some syntactic sugar, which is often clumsy.- .- > modifyFirst :: (a -> a) -> (Pair a b -> Pair a b)- > modifyFirst f r@(Pair{first=a}) = r{first = f a}- .- With this package you can define record field accessors- which allow setting, getting and modifying values easily.- The package clearly demonstrates the power of the functional approach:- You can combine accessors of a record and sub-records,- to make the access look like the fields of the sub-record belong to the main record.- .- Example:- .- > *Data.Accessor.Example> (first^:second^=10) (('b',7),"hallo")- > (('b',10),"hallo")- .- You can easily manipulate record fields in a 'Control.Monad.State.State' monad,- you can easily code 'Show' instances that use the Accessor syntax- and you can parse binary streams into records.- See @Data.Accessor.Example@ for demonstration of all features.- .- It would be great if in revised Haskell versions the names of record fields- are automatically 'Data.Accessor.Accessor's- rather than plain @get@ functions.- For now, the package @data-accessor-template@ provides Template Haskell functions- for automated generation of 'Data.Acesssor.Accessor's.- See also the other @data-accessor@ packages- that provide an Accessor interface to other data types.- The package @enumset@ provides accessors to bit-packed records.- .- For similar packages see @lenses@ and @fclabel@.- A related concept are editors- <http://conal.net/blog/posts/semantic-editor-combinators/>.- Editors only consist of a modify method- (and @modify@ applied to a 'const' function is a @set@ function).- This way, they can modify all function values of a function at once,- whereas an accessor can only change a single function value,- say, it can change @f 0 = 1@ to @f 0 = 2@.- This way, editors can even change the type of a record or a function.- An Arrow instance can be defined for editors,- but for accessors only a Category instance is possible ('(.)' method).- The reason is the @arr@ method of the @Arrow@ class,- that conflicts with the two-way nature (set and get) of accessors.--Extra-Source-Files:- RegExp- src-3/Data/Accessor/Private.hs- src-4/Data/Accessor/Private.hs- src-fail/before-4.13/Data/Accessor/ByteSource.hs- src-fail/from-4.13/Data/Accessor/ByteSource.hs--Source-Repository this- Tag: 0.2.3.1- Type: darcs- Location: http://code.haskell.org/data-accessor/core/--Source-Repository head- Type: darcs- Location: http://code.haskell.org/data-accessor/core/--Flag monadFail- description: Check whether Monad class is split into Monad and MonadFail.--Flag category- description: Check whether Arrow class is split into Arrow and Category.--Flag splitBase- description: Choose the smaller, split-up base package from version 2 on.--Library- Build-Depends:- transformers >=0.2 && <0.7- If flag(splitBase)- Build-Depends:- array >=0.1 && <0.6,- containers >=0.1 && <0.7- If flag(category)- Hs-Source-Dirs: src-4- If flag(monadFail)- Hs-Source-Dirs: src-fail/from-4.13- Build-Depends: base >=4.13 && <5- Else- Hs-Source-Dirs: src-fail/before-4.13- Build-Depends: base >=4 && <4.13- Else- Hs-Source-Dirs: src-3- Build-Depends: base >=2 && <4- Else- Hs-Source-Dirs: src-3- Build-Depends:- base >= 1 && <2- If impl(jhc)- Build-Depends:- containers >=0.1 && <0.7-- Default-Language: Haskell98- GHC-Options: -Wall- Hs-Source-Dirs: src- Exposed-Modules:- Data.Accessor- Data.Accessor.Basic- Data.Accessor.Container- Data.Accessor.Show- Data.Accessor.Tuple- Data.Accessor.BinaryRead- Data.Accessor.MonadState- Other-Modules:- Data.Accessor.ByteSource- Data.Accessor.Example- Data.Accessor.Private- Data.Accessor.MonadStatePrivate+Name: data-accessor +Version: 0.2.3.1 +x-revision: 1 +License: BSD3 +License-File: LICENSE +Author: Henning Thielemann <haskell@henning-thielemann.de>, Luke Palmer <lrpalmer@gmail.com> +Maintainer: Henning Thielemann <haskell@henning-thielemann.de> +Homepage: http://www.haskell.org/haskellwiki/Record_access +Category: Data +Cabal-Version: >=1.10 +Build-Type: Simple +Tested-With: GHC==6.4.1, GHC==6.8.2, GHC==6.10.4, GHC==6.12.3 +Tested-With: GHC==7.0.1, GHC==7.2.1, GHC==7.4.1, GHC==7.6.3 +Tested-With: JHC==0.7.3 +Synopsis: Utilities for accessing and manipulating fields of records +Description: + In Haskell 98 the name of a record field + is automatically also the name of a function which gets the value + of the according field. + E.g. if we have + . + data Pair a b = Pair {first :: a, second :: b} + . + then + . + > first :: Pair a b -> a + > second :: Pair a b -> b + . + However for setting or modifying a field value + we need to use some syntactic sugar, which is often clumsy. + . + > modifyFirst :: (a -> a) -> (Pair a b -> Pair a b) + > modifyFirst f r@(Pair{first=a}) = r{first = f a} + . + With this package you can define record field accessors + which allow setting, getting and modifying values easily. + The package clearly demonstrates the power of the functional approach: + You can combine accessors of a record and sub-records, + to make the access look like the fields of the sub-record belong to the main record. + . + Example: + . + > *Data.Accessor.Example> (first^:second^=10) (('b',7),"hallo") + > (('b',10),"hallo") + . + You can easily manipulate record fields in a 'Control.Monad.State.State' monad, + you can easily code 'Show' instances that use the Accessor syntax + and you can parse binary streams into records. + See @Data.Accessor.Example@ for demonstration of all features. + . + It would be great if in revised Haskell versions the names of record fields + are automatically 'Data.Accessor.Accessor's + rather than plain @get@ functions. + For now, the package @data-accessor-template@ provides Template Haskell functions + for automated generation of 'Data.Acesssor.Accessor's. + See also the other @data-accessor@ packages + that provide an Accessor interface to other data types. + The package @enumset@ provides accessors to bit-packed records. + . + For similar packages see @lenses@ and @fclabel@. + A related concept are editors + <http://conal.net/blog/posts/semantic-editor-combinators/>. + Editors only consist of a modify method + (and @modify@ applied to a 'const' function is a @set@ function). + This way, they can modify all function values of a function at once, + whereas an accessor can only change a single function value, + say, it can change @f 0 = 1@ to @f 0 = 2@. + This way, editors can even change the type of a record or a function. + An Arrow instance can be defined for editors, + but for accessors only a Category instance is possible ('(.)' method). + The reason is the @arr@ method of the @Arrow@ class, + that conflicts with the two-way nature (set and get) of accessors. + +Extra-Source-Files: + RegExp + src-3/Data/Accessor/Private.hs + src-4/Data/Accessor/Private.hs + src-fail/before-4.13/Data/Accessor/ByteSource.hs + src-fail/from-4.13/Data/Accessor/ByteSource.hs + +Source-Repository this + Tag: 0.2.3.1 + Type: darcs + Location: http://code.haskell.org/data-accessor/core/ + +Source-Repository head + Type: darcs + Location: http://code.haskell.org/data-accessor/core/ + +Flag monadFail + description: Check whether Monad class is split into Monad and MonadFail. + +Flag category + description: Check whether Arrow class is split into Arrow and Category. + +Flag splitBase + description: Choose the smaller, split-up base package from version 2 on. + +Library + Build-Depends: + transformers >=0.2 && <0.7 + If flag(splitBase) + Build-Depends: + array >=0.1 && <0.6, + containers >=0.1 && <0.8 + If flag(category) + Hs-Source-Dirs: src-4 + If flag(monadFail) + Hs-Source-Dirs: src-fail/from-4.13 + Build-Depends: base >=4.13 && <5 + Else + Hs-Source-Dirs: src-fail/before-4.13 + Build-Depends: base >=4 && <4.13 + Else + Hs-Source-Dirs: src-3 + Build-Depends: base >=2 && <4 + Else + Hs-Source-Dirs: src-3 + Build-Depends: + base >= 1 && <2 + If impl(jhc) + Build-Depends: + containers >=0.1 && <0.8 + + Default-Language: Haskell98 + GHC-Options: -Wall + Hs-Source-Dirs: src + Exposed-Modules: + Data.Accessor + Data.Accessor.Basic + Data.Accessor.Container + Data.Accessor.Show + Data.Accessor.Tuple + Data.Accessor.BinaryRead + Data.Accessor.MonadState + Other-Modules: + Data.Accessor.ByteSource + Data.Accessor.Example + Data.Accessor.Private + Data.Accessor.MonadStatePrivate
revision 2
Name: data-accessor Version: 0.2.3.1 -x-revision: 1 +x-revision: 2 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>, Luke Palmer <lrpalmer@gmail.com> If flag(splitBase) Build-Depends: array >=0.1 && <0.6, - containers >=0.1 && <0.8 + containers >=0.1 && <0.9 If flag(category) Hs-Source-Dirs: src-4 If flag(monadFail) base >= 1 && <2 If impl(jhc) Build-Depends: - containers >=0.1 && <0.8 + containers >=0.1 && <0.9 Default-Language: Haskell98 GHC-Options: -Wall