stefan-hoeck
d36a234041
finished MonadRWS
2021-01-20 05:58:19 +01:00
stefan-hoeck
e906b28cae
removed MonadState functions from RWS.CPS.idr
2021-01-20 05:51:39 +01:00
stefan-hoeck
e8f2f56768
removed MonadWriter functions from RWS.CPS.idr
2021-01-20 05:48:43 +01:00
stefan-hoeck
6f2e358f1b
removed MonadReader functions from RWS.CPS.idr
2021-01-20 05:45:32 +01:00
stefan-hoeck
2776eaa1b1
remove MonadWriter functions from Writer.CPS module
2021-01-20 05:41:01 +01:00
stefan-hoeck
b6e5ba0830
minor MonadWriter cleanup
2021-01-20 05:27:56 +01:00
stefan-hoeck
313f52a88a
explicit lambdas for mapXYZ functions
2021-01-20 05:27:08 +01:00
stefan-hoeck
a42a34e9f0
removed trailing whitespace
2021-01-19 17:53:42 +01:00
stefan-hoeck
b5ab96477c
some cleanups in State
2021-01-19 17:47:06 +01:00
stefan-hoeck
8c9e318a6d
some cleanups in Reader
2021-01-19 17:43:47 +01:00
stefan-hoeck
7999420e88
made functions in EitherT and MaybeT public export
2021-01-19 17:38:59 +01:00
stefan-hoeck
c75d14fa8a
implemented MonadWriter
2021-01-19 16:19:27 +01:00
stefan-hoeck
01ba3aa365
moved MonadState to its interface module
2021-01-19 15:45:19 +01:00
stefan-hoeck
dac566152b
moved MonadReader to its interface module
2021-01-19 15:12:36 +01:00
stefan-hoeck
12f1ff493e
added mapStateT function
2021-01-19 14:57:10 +01:00
stefan-hoeck
8eb0e855f1
removed RWST function reader
2021-01-19 14:41:26 +01:00
stefan-hoeck
8cb2220e58
implemented cps-style Writer
2021-01-19 14:34:15 +01:00
stefan-hoeck
b9f7683fbd
mapRWST needs only a Functor
2021-01-19 14:11:06 +01:00
stefan-hoeck
b2e7384a80
implemented cps-style RWST
2021-01-19 13:58:18 +01:00
stefan-hoeck
81efdd7992
implementations for MonadError
2021-01-19 12:35:05 +01:00
stefan-hoeck
124afd89b1
moved transformer impls to their own directory
2021-01-19 11:53:23 +01:00
stefan-hoeck
b926e13b96
new transformer layout
2021-01-19 11:45:54 +01:00
Edwin Brady
c7783c553c
Make the linter happier
2021-01-16 17:18:38 +00:00
Edwin Brady
6df2955a72
Merge pull request #909 from stefan-hoeck/maybeT
...
added MaybeT monad transformer to base
2021-01-16 15:43:14 +00:00
Edwin Brady
70c87e49da
Merge pull request #920 from stefan-hoeck/eithert-foldable-fix
...
fixed bug in Foldable of EitherT
2021-01-16 15:40:33 +00:00
Stiopa Koltsov
b76c9d91e0
Remove trailing whitespaces and add trailing newlines
2021-01-16 10:00:03 +00:00
stefan-hoeck
7b73072554
fixed bug in Foldable of EitherT
2021-01-13 13:21:20 +01:00
Stefan Hoeck
77a911aa8a
Update libs/base/Control/Monad/Maybe.idr
...
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
2021-01-13 11:19:03 +01:00
stefan-hoeck
e52b658d78
no linearity annotation for MkMaybeT
2021-01-13 05:34:07 +01:00
Edwin Brady
d4abbfdae2
Add HasLinearIO
...
Ideally, liftIO would always be linear, but that has lots of knock-on
effects for other monads which we might want to put in HasIO, now that
subtyping is gone. We'll have to revisit this when we have some kind of
multiplicity polymorphism.
2021-01-11 11:24:43 +00:00
stefan-hoeck
31f50a793c
added prelude function 'on'
2021-01-11 05:26:17 +01:00
stefan-hoeck
c1912cb212
Monad prerequisite for Semigroup instance
2021-01-11 05:05:33 +01:00
stefan-hoeck
e71c7b8946
added MaybeT monad transformer to base
2021-01-08 06:04:41 +01:00
Edwin Brady
ad632d825d
Remove linearity subtyping
...
It's disappointing to have to do this, but I think necessary because
various issue reports have shown it to be unsound (at least as far as
inference goes) and, at the very least, confusing. This patch brings us
back to the basic rules of QTT.
On the one hand, this makes the 1 multiplicity less useful, because it
means we can't flag arguments as being used exactly once which would be
useful for optimisation purposes as well as precision in the type. On
the other hand, it removes some complexity (and a hack) from
unification, and has the advantage of being correct! Also, I still
consider the 1 multiplicity an experiment.
We can still do interesting things like protocol state tracking, which
is my primary motivation at least.
Ideally, if the 1 multiplicity is going to be more generall useful,
we'll need some kind of way of doing multiplicity polymorphism in the
future. I don't think subtyping is the way (I've pretty much always come
to regret adding some form of subtyping).
Fixes #73 (and maybe some others).
2020-12-27 19:58:35 +00:00
tensorknower69
aa940c3d18
change runState's signature
2020-12-17 10:10:18 +00:00
tensorknower69
c48b1e090e
add execStateT and evalStateT
2020-12-17 10:10:18 +00:00
G. Allais
3f6b99e979
[ fix #657 ] RigCount for interface parameters ( #808 )
2020-12-11 11:58:26 +00:00
Dong Tsing-hsuen
88aa55e875
[ new ] null method in Foldable ( #832 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2020-12-10 18:04:23 +00:00
MarcelineVQ
ea0df039fe
change runReader's to take state first to allow easier use
...
following up on the change made in 5c76053cf3
to encourage people to do it in this manner going forward
2020-09-15 22:46:07 +01:00
MarcelineVQ
19bad79847
change runState's to take state first to allow easier use
2020-09-15 09:23:41 +01:00
MarcelineVQ
5c76053cf3
change StateT, swap result parameters
...
Nipping this historical artifact in the bud before it roots. It's often
useful to be able to `map` directly to the result of a StateT computation
and due to how Functor works this is made harder when the tuple is
(a,state) vs (state,a)
2020-09-15 09:23:41 +01:00
MarcelineVQ
209de36ba0
add EitherT transformer ( #590 )
...
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2020-08-25 11:14:09 +01:00
Cole Brown
f227735cec
Add local to MonadReader interface
2020-08-20 16:33:50 +01:00
Cole Brown
6c3ab219bc
Implement MonadReader and related types/instances
...
This includes:
- ReaderT transformer
- Instances for Functor, Applicative, Monad, MonadTrans, HasIO,
Alternative
- asks helper function
- Reader alias
2020-08-20 16:33:50 +01:00
Niklas Larsson
84ae9d7c6e
Merge pull request #523 from mb64/hasio-statet
...
Implement HasIO for StateT
2020-08-18 14:02:02 +02:00
Thomas Dziedzic
a1739a69a0
Update app docs ( #537 )
2020-08-10 10:05:23 +01:00
Mark Barbone
10d28efd52
Implement HasIO for StateT
2020-08-04 17:19:45 -04:00
Edwin Brady
d12487f529
HasIO interface for IO actions
...
Also updates the Prelude and some base libraries to use HasIO rather
than using IO directly.
2020-06-21 01:18:43 +01:00
Edwin Brady
d18aac7afd
Move Data.ST to Control.Monad.ST
...
Seems a more appropriate place in the hierarchy (also roughly consistent
with where it is in Haskell base)
2020-06-20 12:51:38 +01:00
Tim Süberkrüb
30410eda52
Add fflush to Control.App.FileIO
2020-06-12 17:30:54 +02:00