The between package

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

It turns out that this combinator

 f ~@~ g = (f .) . (. g)

is a powerful thing. It was abstracted from following (commonly used) pattern f . h . g where f and g are fixed.

This library not only defines ~@~ combinator, but also some derived combinators that can help us easily define a lot of things including lenses. See lens package for detais on what lenses are.

Function Data.Function.on can be implemented using ~@~ as:

 on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
 on f g = (id ~@~ g ~@~ g) f

If function on3 existed in base then it could be defined as:

 on3 :: (b -> b -> b -> d) -> (a -> b) -> a -> a -> a -> d
 on3 f g = (id ~@~ g ~@~ g ~@~ g) f

Other usage examples and documentation can be found in Data.Function.Between module.


[Skip to ReadMe]

Properties

Versions0.9.0.0, 0.9.0.1, 0.9.0.2, 0.10.0.0, 0.11.0.0, 0.11.0.0
Change logChangeLog.md
Dependenciesbase (>3 && <5) [details]
LicenseBSD3
Copyright(c) 2013-2016, Peter Trško
AuthorPeter Trško
Maintainerpeter.trsko@gmail.com
CategoryData
Home pagehttps://github.com/trskop/between
Bug trackerhttps://github.com/trskop/between/issues
Source repositoryhead: git clone git://github.com/trskop/between.git
this: git clone git://github.com/trskop/between.git(tag v0.11.0.0)
UploadedSat Jan 9 12:04:22 UTC 2016 by PeterTrsko

Modules

[Index]

Flags

NameDescriptionDefaultType
pedanticPass additional warning flags to GHC.DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for between-0.11.0.0

Between

Hackage Hackage Dependencies Haskell Programming Language BSD3 License

Build

Description

It turns out that this combinator

f ~@~ g = (f .) . (. g)

is a powerful thing. It was abstracted from following (commonly used) pattern f . h . g where f and g are fixed.

This library not only define ~@~ combinator, but also some derived combinators that can help us to easily define a lot of things including lenses. See lens package for detais on what lenses are.

Function Data.Function.on can be implemented using ~@~ as:

on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
on f g = (id ~@~ g ~@~ g) f

If function @on3@ existed in /base/ then it could be defined as:

on3 :: (b -> b -> b -> d) -> (a -> b) -> a -> a -> a -> d
on3 f g = (id ~@~ g ~@~ g ~@~ g) f

For more examples see documentation.

Documentation

Stable releases with API documentation are available on Hackage.

Building Options

License

The BSD 3-Clause License, see LICENSE file for details.

Contributions

Contributions, pull requests and bug reports are welcome! Please don't be afraid to contact author using GitHub or by e-mail (see .cabal file for that).