diff --git a/README.md b/README.md index 741e729..5c070f7 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is a library for *selective applicative functors*, or just *selective functors* for short, an abstraction between applicative functors and monads, introduced in -[this paper](https://dl.acm.org/ft_gateway.cfm?id=3341694). +[this paper](https://dl.acm.org/doi/10.1145/3341694). ## What are selective functors? diff --git a/examples/Build.hs b/examples/Build.hs index e24a577..feeec12 100644 --- a/examples/Build.hs +++ b/examples/Build.hs @@ -4,8 +4,7 @@ module Build where import Control.Selective import Control.Selective.Rigid.Free --- See Section 3 of the paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf +-- See Section 3 of the paper: https://dl.acm.org/doi/10.1145/3341694. -- | Selective build tasks. -- See "Build Systems à la Carte": https://dl.acm.org/citation.cfm?id=3236774. diff --git a/examples/Parser.hs b/examples/Parser.hs index 2984c20..9896379 100644 --- a/examples/Parser.hs +++ b/examples/Parser.hs @@ -5,8 +5,7 @@ import Control.Applicative import Control.Monad import Control.Selective --- See Section 7.2 of the paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf +-- See Section 7.2 of the paper: https://dl.acm.org/doi/10.1145/3341694. newtype Parser a = Parser { parse :: String -> [(a, String)] } diff --git a/examples/Processor.hs b/examples/Processor.hs index 4752185..b2a7130 100644 --- a/examples/Processor.hs +++ b/examples/Processor.hs @@ -16,8 +16,7 @@ import Prelude hiding (read, log) import qualified Control.Monad.Trans.State as S import qualified Data.Map.Strict as Map --- See Section 5.3 of the paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf +-- See Section 5.3 of the paper: https://dl.acm.org/doi/10.1145/3341694. -- Note that we have changed the naming. -- | A standard @MonadState@ class extended with the 'Selective' interface. diff --git a/examples/Teletype.hs b/examples/Teletype.hs index 9e360b0..c558a60 100644 --- a/examples/Teletype.hs +++ b/examples/Teletype.hs @@ -7,8 +7,7 @@ import qualified Control.Monad as IO import Control.Selective import Control.Selective.Free --- See Section 5.2 of the paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf +-- See Section 5.2 of the paper: https://dl.acm.org/doi/10.1145/3341694. -- | The classic @Teletype@ base functor. data TeletypeF a = Read (String -> a) | Write String a deriving Functor diff --git a/examples/Teletype/Rigid.hs b/examples/Teletype/Rigid.hs index 77bdc38..b186a89 100644 --- a/examples/Teletype/Rigid.hs +++ b/examples/Teletype/Rigid.hs @@ -7,8 +7,7 @@ import qualified Control.Monad as IO import Control.Selective import Control.Selective.Rigid.Free --- See Section 5.2 of the paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf +-- See Section 5.2 of the paper: https://dl.acm.org/doi/10.1145/3341694. -- | The classic @Teletype@ base functor. data TeletypeF a = Read (String -> a) | Write String a deriving Functor diff --git a/examples/Validation.hs b/examples/Validation.hs index 07ee68f..9c3c455 100644 --- a/examples/Validation.hs +++ b/examples/Validation.hs @@ -3,8 +3,7 @@ module Validation where import Control.Selective --- See Section 2.2 of the paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf +-- See Section 2.2 of the paper: https://dl.acm.org/doi/10.1145/3341694. type Radius = Word type Width = Word diff --git a/selective.cabal b/selective.cabal index 1cc2c39..7b070ed 100644 --- a/selective.cabal +++ b/selective.cabal @@ -18,7 +18,7 @@ description: Selective applicative functors: declare your effects statically, This is a library for /selective applicative functors/, or just /selective functors/ for short, an abstraction between applicative functors and monads, introduced in - . + . extra-doc-files: CHANGES.md diff --git a/src/Control/Selective.hs b/src/Control/Selective.hs index 71c9d9f..c094f10 100644 --- a/src/Control/Selective.hs +++ b/src/Control/Selective.hs @@ -11,8 +11,7 @@ -- -- This is a library for /selective applicative functors/, or just -- /selective functors/ for short, an abstraction between applicative functors --- and monads, introduced in this paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf. +-- and monads, introduced in this paper: https://dl.acm.org/doi/10.1145/3341694. -- ----------------------------------------------------------------------------- module Control.Selective ( diff --git a/src/Control/Selective/Free.hs b/src/Control/Selective/Free.hs index ea940fc..c529af1 100644 --- a/src/Control/Selective/Free.hs +++ b/src/Control/Selective/Free.hs @@ -9,8 +9,7 @@ -- -- This is a library for /selective applicative functors/, or just -- /selective functors/ for short, an abstraction between applicative functors --- and monads, introduced in this paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf. +-- and monads, introduced in this paper: https://dl.acm.org/doi/10.1145/3341694. -- -- This module defines /free selective functors/ using the ideas from the -- Sjoerd Visscher's package 'free-functors': diff --git a/src/Control/Selective/Multi.hs b/src/Control/Selective/Multi.hs index 150b50a..bd4846b 100644 --- a/src/Control/Selective/Multi.hs +++ b/src/Control/Selective/Multi.hs @@ -10,8 +10,7 @@ -- -- This is a library for /selective applicative functors/, or just -- /selective functors/ for short, an abstraction between applicative functors --- and monads, introduced in this paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf. +-- and monads, introduced in this paper: https://dl.acm.org/doi/10.1145/3341694. -- -- This module defines /multi-way selective functors/, which are more efficient -- when selecting from a large number of options. They also fully subsume the diff --git a/src/Control/Selective/Rigid/Free.hs b/src/Control/Selective/Rigid/Free.hs index 5d46706..9857951 100644 --- a/src/Control/Selective/Rigid/Free.hs +++ b/src/Control/Selective/Rigid/Free.hs @@ -9,8 +9,7 @@ -- -- This is a library for /selective applicative functors/, or just -- /selective functors/ for short, an abstraction between applicative functors --- and monads, introduced in this paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf. +-- and monads, introduced in this paper: https://dl.acm.org/doi/10.1145/3341694. -- -- This module defines /free rigid selective functors/. Rigid selective functors -- are those that satisfy the property @\<*\> = apS@. diff --git a/src/Control/Selective/Rigid/Freer.hs b/src/Control/Selective/Rigid/Freer.hs index fae470e..c422dd3 100644 --- a/src/Control/Selective/Rigid/Freer.hs +++ b/src/Control/Selective/Rigid/Freer.hs @@ -9,8 +9,7 @@ -- -- This is a library for /selective applicative functors/, or just -- /selective functors/ for short, an abstraction between applicative functors --- and monads, introduced in this paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf. +-- and monads, introduced in this paper: https://dl.acm.org/doi/10.1145/3341694. -- -- This module defines /freer rigid selective functors/. Rigid selective -- functors are those that satisfy the property @\<*\> = apS@. Compared to the diff --git a/src/Control/Selective/Trans/Except.hs b/src/Control/Selective/Trans/Except.hs index 093f33f..a6cca40 100644 --- a/src/Control/Selective/Trans/Except.hs +++ b/src/Control/Selective/Trans/Except.hs @@ -10,8 +10,7 @@ -- -- This is a library for /selective applicative functors/, or just -- /selective functors/ for short, an abstraction between applicative functors --- and monads, introduced in this paper: --- https://www.staff.ncl.ac.uk/andrey.mokhov/selective-functors.pdf. +-- and monads, introduced in this paper: https://dl.acm.org/doi/10.1145/3341694. -- -- This module defines a newtype around 'ExceptT' from @transformers@ with less -- restrictive 'Applicative', 'Selective', and 'Alternative' implementations.