Comments (4)
I'm not actively against adding this. =)
Let me check the extensions used, and if it doesn't extend the set then it'll definitely go in.
from free.
Like I said, it's not a blocking issue. If worse comes to worse I'll
just include it as a utility function in pipes.
On 09/07/2012 02:31 PM, Edward A. Kmett wrote:
I'm not actively against adding this. =)
Let me check the extensions used, and if it doesn't extend the set
then it'll definitely go in.—
Reply to this email directly or view it on GitHub
#5 (comment).
from free.
Oh, I just realized that if the Rank2Types
extension is a problem you can copy what Ross does for transformers
. Instead of providing a natural transformation he specializes the first argument to the concrete function that the compiler infers:
mapFreeT
:: (Monad m, Functor f)
=> (m (FreeF f a (FreeT g n b)) -> n (FreeF g b (FreeT g n b)))
-> FreeT f m a -> FreeT g n b
This still works correctly for monad morphisms, at the expense of an uglier type signature that hides the purpose of the function. However, you could add a documentation note saying something like:
"The typical use is to pass mapFreeT
a monad morphism of type forall r . m r -> n r
as its first argument so that you get a new monad morphism that modifies the base monad: forall r . FreeT f m r -> FreeT f n r
"
from free.
I just decided to add the Rank2Types requirement. This will let me move the Church encoded free monad from kan-extensions to here, which reduces the amount of crap people need to install in order to use it considerably.
from free.
Related Issues (20)
- Metadata revisions for 4.8 and 4.8.0.1 HOT 2
- free-5 doesn't build on old GHCs with transformers-0.4 HOT 3
- Fails with GHC-7.8.4 and installed transformers HOT 9
- Failure building free 5.0.2 with GHC 8.4.2 cross to iOS
- 'Ap' from 'Control.Applicative.Free' conflicts with 'Ap' in base-4.12
- ComonadTraced instance for CofreeT
- Add a MonadBaseControl instance for CofreeT HOT 6
- Simplify the applicative instance of Free HOT 2
- Deriving Via for several datatypes HOT 1
- Comonad f => MonadFree f (Tagged f) HOT 1
- Nu-based distributive cofree
- Add a class for free monad transformer-type things.
- Document 'Control.Monad.Free.Ap' has to work only on "commutative" monads
- Why does hoistFree have such a strict type? HOT 2
- deriving (Applicative, Monad) via GenericFreeMonad "Pure" (Free f)
- Support transformers-0.6 HOT 3
- Further simplify instances to avoid overkill *1 classes
- Dangling Links HOT 2
- `hoistFree` should be named `transFree`
- MonadAccum instance
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from free.