profile
viewpoint
Rob Rix robrix @GitHub http://antitypical.com Colouring outside the lines at @GitHub.

jspahrsummers/libextobjc 4443

A Cocoa library to extend the Objective-C programming language.

joshaber/Few.swift 1070

Views as functions of their state.

primer/components 857

Primer React components

atom/teletype-crdt 585

String-wise sequence CRDT powering peer-to-peer collaborative editing in Teletype for Atom.

fused-effects/fused-effects 445

A fast, flexible, fused effect system for Haskell

jspahrsummers/objc-build-scripts 254

Bootstrap and CI scripts for Objective-C projects.

jspahrsummers/enemy-of-the-state 208

My talk explaining what state is and why it's so harmful

mdiep/Logician 177

Logic programming in Swift

niik/RxSpy 118

Reactive application debugger/visualizer for .NET

patrickt/fastsum 76

A fast open-union type, suitable for 100+ contained alternatives.

push eventrobrix/isometry

Rob Rix

commit sha 130babbbc7d1ec4e70ff7f24d6bc25aca91208a4

Extract the before predicate.

view details

Rob Rix

commit sha cc02c3d8e8be7dbe30d154d7fce0638b1a3110f1

Simplify deletion.

view details

Rob Rix

commit sha e8da9600afdb02571f51e16a73cdaccbc7b77af8

Factor out functions to split and reassemble interval sets.

view details

Rob Rix

commit sha b31f8269fb263803ca4791a0a1adf98f60476233

Grab the next element if it overlaps.

view details

Rob Rix

commit sha 1982c2e16d4c1dce96a5296ea382f831cbb57064

Export splitAround.

view details

Rob Rix

commit sha 283c18b6774b35081332d5ec0b84f58b69feb947

Redefine insertion in terms of splitAround.

view details

Rob Rix

commit sha 56935487833010d1c4b66496f3ece6b368d6ec5b

Test that splitAround returns a smaller interval on the left.

view details

Rob Rix

commit sha 80f1c7d9f1248175f783c7068fc4ae8e70b13f39

Test that splitAround returns larger intervals on the right.

view details

Rob Rix

commit sha 0db228f515d132d3fa7734a955129649e5853ed1

Standardize the idiom for the remaining sets.

view details

Rob Rix

commit sha 26fa6fc9f64818e00269811ba355160609399fa1

Test the spans using all.

view details

Rob Rix

commit sha 6cb6621fbddefd3447831e66c5d541f675c1745a

Test that all the centre intervals overlap the target.

view details

Rob Rix

commit sha 8d27d911ffe4a89f83773a5846207420862f9536

Factor out the validity predicate.

view details

Rob Rix

commit sha 2978f1a3e79b7064a38e9004e0a9ceb40c71fb58

Use the validity predicate to test for intersections.

view details

Rob Rix

commit sha 0431f84d2a73600dd1f4a702f9c11bc0978df525

Move the validity predicate into Data.Functor.Interval.

view details

Rob Rix

commit sha 6ee33cd9c39504b315d75e6d7c97df2b7df685be

Define an intersects predicate on intervals.

view details

Rob Rix

commit sha 24fe42504517594ecd9b18a03beac79098f323bb

Test the overlapping set using intersects.

view details

push time in 13 hours

push eventrobrix/isometry

Rob Rix

commit sha 56363722ff154250d1165b57cea657d717b48a50

Stop recurring.

view details

Rob Rix

commit sha 6d7fbd08d848249a48c9f4ec2aabcf77b694c1e3

Split intervals.

view details

Rob Rix

commit sha c64c05b16746f43df946f46a57e8ba3db995af88

Trim suffixes.

view details

Rob Rix

commit sha 01312f9b88b903629914c87803ee0010636af125

Trim prefixes.

view details

push time in 14 hours

push eventrobrix/isometry

Rob Rix

commit sha 236ae883d781c37d67be4c629f8baa36d3e6ae09

Add a test group for deletion.

view details

Rob Rix

commit sha d345c4c30612145160d27b5f0e371c8e6c544adf

Stub in a bad definition of deletion.

view details

Rob Rix

commit sha 738f4cb7d3fa1a478881d4abadf6cf69a31135d2

Test that deletion is the inverse of insertion.

view details

Rob Rix

commit sha cf0aa4e6f4fdfdf200e0a2ecb86b82b59e906672

Test that deletion removes the entire set.

view details

Rob Rix

commit sha 8f9a1d7f17ee67a13b35c9650e58572936de0753

Correct the annihilation test.

view details

Rob Rix

commit sha 0d87b95926a8025e3364f3bf0d4ba31761c062f0

Test for intervals past the end of the deletion.

view details

Rob Rix

commit sha df01f316879fba8d453ddc71fe7f3b1d245203a4

Prepend the intersection.

view details

Rob Rix

commit sha a52a0cd5a60407ca7cf547996b7c54443c298126

Simplify the recursion cases.

view details

Rob Rix

commit sha 2fc208d20bfa6881a39c499eee103fd8a0c96e42

fused-effects 1.1.

view details

push time in 14 hours

pull request commentfused-effects/fused-effects-lens

Support fused-effects 1.1

@patrickt: I’ll 🚢 a new hackage release when you’re :ok: with this PR.

robrix

comment created time in 14 hours

PR opened fused-effects/fused-effects-lens

Support fused-effects 1.1

This PR loosens the bound on fused-effects to admit 1.1.

+6 -3

0 comment

2 changed files

pr created time in 14 hours

push eventfused-effects/fused-effects-lens

Rob Rix

commit sha 03c353f0a7c043e396590d1b8376a8b7322d3150

Bump the version #.

view details

Rob Rix

commit sha 08cf20ad410362ecadaf56555b404ab7457fefee

Add a changelog entry.

view details

push time in 14 hours

create barnchfused-effects/fused-effects-lens

branch : ba-bump

created branch time in 14 hours

delete branch fused-effects/fused-effects-random

delete branch : distributive-algebra

delete time in 14 hours

push eventfused-effects/fused-effects-random

Rob Rix

commit sha cfc982425df4f10c5932f64ba738af679c430d25

Depend on the distributive-algebra branch.

view details

Rob Rix

commit sha 660112d0d6dc084c789e2ec45f2daecba8015567

:fire: the HFunctor instance.

view details

Rob Rix

commit sha 353ba99e3fdc2b4365ade79f8777def8d3bed0e4

:fire: the Effect instance.

view details

Rob Rix

commit sha e720521861c400802b0352aaca481778fe0e9841

:fire: the dependency on an Effect instance.

view details

Rob Rix

commit sha cda9ff9c5c2f2823d27ca938a3a8cc995bbe13c3

Update the Algebra instance.

view details

Rob Rix

commit sha 092940ccd61d6c20783cb4c069ea284a2bbc61e2

Merge branch 'master' into distributive-algebra

view details

Rob Rix

commit sha 37218ca54ab13f42c8383377e232104508b3f00d

Merge branch 'master' into distributive-algebra

view details

Rob Rix

commit sha 65050a77c3f31b6e13e50f51e96ecb9e591b3340

Bump fused-effects.

view details

Rob Rix

commit sha 85cb0d684f35f97d9cc7c075d6c9853b656388bd

Redefine the effect as a GADT.

view details

Rob Rix

commit sha 2abca77754c7e63070a245889cf23724cb0e3ad0

Use StateT instead of StateC to require less swapping.

view details

Rob Rix

commit sha f62c42e056f23e9ec8798e3aa912c19340904fda

Bump.

view details

Rob Rix

commit sha 8fcf2346153b200cf4ae1a104400ebb379565fcb

Don’t export runRandomC.

view details

Rob Rix

commit sha a503f221bacf342f70e9a22e8977ca909650577b

Use the Church-encoded State carrier.

view details

Rob Rix

commit sha ce084fa9ee7810be7fcad96907686eea9f7649f9

Factor out the RandomC constructor.

view details

Rob Rix

commit sha 794950975ca8922eb7a38d3c985a8124dc153fbf

Nest a case on the random effect.

view details

Rob Rix

commit sha 175b1d1a296ed2608bfd3fbdcb9200987b708700

Avoid a bunch of binds.

view details

Rob Rix

commit sha 858167fc941ed0c347d5f885fedcdea250646472

Ignore a few 8.10 warnings.

view details

Rob Rix

commit sha 8cf04ec6be1d75b3a07d785f2aa49a5fa8d4d727

:fire: the override of fused-effects.

view details

Rob Rix

commit sha eaf121a107da4ab75275d5698cd72a628689d563

Depend on fused-effects 1.1.

view details

Rob Rix

commit sha 7e84d855865b0fedbd1ede6351d72114a8f8284a

Loosen the bounds on base.

view details

push time in 14 hours

PR merged fused-effects/fused-effects-random

Distributive algebra
  • [x] Depends on https://github.com/fused-effects/fused-effects/pull/361
+33 -56

0 comment

5 changed files

robrix

pr closed time in 14 hours

push eventfused-effects/fused-effects-random

Rob Rix

commit sha b595544e5d1b7068882380025d111376b582a261

Build with 8.10.

view details

push time in 14 hours

push eventfused-effects/fused-effects-random

Rob Rix

commit sha 63a38688e2b28153599bef69b68ed4dab9a16670

Loosen the bounds on random.

view details

push time in 15 hours

push eventfused-effects/fused-effects-random

Rob Rix

commit sha 858167fc941ed0c347d5f885fedcdea250646472

Ignore a few 8.10 warnings.

view details

Rob Rix

commit sha 8cf04ec6be1d75b3a07d785f2aa49a5fa8d4d727

:fire: the override of fused-effects.

view details

Rob Rix

commit sha eaf121a107da4ab75275d5698cd72a628689d563

Depend on fused-effects 1.1.

view details

Rob Rix

commit sha 7e84d855865b0fedbd1ede6351d72114a8f8284a

Loosen the bounds on base.

view details

push time in 15 hours

delete branch fused-effects/fused-effects-profile

delete branch : cpu-time

delete time in 15 hours

push eventfused-effects/fused-effects-profile

Rob Rix

commit sha 81ecff9dcd27ef8e50a298df159aa7ce3abd438a

Switch to recording timings as picoseconds.

view details

Rob Rix

commit sha 173aed1600b8c2028ea3805f91dba6b8b823ec48

:fire: the dependency on time.

view details

Rob Rix

commit sha a3219086675900b856593e6369b6362239adedd0

Revert ":fire: the dependency on time." This reverts commit 173aed1600b8c2028ea3805f91dba6b8b823ec48.

view details

Rob Rix

commit sha edd6fc83fb505d4b11b4d58bd87c2e3e45a1fa5c

Revert "Switch to recording timings as picoseconds." This reverts commit 81ecff9dcd27ef8e50a298df159aa7ce3abd438a.

view details

Rob Rix

commit sha d8dd80f208a1bd062f662f822584f34c42fd53e9

Calculate timings from the system time.

view details

Rob Rix

commit sha 55dc0b369c5dee25d04cc8c56e1943cad9a44d4f

Define a Duration newtype.

view details

Rob Rix

commit sha 4064703378d19d4d0f7bb131d983e327594974fb

Define a Semigroup instance for Duration.

view details

Rob Rix

commit sha de9bdf7430d1b3912d410966bee75742dd265400

Define a Monoid instance for Duration.

view details

Rob Rix

commit sha 1a430f9231de886cfd2c6b732873dc1bac148664

Define an action getting the current time.

view details

Rob Rix

commit sha 911d2b22af01c921088402997618f9820d0cc556

Define an Instant newtype.

view details

Rob Rix

commit sha 8d08d67ce8c486ecd1bad12153ad0422fe9a8a78

Compute deltas of Instants.

view details

Rob Rix

commit sha b9f84c037fb8a9311435df461b19941aa80341fb

Derive some instances for Instant & Duration.

view details

Rob Rix

commit sha 975431af2365b29512d787ceba569de4f9f86203

Define a function converting Durations to Fractional types.

view details

Rob Rix

commit sha a12aa281f4f65012cbc445df5354b1fd16b13e39

Silence a warning.

view details

Rob Rix

commit sha f1515344ffb0d6786d462621a3e72550cfd0938a

Nanoseconds are 10⁻⁹.

view details

Rob Rix

commit sha 93099bbe87894ab91ecac1863f16582be45c6e55

Revert "Nanoseconds are 10⁻⁹." This reverts commit f1515344ffb0d6786d462621a3e72550cfd0938a.

view details

Rob Rix

commit sha 3a52a8d013025e9319bb8f980d3acb4e55dd261a

Revert "Silence a warning." This reverts commit a12aa281f4f65012cbc445df5354b1fd16b13e39.

view details

Rob Rix

commit sha 15cda44f2f87009647be9f257a2424055db85fcb

Revert "Define a function converting Durations to Fractional types." This reverts commit 975431af2365b29512d787ceba569de4f9f86203.

view details

Rob Rix

commit sha b88e1b38569bd0dbc6d2794fc3dcb6f304f582c3

Inline now.

view details

Rob Rix

commit sha f8121027a2f1c5f88160bb00bed4256cfd133f66

Inline since.

view details

push time in 15 hours

push eventfused-effects/fused-effects-profile

Rob Rix

commit sha 298c2d4c457e63899458d45000ca8267d2db33cc

Bump the dependency on fused-effects to 1.1.

view details

Rob Rix

commit sha c429cb9474db63f671c4b4371b2a50511f9bd534

:fire: the local fused-effects override.

view details

Rob Rix

commit sha 14559db42a5c8948aa189923f7a1962cbe8cbb7c

Merge pull request #2 from fused-effects/distributive-algebra Distributive algebra

view details

Rob Rix

commit sha 33a09f7a8ad609c4da799ae18eac7c31200eb313

Merge branch 'master' into cpu-time

view details

push time in 15 hours

delete branch fused-effects/fused-effects-profile

delete branch : distributive-algebra

delete time in 15 hours

push eventfused-effects/fused-effects-profile

Rob Rix

commit sha 86844fc2a185bb5a328798a6b75d78f26801b669

Depend on the distributive-algebra branch.

view details

Rob Rix

commit sha 3c19980ea85c902ca3aba7a6b15292c83bb8f3c5

:fire: the HFunctor instance.

view details

Rob Rix

commit sha ed951f1facbfe753077f0e92cd714cf815aeb00e

:fire: the Effect instance.

view details

Rob Rix

commit sha 9aba37f6402afcb1826f264ec20b6186ffc0c8cf

:fire: Effect constraints.

view details

Rob Rix

commit sha 7e9375d5b0403ac72093be7299bf531251a91f1c

Update the Identity.ProfileC algebra.

view details

Rob Rix

commit sha d2ed2130937857c0d2a10bf7723345f485bdc9e9

Update the Tree.ProfileC algebra.

view details

Rob Rix

commit sha 4d76606776f04add624135ad1b94072f15b004d8

Update the Flat.ProfileC algebra.

view details

Rob Rix

commit sha 39657888975ac69520c8940e0f69d904cfaa3b36

Disable -Werror for local development.

view details

Rob Rix

commit sha c1600abe1e1bf2380c0ed34cfd9794faa107c595

Prefix the first dependency.

view details

Rob Rix

commit sha 2bec8edf8c0ed3389923c1e4f14c2e3717802360

Bump fused-effects.

view details

Rob Rix

commit sha fd05428c99e64b0a4ce36d3377fc8ba188610a1a

Copy in the stylish-haskell config.

view details

Rob Rix

commit sha 2cc640546ccd5f3209e5dc0b0d04bf12716b74b9

Reformat the language extensions.

view details

Rob Rix

commit sha d2e4a5f45e71b22732b989597e198d70f2e8cde9

Redefine the Profile effect as a GADT.

view details

Rob Rix

commit sha d897811056009de4b68ab0a724163a706a8937b2

Enable the star-is-type warning.

view details

Rob Rix

commit sha 744c049da869d6b32140310405b5aaa40be59eef

Bump.

view details

Rob Rix

commit sha 8dfa68d60aa9bad20616f2fccb3e35147bc56de2

Flat.ProfileC uses the Church-encoded WriterC.

view details

Rob Rix

commit sha b23b07efbabd82d20d316f409bacd06110a72192

Tree.ProfileC uses the Church-encoded WriterC.

view details

Rob Rix

commit sha 7462476f0661bead4ded2cd9b3bb9b3d4aa1dff7

Bump fused-effects.

view details

Rob Rix

commit sha 5b6aa38621e9bcbf7a07a24dfbf3620508e3b67c

Update for 8.10.

view details

Rob Rix

commit sha 298c2d4c457e63899458d45000ca8267d2db33cc

Bump the dependency on fused-effects to 1.1.

view details

push time in 15 hours

PR merged fused-effects/fused-effects-profile

Distributive algebra
  • [x] Depends on https://github.com/fused-effects/fused-effects/pull/361
+74 -55

0 comment

9 changed files

robrix

pr closed time in 15 hours

push eventfused-effects/fused-effects-profile

Rob Rix

commit sha c429cb9474db63f671c4b4371b2a50511f9bd534

:fire: the local fused-effects override.

view details

push time in 15 hours

push eventfused-effects/fused-effects-profile

Rob Rix

commit sha 298c2d4c457e63899458d45000ca8267d2db33cc

Bump the dependency on fused-effects to 1.1.

view details

push time in 15 hours

push eventrobrix/isometry

Rob Rix

commit sha fbb08ff325996ebc1e65f0c229d2faf2a44ed647

Don’t export the constructor & eliminator.

view details

Rob Rix

commit sha 4409856be748955026b19bb42e2f7a8553e7c282

Test the validity of generated intervals.

view details

Rob Rix

commit sha 61f6f8f67eb482cf60cfe6cb668fa1e9f855623b

Ditch tasty.

view details

Rob Rix

commit sha 500d0c3b86d620f9b93f45d71b4393139aa21f99

Test the coverage of the interval generator.

view details

Rob Rix

commit sha 3aebe3dac4980dc3129d5131d7b6b19fd413d169

Test that we produce a certain # of spans.

view details

Rob Rix

commit sha 5424877c50dfb6dd1aa4517df44de92ff35839c2

Generate intervals by summing.

view details

Rob Rix

commit sha a29428dc047c416598e2510a6d79bf0e7bd12c0f

Generate point intervals.

view details

Rob Rix

commit sha 97a8e1d43006e8063d4eef61729612be1fd33fd0

mk always produces non-point intervals.

view details

Rob Rix

commit sha 84f4f17c25af17e88408bc95434168fc8c39adb8

Generate more empty interval sets.

view details

Rob Rix

commit sha 2e880c28bda6d9f5836e315e5b2be6cdfe7359ab

Generate more singletons.

view details

Rob Rix

commit sha 9830c1f82b3656b8165ec0107438432b4fd8826d

Test that we produce empty interval sets.

view details

Rob Rix

commit sha e16e09cd25a3c82044f588f1a48af52ccb6d6128

Test that we get point sets.

view details

Rob Rix

commit sha 442fc0a9a25568ba84864acf718f09f699c58e9e

Export more point intervals.

view details

Rob Rix

commit sha 28454efe6baa861a163ff3ff525e270733ed7488

Test that we produce span sets.

view details

Rob Rix

commit sha 5818305dec7d222e5aaefe3088e6d48049f394f9

Test that we produce singleton sets.

view details

Rob Rix

commit sha 4faf8208b66af3bba3db83ae21b2b4c584797c1b

Correct the test of singleton sets.

view details

Rob Rix

commit sha 670779d55c1ecddf916f40e8fee44f8fc61550d3

Test that we produce disjoint sets.

view details

Rob Rix

commit sha b463b52e64a2a3b60fc851c6d6bbeedc9e54e66f

No need to run the non-generating test >1 times.

view details

push time in a day

push eventrobrix/isometry

Rob Rix

commit sha 8b6cdec82f5ae798b96d03687076658424da4123

Test that fromList is the left inverse of toList.

view details

push time in 2 days

push eventrobrix/isometry

Rob Rix

commit sha bbae1fc866e680c78c93694dfa86bae71677c6f7

Customize the Show instance.

view details

Rob Rix

commit sha 96b7e704c7b13a7874ed1cca54eb72fedd3afe24

Customize the Eq & Ord instances.

view details

Rob Rix

commit sha c2280b68aeb7bf8545d1473aeed9650b118fe218

Rename the inserted interval.

view details

Rob Rix

commit sha c6c39727733de5aeffb1dcfc0dac6c749820af11

Use fromList in the tests.

view details

Rob Rix

commit sha 4b14e41cb5789a74f38e2465a05afb06c6c67bb7

Attempt to correct the predicates.

view details

Rob Rix

commit sha d878bec56a41041226a82e6124361dac5f128804

Test against the supremum for the before predicate.

view details

Rob Rix

commit sha bcb1acc4c68f1e0e413cf079855be710f7992192

Catch insertions starting before the end of the overlapping interval.

view details

Rob Rix

commit sha 59da99a0f3f6f1aa79cb4c9e8436d9055b6e16a8

Use finger trees, but this time walk after splitting.

view details

Rob Rix

commit sha d75dcf42193deba79aa55543d4c9465274e3c243

Simplify the implementation by removing wrappers.

view details

Rob Rix

commit sha 65be4770f00d5781b48ba99240e53385177162fc

Resume deriving the Eq & Ord instances.

view details

Rob Rix

commit sha 14af3aebc5ce8cdc95596861f7d10ea72359c898

:fire: LambdaCase.

view details

Rob Rix

commit sha 30289a8a28c25ff5a2c88e8104efd85c75b62876

Export toList.

view details

push time in 2 days

push eventgithub/semantic

Timothy Clem

commit sha 3cae0210205c1269ed404143edba8339fac93e2d

Take a single line of Source

view details

Timothy Clem

commit sha 153afb72fb2387489bf7f14a060c8e18396d5488

WIP: counting utf16 code units

view details

Timothy Clem

commit sha d3a825f7e1dd9fa421edb9b65473a0a22ae423aa

Must slice the bytestring, then count Text Chars

view details

Timothy Clem

commit sha 56f04f1c2d88c639e15c2acef5237f64595b2dea

Revert to master for semantic-source

view details

Timothy Clem

commit sha 13d995eb173433b525ecae1ee38a0bad29e44bed

Cleanup and more tests

view details

Timothy Clem

commit sha 255d78cd8f282aec2d9da1f0d7d56122136ccc1c

Add LSP style span to proto datatypes

view details

Timothy Clem

commit sha e591457a4c04a8baff1ba67db5811b482eca6d4d

Rework tagging to compute LSP offsets Also updates how we generate the line of source code for display

view details

Timothy Clem

commit sha 7df35cba89b685fd8776e0c9ebab45292931313e

Attempt to slice out a more relevant line for source with long lines

view details

Timothy Clem

commit sha 9cd0b30ada6c9b6c201f519dd5764c09892a419f

Remove old yield

view details

Timothy Clem

commit sha 04f9c13036fe049ddd9764cd76b47f245e09f709

Fix up fixtures

view details

Timothy Clem

commit sha 6c157742c1b96697ff820d98a7c2d2c410160b47

Better formatting, comment about the bit mask

view details

Timothy Clem

commit sha 7cc8a87af094a755684fc68a3c682cc3f5f62b37

Rename this field

view details

Timothy Clem

commit sha 8d3f7368e6759fe334c2963daa78158a9a0765d4

Use newtypes wrappers instead of type synonyms

view details

Timothy Clem

commit sha 2fc456568d89113f6255038b346f3b44b143b534

Merge remote-tracking branch 'origin/master' into unicode-math

view details

Timothy Clem

commit sha f08860a17a343d6345535408985bcc5714561aff

Fix up tests

view details

Timothy Clem

commit sha adb3b89d55e120f8827da830e7aec5a625ecdf1f

Re-write countUtf16CodeUnits to work on Source directly

view details

Timothy Clem

commit sha cce16edf93e62e289986efee6da2b1c92d5ce325

Include byteRange in the output

view details

Timothy Clem

commit sha 886db605962158b1ffee9b1693027de752aed430

Fix up tests

view details

Timothy Clem

commit sha f31757a4a68dd56eda979f1e68d0dc29c55e59d4

Fixup these fixtures too

view details

Patrick Thomson

commit sha 97a3ca4df46d601a56715823cb6d9a5765408128

Merge pull request #584 from github/fix-parse-build Fix semantic-parse build.

view details

push time in 2 days

delete branch fused-effects/fused-effects-exceptions

delete branch : distributive-algebra

delete time in 2 days

push eventfused-effects/fused-effects-exceptions

Rob Rix

commit sha bce1613a2de9cce953eec8a86c47ca400dc2d485

Depend on fused-effects@master.

view details

Rob Rix

commit sha 4d63df6eb35a3d6fe02a19a0d33e195c3b8862f5

Add the stylish-haskell config.

view details

Rob Rix

commit sha f478f9bffbe84cab7da33be8c5abfbe42ec35a3f

Update Control.Carrier.State.IORef.

view details

Rob Rix

commit sha e3a3dae17c89c427760eb53d996fc640311c898e

Update all the uses of liftWith for the new ordering.

view details

Rob Rix

commit sha aaaee45efc9453e797a191be937b81a8d8fc149f

Bump to 1.1.

view details

Rob Rix

commit sha 6dc30432542995368e33a17f38437a072e5dbe61

Merge pull request #15 from fused-effects/distributive-algebra Distributive algebra

view details

push time in 2 days

PR merged fused-effects/fused-effects-exceptions

Distributive algebra
  • [x] Depends on fused-effects 1.1 shipping to hackage.
+62 -20

1 comment

4 changed files

robrix

pr closed time in 2 days

push eventfused-effects/fused-effects-readline

Joe Kachmar

commit sha e4059aed05f9066ad335e525deab9ed49e0d5be2

Bumps fused-effects

view details

Joe Kachmar

commit sha d29b8338e214ad10db580d6e39af15ee55001df4

GADT encoding for Readline effect

view details

Joe Kachmar

commit sha 3d17633340f5e3bcf2ac12f84f78a4ac3b53df3e

Updates prompt and print to work with GADT encoding

view details

Joe Kachmar

commit sha 9999663116dec8bc988736091d1ca353dc0d50e2

GADTs for carriers

view details

Joe Kachmar

commit sha 09ff506baea0baa153b868605c9b0f8d14182eac

Handles Prompt effect with GADT encoding

view details

Joe Kachmar

commit sha 56d939a89d5aa281523727033401788708c73ecb

Handles Print effect with GADT encoding

view details

Joe Kachmar

commit sha 0cb3b3a1506ccaa035f17ab8b7d9dc4a0fe1fad6

Drops runReadlineC field constructor

view details

Rob Rix

commit sha 0bd86a07125c1786c033f886848e5bfe3b1a8a51

Silence some warnings from 8.10.

view details

Rob Rix

commit sha 282b179687efec0956d2938135efc0251ae24650

Bump fused-effects.

view details

Rob Rix

commit sha 1c0e5035dc607807259617c0c9ed930e35ae72a2

Update for haskeline 0.8 & ghc 8.10.

view details

Rob Rix

commit sha 02492342ddf3b05ec3641ea46a1a17f35e5a3996

:fire: LambdaCase.

view details

Rob Rix

commit sha 3a0ceebaa7e29a2bde10a64e2de8075e96a0637e

:fire: a redundant coercion.

view details

Rob Rix

commit sha ef7de14f5ba488d0ad4f705b956a5f580299cfd6

Merge branch 'master' into distributive-algebras-plus-plus

view details

Patrick Thomson

commit sha d515e7126b65db33ec3fc0606057c277e2d1e2d8

CPP away the problems with haskeline versions.

view details

Rob Rix

commit sha 566e859ffc39a8c24731172d5c02cbf629378ced

Merge pull request #7 from fused-effects/cpp-out-api-differences CPP away the problems with haskeline versions.

view details

Rob Rix

commit sha ba636191f86b4d7c414eb5270f640a88a36192b1

Copy the stylish-haskell config from fused-effects.

view details

Rob Rix

commit sha 4bdf685eca28ac798f30993a2ef1399c1e9cee75

Style.

view details

Rob Rix

commit sha cf4a539819fe3d8952e700fd86c00004cdd25be9

Update the multi-component repl &c.

view details

Rob Rix

commit sha 55e9d5e9231b11061e64b5d48456847f79180bf3

:fire: DeriveFunctor & DeriveGeneric.

view details

Rob Rix

commit sha 5fe0b588ad2b67bc815e904a4f496d5ea7323e33

Load the haskeline carrier.

view details

push time in 2 days

PR merged fused-effects/fused-effects-readline

Distributive Algebra

In the style of other such pull requests against fused-effects companion library, this updates fused-effects-readline to work with the changes recently introduced upstream.

+22 -19

0 comment

3 changed files

jkachmar

pr closed time in 2 days

delete branch fused-effects/fused-effects-readline

delete branch : distributive-algebras-plus-plus

delete time in 2 days

PR merged fused-effects/fused-effects-readline

Distributive algebras (+ a bit)

This PR builds on #4 to update for ghc 8.10, haskeline 0.8, & the latest fused-effects. Unfortunately I can’t push to that branch because reasons, so, separate PR.

+177 -85

1 comment

11 changed files

robrix

pr closed time in 2 days

push eventtree-sitter/haskell-tree-sitter

Rob Rix

commit sha b775e38a23ad800c78ebd033fc1b20be7f923fa5

Disable some warnings for 8.10+.

view details

Rob Rix

commit sha 618710d229d2b5a7809335f6930607d3eac4282d

:fire: redundant dependencies on aeson & text.

view details

push time in 2 days

PR opened tree-sitter/haskell-tree-sitter

Drop dependency on fused effects

This PR:

  • [x] Drops the unused dependency on fused-effects.
  • [x] Loosens a bunch of bounds on base and template-haskell to admit ghc 8.10.
  • [x] Subsumes #282.
+15 -16

0 comment

15 changed files

pr created time in 2 days

delete branch antitypical/fused-syntax

delete branch : distributive-algebra

delete time in 2 days

push eventantitypical/fused-syntax

Rob Rix

commit sha 4babc68756fdcb2b1e5884fdd4708250e193bc32

Bump fused-effects.

view details

Rob Rix

commit sha ff2ad1e7706f3915329df073c8692c6dbe28ea05

Define our own HFunctor.

view details

Rob Rix

commit sha c4296029c9350ba985b1faf7124b1576d926a19b

Reformat.

view details

Rob Rix

commit sha 228f60238e35f9a6f96dc8e81633c5a031a7448c

Give hmap a Functor constraint on f.

view details

Rob Rix

commit sha 58ebbf28ae3cfb5902dd4262e7764a29f3c795a5

Define an HFunctor instance for sums.

view details

Rob Rix

commit sha 5d3ae3c17a41076c47a6b68e2d0046c84a4a91ae

:fire: redundant quantified constraints.

view details

Rob Rix

commit sha 97a47791f88078d97ee518db13257396e9595150

We can’t derive these instances any more.

view details

Rob Rix

commit sha 481e471b0aba00ec43824c11acc9a1daa6c26849

Qualify the import of :+:.

view details

Rob Rix

commit sha 31651e8f7ae05ae65531a8a2d33acd37e08c20b1

Give a default definition of HFunctor.

view details

Rob Rix

commit sha 8b2e8e4241e56df6b2509021a84f1eff652a516d

Import Syntax.Functor.

view details

Rob Rix

commit sha 146634385a3b857cc39a3b2f94915291d3d72d6b

Relax the base bounds.

view details

Rob Rix

commit sha 7c60275867b6bc53fc3cad551ee4eb5c9ed8573a

Bump fused-effects.

view details

Rob Rix

commit sha 00b567837a792293d70833cbee7dea48d7a1b5f3

Disable a couple of warnings.

view details

Rob Rix

commit sha 1010eaea954ee362fb288f54794676baa39b6520

Define a module for a syntax algebra type.

view details

Rob Rix

commit sha 5c18b8d89d67db43237bac574177257f6a055b33

Define a syntax algebra class.

view details

Rob Rix

commit sha c678ba71a439e5aa9e610a51828460f7b0dab167

:fire: a couple of redundant quantified constraints.

view details

Rob Rix

commit sha 39cf2e74d403df9c96e152bec359adf6f3dc4168

Use Syntax.Algebra instead of fused-effects’ definition.

view details

Rob Rix

commit sha 07ad70c87a6a7481544f2c8cd807861064fff2e7

Define a Member constraint synonym.

view details

Rob Rix

commit sha 60af82c189eb1d9e4563960592aefc7a86509fb5

Define a Members type family.

view details

Rob Rix

commit sha 005c361a4561f093e85471134f8257e7d0a181c1

Define Has & send.

view details

push time in 2 days

PR merged antitypical/fused-syntax

🔥 dependency on fused-effects

With the new distributive algebras in fused-effects 1.1, the mismatch between Algebra and the shape of syntax in this library has only gotten larger. We now break the dependency and just copy in the bits we use.

+139 -27

0 comment

10 changed files

robrix

pr closed time in 2 days

push eventantitypical/fused-syntax

Rob Rix

commit sha 1c99dc14c3476f1ef9722827a9093794889c0303

:fire: the local fused-effects package.

view details

push time in 2 days

pull request commentfused-effects/fused-effects-exceptions

Distributive algebra

1.1 has shipped and this is now in good shape for a look-see, I think.

robrix

comment created time in 2 days

push eventfused-effects/fused-effects-readline

Rob Rix

commit sha 5e7a8f954008def5232b6dd2531f62a280f4d566

Whoops.

view details

push time in 2 days

push eventgithub/semantic

Rob Rix

commit sha ef3c8ee430ba13e2dd5c9c148a61dc411dc56e14

Bump to fused-effects 1.1.

view details

push time in 2 days

push eventfused-effects/fused-effects-exceptions

Rob Rix

commit sha aaaee45efc9453e797a191be937b81a8d8fc149f

Bump to 1.1.

view details

push time in 2 days

push eventfused-effects/fused-effects-readline

Rob Rix

commit sha df72fcd0053c27f3e0132c4b15886453697dfa76

Bump to 1.1.

view details

push time in 2 days

push eventrobrix/isometry

Rob Rix

commit sha feaf397a00bd3eb51c37cc1a286162332054ee09

Split in IntervalSet.

view details

Rob Rix

commit sha d5cbffe3baa0e2d62cb6dfaf1768e3e76a3b18dd

:fire: a redundant binding.

view details

Rob Rix

commit sha 6bc0099bcfedc505245a337a1adc8beb971993f2

Clarify the definitions of the predicates.

view details

Rob Rix

commit sha 671334003a6a639f95406478ea6a404ba6fc475e

Give better labels for the monotonicity tests.

view details

Rob Rix

commit sha dc0f18619bb93d351dd33c4094ad8e0a4ec986b1

Test that insertion is monotonic.

view details

Rob Rix

commit sha f92643f9fe6fe3c31c84c49c334d4ae3d4ff2a09

:fire: the monotonicity tests of the predicates.

view details

Rob Rix

commit sha 866f49ccaf12decd419e6b69f073e6bc90b2fb5c

Fix the monotonicity assertions for insertion.

view details

Rob Rix

commit sha 7a4d45e269da572a8a689c1cca32e620ba24ef61

Simplify the splitting.

view details

Rob Rix

commit sha 141f35ffca5f986b7c6cce9b904d5ddf7bc8da89

Go back to a manual definition of IntervalSet.

view details

Rob Rix

commit sha 4e338b4d5d2f4eaa0a894d88dc42ad6518259b56

Define internal cons & snoc operators for IntervalSet.

view details

Rob Rix

commit sha 39fdd23b7a72fee27e74199d7835bf2569dc7108

Insert into the left/right branches.

view details

Rob Rix

commit sha 01c24e9e039c26db157d2354d13d4b678d97eb4c

Insert subintervals of the head.

view details

Rob Rix

commit sha b71d1f993445ebccf65c9adce258af9c4f8c4f51

Define concatenation of interval sets.

view details

Rob Rix

commit sha cb0da21a02969771feb4c928140867ab1d1e3046

Insert overlapping.

view details

Rob Rix

commit sha 52115e92e14f32e441c3128d6ff6e304c7c2fc99

Correct the overlapping case.

view details

Rob Rix

commit sha 98f726269af8d3775915fbdce3979ce97aa0a024

Split interval sets.

view details

Rob Rix

commit sha 048d1b890176ca07f636d28b061e3d72969ba982

Define insertion by splitting.

view details

Rob Rix

commit sha 8a6b4c8dfe004c5db8592b3a9b5941824408e394

Define a fromList constructor for interval sets.

view details

push time in 2 days

pull request commentfused-effects/fused-effects

Version 1.1

https://hackage.haskell.org/package/fused-effects-1.1.0.0 🎉

robrix

comment created time in 3 days

created tagfused-effects/fused-effects

tag1.1.0.0

A fast, flexible, fused effect system for Haskell

created time in 3 days

push eventfused-effects/fused-effects

Rob Rix

commit sha 2d7a559efd98ec2640a81cb935f1655924e2b86e

Add a heading to the changelog.

view details

Rob Rix

commit sha 8acb07b55c19a7392e33ff7e30c2985a81443c22

Bump the version field.

view details

Rob Rix

commit sha 7d983445eecf5f998d160246bff80492791a8f25

Bump the copyrights.

view details

Rob Rix

commit sha 755f373682f35ffe7b86ec41e8d44b7dc9890855

Merge pull request #393 from fused-effects/version-1.1 Version 1.1

view details

push time in 3 days

delete branch fused-effects/fused-effects

delete branch : version-1.1

delete time in 3 days

PR merged fused-effects/fused-effects

Version 1.1

This is the release PR for 1.1.

+5 -3

1 comment

3 changed files

robrix

pr closed time in 3 days

MemberEvent

issue commentfused-effects/fused-effects

Why is alg taking 3 arguments in the defining_effects.md?

@dbaynard sorry for the delay. I do, now: today 😊

poscat0x04

comment created time in 3 days

pull request commentfused-effects/fused-effects

Version 1.1

robrix

comment created time in 3 days

issue commentfused-effects/fused-effects

Several carriers are redundant with transformers

I’ve decided to drop this from 1.1, tho I still think it might be a reasonable option for a future major release (1.2? 1.5? 2.0?).

robrix

comment created time in 3 days

PR opened fused-effects/fused-effects

Version 1.1

This is the release PR for 1.1.

+5 -3

0 comment

3 changed files

pr created time in 3 days

create barnchfused-effects/fused-effects

branch : version-1.1

created branch time in 3 days

pull request commentfused-effects/fused-effects

Add Accum effect and carriers

@turion: Heads up that I’m about to release v1.1, which means that the @since annotations will all be 1.1.1.

turion

comment created time in 3 days

push eventgithub/semantic

Rob Rix

commit sha 4c80b65157dfd159d81cb0df7acc2d24a6d4ba18

Treat semantic-source as a local project.

view details

Rob Rix

commit sha a1f4fd11f016d6d02cf4ed4c32a9f8b48acdd98d

Build semantic-source in CI in the same manner as everything else.

view details

push time in 4 days

push eventgithub/semantic

Rob Rix

commit sha ee15e90a18c0caa4b174a160a285a9945bf31720

Correct an import.

view details

push time in 4 days

push eventgithub/semantic

Rob Rix

commit sha 35af66fd2e98ea4d2cc82c8d39b9bb5ba4847d93

Bump the fused-syntax SHA in the cabal.project files.

view details

push time in 4 days

push eventgithub/semantic

Rob Rix

commit sha 1cfafc3a64b23b4c5202510e2ad2aa46d59cee45

Add the overrides of fused-effects-to the cabal.project files.

view details

push time in 4 days

push eventgithub/semantic

Patrick Thomson

commit sha 59c76742e336b7cce343f098129a4be40cda51d4

These were just whitespace changes, but still.

view details

Patrick Thomson

commit sha 20b798264973df541b6ba636091897c645f2fb74

Eliminate whitespace changes here too.

view details

Patrick Thomson

commit sha 8437814fcf59128bed966d0852c4d0ecaa1d5bf1

WIP commit to make parse_examples work

view details

Patrick Thomson

commit sha 86397cfe000b2a8ad8094970c68314d2e53f7aa3

Parse-examples test works now.

view details

Patrick Thomson

commit sha 68cb87d07cc1d8df6595b2fe8a737c6550c93d12

Get these globs right.

view details

Patrick Thomson

commit sha 1dc1a3a027e73551b8b0e0aa83db283d7a248be4

Give the Bazel shim a better name, because we'll use this in Cabal

view details

Patrick Thomson

commit sha b314ade302918f815d5f65a839bc68bb8eb211a9

kind of get semantic-ruby working, but having trouble with stuff

view details

Patrick Thomson

commit sha b8f299587742975cb100c28545080ca8a738fbc3

Revert "kind of get semantic-ruby working, but having trouble with stuff" This reverts commit b314ade302918f815d5f65a839bc68bb8eb211a9.

view details

Patrick Thomson

commit sha 1232bc593e89783e1630acd6dcebea620d748dc4

Ensure that the HTTP archive we download contains the corpus.

view details

Patrick Thomson

commit sha 79ae94b8526b28491daa7b85e33a053e2bf52377

Go tests work. Now to generalize this

view details

Patrick Thomson

commit sha 4b75bf25c50426f12d9bbf8b474e2d6b8eeaf02a

Start abstracting away the details of language tests.

view details

Patrick Thomson

commit sha 20ac0523e363d8c24c59cc6e33a6c92039199987

Enable all the other tests.

view details

Patrick Thomson

commit sha b034378ac2a0f3f373a2b673ac4b86245d0c303e

rename the flags and condense around compilation_mode

view details

Patrick Thomson

commit sha 65704c025661c4bc499e1888d45018e1ca47a67d

docs

view details

Patrick Thomson

commit sha 5be476d1189481fcc30557460371581f51fa3ae7

more test adjustments

view details

Patrick Thomson

commit sha 198079ff6173a5fa7f8e5297593352c0b4cc1a16

stray changes

view details

Patrick Thomson

commit sha b405ec04e5e8ec5ad68df0bca02758261371ca8e

Remove repeated comments.

view details

Patrick Thomson

commit sha 41639eb50901fa57d60edec2a5bedc9dd82928a5

Abstract away the git invocations.

view details

Patrick Thomson

commit sha 536f1880021ed0e684582a617da33efe0d14a69a

Rename the variables.

view details

Patrick Thomson

commit sha 89681f954614e4b577bd67d3ef1adcc1876405eb

clean up this invocation, and a doc

view details

push time in 4 days

push eventrobrix/isometry

Rob Rix

commit sha cc480af6d8b59edc13caa99c98ae07b5f0656aa9

Extract the larger/smaller predicates.

view details

Rob Rix

commit sha 6798d62b99972e1294a3206b07155136e860dcf4

Export the larger/smaller predicates.

view details

Rob Rix

commit sha 0797298d84b780f4278a55a6251e118d89b5b3d7

Extract the point generator.

view details

Rob Rix

commit sha b77df88de063ac0e1f3eb0f2d36648b993a97b7c

Extract the interval generator.

view details

Rob Rix

commit sha 310d1097487bb1be639ed6bedfc7c4d2ca060f64

Test that the larger predicate is monotone.

view details

Rob Rix

commit sha f8d985cb2ec6a4817a94576f79f583073965a917

Load stuff in the test dir.

view details

Rob Rix

commit sha ae23ebcd10e364bdf6fb607f96e366c2a42708a0

Customize the Show instance for Interval.

view details

Rob Rix

commit sha cda983d3c09ff1e4782adabc26bf26c5ecc38794

Define a Show1 instance for I.

view details

Rob Rix

commit sha afa7d28f19e6d508592abeb1a3686b232bf12903

Customize the Show instance for I.

view details

Rob Rix

commit sha b14f9a8ff7d5e710b9a85f8ccc4199c99f8162af

Test monotonicity on both inputs.

view details

Rob Rix

commit sha 7a508a5b8576027ea62dba065cc3495163cfd98a

Test that the smaller predicate is monotone.

view details

Rob Rix

commit sha 0006ab3f47836b70d7e0d11be0786cd6a1676417

Rename the monotonicity tests.

view details

Rob Rix

commit sha f100edac07f178091180a81ed509f334f9dcec7e

Label the monotonicity cases.

view details

Rob Rix

commit sha 0619ee722ddc2403970dc16662271c9b7a298d8a

Define a helper to split an interval set.

view details

push time in 4 days

push eventrobrix/isometry

Rob Rix

commit sha 5d3fc674fa1817afe86a72cda4330989273e863c

:fire: parens.

view details

Rob Rix

commit sha a115f2ef3ac020169fa2e0ccf655b48f57b865a5

Define a module for interval sets.

view details

Rob Rix

commit sha 5352ffb19ad101312e02ccfd5b6cf152e2fcfd06

Re-export Interval.

view details

Rob Rix

commit sha 36a1ce1c4bafe79fe806ba21413ab100e922768a

Define an IntervalSet datatype.

view details

Rob Rix

commit sha ce18f70c1412412de478f1e94e03ac4fcebd0360

Replace the Leaf constructor with a Branch constructor.

view details

Rob Rix

commit sha 39c2061c2eedd4db4fefa2c83056afc29feb0f10

Define the empty interval set.

view details

Rob Rix

commit sha 8d488a079fccd1c0598afe3e82721347160a1b28

Define the singleton interval set.

view details

Rob Rix

commit sha 12bc1a7411b2fdd73780156bc3889e99725328f7

Define insertion.

view details

Rob Rix

commit sha 4a47cc4a21be89991813f419dbc24358256b4316

Compute the bounds of an interval set.

view details

Rob Rix

commit sha 109812d8c03b62fc5522655326527dcb3aec642e

Rename mkBranch to merge.

view details

Rob Rix

commit sha e370d1e89fa907daae0e0eddd143ae5ddb37c2fb

Define a module for naturals.

view details

Rob Rix

commit sha f0e9004df679495652161c5e87819e7a473ec59d

Define a datatype of natural numbers.

view details

Rob Rix

commit sha 5ac0d3cd22a1514adc8149510c080d650bdcbf2e

Replace Shape with N.

view details

Rob Rix

commit sha d122839131a680aa608180202bd27fb6ba115736

Derive some instances for N.

view details

Rob Rix

commit sha ce14ff4c0df4038f65923d977de8fa19be0bbf08

Cache the bounds on branches.

view details

Rob Rix

commit sha 3e113a3aaabdee11f8d30687a8e255908564534d

Factor out the computation of the branch bounds.

view details

Rob Rix

commit sha 1aa0cfff2a1bf99a4dd4995ac6a4ef6611af2969

Test for inclusion.

view details

Rob Rix

commit sha e006a3f7e2af502e9d1ce1da888fc3180cdc5b3d

Test for inclusion in the other direction.

view details

Rob Rix

commit sha 150039219b14915cde65ee3c5c95f95c45a35b37

Avoid reallocation where possible.

view details

Rob Rix

commit sha a2d68d43575efe164c8d5b1e79473ac219eabc6d

Define a Semigroup instance for Interval.

view details

push time in 5 days

pull request commentgithub/semantic

Distributive algebra

I don’t think I understand the build failures here.

robrix

comment created time in 7 days

issue commentfused-effects/fused-effects

Using Async through Lift effect?

@ocharles FWIW I agree. The space around concurrency is pretty interesting; for example, if I have a Thread effect with a fork operation, and I run Writer operations on both the forking and forked thread, I presumably want to serialize appends—but there isn’t a single suitable one-size-fits-all serialization strategy. For example, do I want to serialize background tells as they occur? Or all of them at the point at which I run fork?

Async’s semantics actually complicate things, since you could also make an argument for synchronizing into waiting threads. (And what if there are multiple such…?)

All of which suggests to me that concurrency is a mess (not exactly a novel observation, I know), and that perhaps I’d prefer exploring the use of STM instead.

rl-king

comment created time in 7 days

issue commentfused-effects/fused-effects

Add monadic regions.

@riz0id neat! However, I don’t think this really captures the hierarchically-scoped mutation of monadic regions, and I’m not sure I follow how cleanup is performed—it looks like the code there only ever extends the list of handles, and e.g. never closes them.

patrickt

comment created time in 7 days

push eventfused-effects/fused-effects

Rob Rix

commit sha 9249eb01cb667dfaf194dcbf27bf1cf8ad70e834

Correct the email address in the code of conduct. Fixes #383.

view details

push time in 7 days

issue closedfused-effects/fused-effects

The code of conduct is missing an email address

Towards the end it says [INSERT EMAIL ADDRESS]

closed time in 7 days

expipiplus1

issue commentfused-effects/fused-effects

The code of conduct is missing an email address

Good catch, thank you 🙇

expipiplus1

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++{- | A carrier for 'Acccum' effects.+This carrier performs its append operations strictly and thus avoids the space leaks inherent in lazy writer monads.+These appends are left-associative; as such, @[]@ is a poor choice of monoid for computations that entail many calls to 'tell'.+The [Seq](http://hackage.haskell.org/package/containersdocs/Data-Sequence.html) or [DList](http://hackage.haskell.org/package/dlist) monoids may be a superior choice.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++module Control.Carrier.Accum.Strict+( -- * Accum carrier+  runAccum+, execAccum+, AccumC(..)+  -- * Accum effect+, module Control.Effect.Accum+) where++import Control.Algebra+import Control.Applicative (Alternative)+import Control.Carrier.State.Strict+import Control.Effect.Accum+import Control.Monad (MonadPlus)+import Control.Monad.Fail as Fail+import Control.Monad.Fix+import Control.Monad.IO.Class+import Control.Monad.Trans.Class++-- | Run an 'Accum' effect with a 'Monoid'al log, applying a continuation to the final log and result.+--+-- @+-- 'runAccum' k ('pure' a) = k 'mempty' a+-- @+-- @+-- 'runAccum' k ('add' w) = k w ()+-- @+-- @+-- 'runAccum' k ('add' w >> 'look') = k w w+-- @+--+-- @since 1.0.3.0 -- FIXME Is this right?+runAccum :: Monoid w => AccumC w m a -> m (w, a)+runAccum = runState mempty . runAccumC+{-# INLINE runAccum #-}++-- | Run a 'Accum' effect with a 'Monoid'al log, producing the final log and discarding the result value.+--+-- @+-- 'execAccum' = 'runAccum' ('const' '.' 'pure')+-- @+--+-- @since 1.0.3.0 -- FIXME Is this right?+execAccum :: (Monoid w, Applicative m) => AccumC w m a -> m w+execAccum = fmap fst . runAccum

Ditto here; evalAccum would be a welcome addition.

turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++{- | A high-performance, strict, church-encoded carrier for 'Accum'.++This carrier issues left-associated 'mappend's, meaning that 'Monoid's such as @[]@ with poor performance for left-associated 'mappend's are ill-suited for use with this carrier. Alternatives such as 'Data.Monoid.Endo', @Seq@, or @DList@ may be preferred.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++module Control.Carrier.Accum.Church+( -- * Accum carrier+  runAccum+, execAccum+, AccumC(..)

We typically avoid exporting selectors for our carriers.

, AccumC(AccumC)
turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++{- | A high-performance, strict, church-encoded carrier for 'Accum'.++This carrier issues left-associated 'mappend's, meaning that 'Monoid's such as @[]@ with poor performance for left-associated 'mappend's are ill-suited for use with this carrier. Alternatives such as 'Data.Monoid.Endo', @Seq@, or @DList@ may be preferred.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++module Control.Carrier.Accum.Church+( -- * Accum carrier+  runAccum+, execAccum+, AccumC(..)+  -- * Accum effect+, module Control.Effect.Accum+) where++import Control.Algebra+import Control.Applicative (Alternative)+import Control.Carrier.State.Church+import Control.Effect.Accum+import Control.Monad (MonadPlus)+import Control.Monad.Fail as Fail+import Control.Monad.Fix+import Control.Monad.IO.Class+import Control.Monad.Trans.Class++-- | Run an 'Accum' effect with a 'Monoid'al log, applying a continuation to the final log and result.+--+-- @+-- 'runAccum' k ('pure' a) = k 'mempty' a+-- @+-- @+-- 'runAccum' k ('add' w) = k w ()+-- @+-- @+-- 'runAccum' k ('add' w >> 'look') = k w w+-- @+--+-- @since 1.0.3.0 -- FIXME Is this right?+runAccum :: Monoid w => (w -> a -> m b) -> AccumC w m a -> m b+runAccum k = runState k mempty . runAccumC+{-# INLINE runAccum #-}++-- | Run a 'Accum' effect with a 'Monoid'al log, producing the final log and discarding the result value.+--+-- @+-- 'execAccum' = 'runAccum' ('const' '.' 'pure')+-- @+--+-- @since 1.0.3.0 -- FIXME Is this right?+execAccum :: (Monoid w, Applicative m) => AccumC w m a -> m w+execAccum = runAccum (const . pure)+{-# INLINE execAccum #-}

This is lovely! Might I request an evalAccum as well (by analogy with evalState &c.)?

turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++{- | A carrier for 'Acccum' effects.+This carrier performs its append operations strictly and thus avoids the space leaks inherent in lazy writer monads.+These appends are left-associative; as such, @[]@ is a poor choice of monoid for computations that entail many calls to 'tell'.+The [Seq](http://hackage.haskell.org/package/containersdocs/Data-Sequence.html) or [DList](http://hackage.haskell.org/package/dlist) monoids may be a superior choice.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++module Control.Carrier.Accum.Strict+( -- * Accum carrier+  runAccum+, execAccum+, AccumC(..)
, AccumC(AccumC)
turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{- | An effect allowing writes to an accumulated quantity alongside a computed value,+and reads from the accumulator.+An 'Accum' @w@ effect keeps track of a monoidal datum of type @w@ and strictly appends to that monoidal value with the 'add' effect.+Previous writes to that value can be read with the 'look' effect.++Predefined carriers:++* "Control.Carrier.Accum.Church"+* "Control.Carrier.Accum.Strict". (A lazy carrier is not provided due to the inherent space leaks associated with lazy accumulation monads, similar to lazy writer monads.)+* "Control.Monad.Trans.Accum"+* If 'Accum' @w@ is the last effect in a stack, it can be interpreted to a function @w -> (w, a)@ given some result type @a@ and the presence of a 'Monoid' instance for @w@.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++-- FIXME Why not haddockish single quotes?++module Control.Effect.Accum+( -- * Accumulation effect+  Accum(..)+, add+, look+, looks+  -- * Re-exports+, Algebra+, Has+, run+) where++import Control.Algebra+-- FIXME Why have an internal module if we reexport everything?

This is necessary to avoid cyclic imports given the instance defined in Control.Algebra. Notably, we only do it for effects when we define carriers for types defined elsewhere—e.g. transformers or base.

We used hs-boot files to break the cycles in the past, but found them to be difficult to maintain, & cabal/ghc’s support for them was buggy.

turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{- | An effect allowing writes to an accumulated quantity alongside a computed value,+and reads from the accumulator.+An 'Accum' @w@ effect keeps track of a monoidal datum of type @w@ and strictly appends to that monoidal value with the 'add' effect.+Previous writes to that value can be read with the 'look' effect.++Predefined carriers:++* "Control.Carrier.Accum.Church"+* "Control.Carrier.Accum.Strict". (A lazy carrier is not provided due to the inherent space leaks associated with lazy accumulation monads, similar to lazy writer monads.)+* "Control.Monad.Trans.Accum"+* If 'Accum' @w@ is the last effect in a stack, it can be interpreted to a function @w -> (w, a)@ given some result type @a@ and the presence of a 'Monoid' instance for @w@.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++-- FIXME Why not haddockish single quotes?++module Control.Effect.Accum+( -- * Accumulation effect+  Accum(..)+, add+, look+, looks+  -- * Re-exports+, Algebra+, Has+, run+) where++import Control.Algebra+-- FIXME Why have an internal module if we reexport everything?+import Control.Effect.Accum.Internal (Accum(..))+++-- | Write a value to the log.+--+-- @+-- runAccum ('add' w '>>' m) = 'Data.Bifunctor.first' ('mappend' w) '<$>' runAccum m+-- @+--+-- @since 1.0.3.0 -- FIXME Is this right?+add :: Has (Accum w) sig m => w -> m ()+add w = send (Add w)+{-# INLINE add #-}++-- | Look up the previous accumulation+--+-- @+-- runAccum ('look' m) = 'fmap' ('fst' 'Control.Arrow.&&&' 'id') (runAccum m)+-- @ -- FIXME This law is wrong of course+--+-- @since 1.0.3.0 -- FIXME Is this right?+look :: Has (Accum w) sig m => m w+look = send Look+{-# INLINE look #-}++-- | Look up the previous accumulation and apply a function to it.+--+-- @ -- FIXME A law & @since

looks f = fmap f look is probably fine as far as a law goes; it’s ok for the law and implementation to coincide for operations whose behaviour is given this simply. (cf asks & gets.)

turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{- | An effect allowing writes to an accumulated quantity alongside a computed value,+and reads from the accumulator.+An 'Accum' @w@ effect keeps track of a monoidal datum of type @w@ and strictly appends to that monoidal value with the 'add' effect.+Previous writes to that value can be read with the 'look' effect.++Predefined carriers:++* "Control.Carrier.Accum.Church"+* "Control.Carrier.Accum.Strict". (A lazy carrier is not provided due to the inherent space leaks associated with lazy accumulation monads, similar to lazy writer monads.)+* "Control.Monad.Trans.Accum"+* If 'Accum' @w@ is the last effect in a stack, it can be interpreted to a function @w -> (w, a)@ given some result type @a@ and the presence of a 'Monoid' instance for @w@.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++-- FIXME Why not haddockish single quotes?

?

turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{- | An effect allowing writes to an accumulated quantity alongside a computed value,+and reads from the accumulator.+An 'Accum' @w@ effect keeps track of a monoidal datum of type @w@ and strictly appends to that monoidal value with the 'add' effect.+Previous writes to that value can be read with the 'look' effect.++Predefined carriers:++* "Control.Carrier.Accum.Church"+* "Control.Carrier.Accum.Strict". (A lazy carrier is not provided due to the inherent space leaks associated with lazy accumulation monads, similar to lazy writer monads.)+* "Control.Monad.Trans.Accum"+* If 'Accum' @w@ is the last effect in a stack, it can be interpreted to a function @w -> (w, a)@ given some result type @a@ and the presence of a 'Monoid' instance for @w@.++-- | @since 1.0.3.0 -- FIXME Is this right?+-}++-- FIXME Why not haddockish single quotes?++module Control.Effect.Accum+( -- * Accumulation effect+  Accum(..)+, add+, look+, looks+  -- * Re-exports+, Algebra+, Has+, run+) where++import Control.Algebra+-- FIXME Why have an internal module if we reexport everything?+import Control.Effect.Accum.Internal (Accum(..))+++-- | Write a value to the log.+--+-- @+-- runAccum ('add' w '>>' m) = 'Data.Bifunctor.first' ('mappend' w) '<$>' runAccum m+-- @+--+-- @since 1.0.3.0 -- FIXME Is this right?+add :: Has (Accum w) sig m => w -> m ()+add w = send (Add w)+{-# INLINE add #-}++-- | Look up the previous accumulation+--+-- @+-- runAccum ('look' m) = 'fmap' ('fst' 'Control.Arrow.&&&' 'id') (runAccum m)+-- @ -- FIXME This law is wrong of course

This is an interesting case, as I think getting the laws right will also help us design the tests. (Note that the existing tests are mostly just implementing laws, parameterized by some handler.)

I think we could phrase it mostly simply as something like this:

snd <$> runAccum (m >> look) = fst <$> runAccum m

This:

  • is trivially true for m = pure x (for any x), since that doesn’t accumulate anything;
  • covers runAccum look by the above & the laws for >>;
  • covers any actions containing add x (for any x) by the existing add law.
turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{- | An effect allowing writes to an accumulated quantity alongside a computed value,+and reads from the accumulator.+An 'Accum' @w@ effect keeps track of a monoidal datum of type @w@ and strictly appends to that monoidal value with the 'add' effect.+Previous writes to that value can be read with the 'look' effect.++Predefined carriers:++* "Control.Carrier.Accum.Church"+* "Control.Carrier.Accum.Strict". (A lazy carrier is not provided due to the inherent space leaks associated with lazy accumulation monads, similar to lazy writer monads.)+* "Control.Monad.Trans.Accum"+* If 'Accum' @w@ is the last effect in a stack, it can be interpreted to a function @w -> (w, a)@ given some result type @a@ and the presence of a 'Monoid' instance for @w@.

I don’t believe this is correct. The type at the head of that is ((->) w), which is already a carrier for Reader w.

turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+- Adds `Accum` (https://github.com/fused-effects/fused-effects/pull/391)

Thank you so much for updating the changelog! 💖

Could you please change the link text to be the # of the PR?

- Adds `Accum` ([#391](https://github.com/fused-effects/fused-effects/pull/391))
turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+- Adds `Accum` (https://github.com/fused-effects/fused-effects/pull/391)

Also, I’d like to specifically attribute this to you if you don’t mind; feel free to add something like (🎩 @turion) if that’s ok with you.

turion

comment created time in 7 days

Pull request review commentfused-effects/fused-effects

Add Accum effect and carriers

+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++{- | A high-performance, strict, church-encoded carrier for 'Accum'.++This carrier issues left-associated 'mappend's, meaning that 'Monoid's such as @[]@ with poor performance for left-associated 'mappend's are ill-suited for use with this carrier. Alternatives such as 'Data.Monoid.Endo', @Seq@, or @DList@ may be preferred.++-- | @since 1.0.3.0 -- FIXME Is this right?

It will be 1.1.

turion

comment created time in 7 days

pull request commentfused-effects/fused-effects

Add Accum effect and carriers

Sorry I’m late on this one, but thanks for the PR!

turion

comment created time in 7 days

push eventgithub/semantic

Rob Rix

commit sha 0e25ce584a5ca5ea27073d91c014b14dc9a434ce

Pin fused-effects-exceptions for distributive algebras.

view details

Rob Rix

commit sha bdb6c43e177705c368a174fc4f6753d2959f9c6b

:fire: the dependency on fused-effects-resumable.

view details

Rob Rix

commit sha d033609c56678f52caf3b138e6c36450228819ef

:fire: Control.Effect.REPL.

view details

Rob Rix

commit sha e4bdfd215bafc3125c5f0f17e0a1a197e185110a

:fire: Control.Effect.Interpose.

view details

Rob Rix

commit sha 5dedc3d9b910f3ccf122f3065b37f0e26cd074e1

:fire: TypeApplications.

view details

Rob Rix

commit sha 5a72b2573811b8a9d59a91b44ab14536fa0564d4

Correct the ordering of the args to the liftWith handler.

view details

Rob Rix

commit sha da275da3303fed83e030ec32a324b7c5b9a9bb24

Update the parse effect.

view details

Rob Rix

commit sha b2cc595d86fc6913d3dadea0ff9f416a297f7514

Update the simple parser carrier.

view details

Rob Rix

commit sha 117003ed271dad939c468fa6ea46869d2f9eaa14

Update the Distribute effect & carrier.

view details

Rob Rix

commit sha d74e67f0042bf675a1ac527a29d92b0eb1d6411b

Update Semantic.Task.Files.

view details

Rob Rix

commit sha 5911ca83fa1372fdd2489a3449e1b6ac62a5b767

:fire: Semantic.Resolution.

view details

Rob Rix

commit sha 590635f26bc304cddce04edae62ea6b360828051

Fix an import.

view details

Rob Rix

commit sha 68efd5de1c3a5b2e3a246e736c55cd27434cdb13

Update Semantic.Telemetry.

view details

Rob Rix

commit sha fbb9d09ed869c7e3c3b6f9950f6cd4d3cdc8beab

Update Semantic.Task.

view details

Rob Rix

commit sha 0fdece0d56c99aee4128819449dec7d61e9f26a2

Update Control.Carrier.Parse.Measured.

view details

Rob Rix

commit sha e06dea7d3a8736a85e928f32e9177a7695e853fd

:fire: redundant parens.

view details

push time in 7 days

PR opened fused-effects/fused-effects-exceptions

Distributive algebra
  • [ ] Depends on fused-effects 1.1 shipping to hackage.
+66 -19

0 comment

4 changed files

pr created time in 7 days

create barnchfused-effects/fused-effects-exceptions

branch : distributive-algebra

created branch time in 7 days

issue closedfused-effects/fused-effects-exceptions

Updating exceptions to reflect recent changes to fused-effects

Since fused-effects is no longer using instances of Effect or HFunctor may I revise exceptions here to reflect those changes made in fused-effects pulls #361 and #359?

closed time in 7 days

riz0id

issue commentfused-effects/fused-effects-exceptions

Updating exceptions to reflect recent changes to fused-effects

@riz0id sorry for the late response! That would have been lovely, and I’m very appreciative of the kind offer, but as it turns out that’s the next thing blocking the thing I’m working on right now, so I’ve got it covered. I’ll close this issue out now as a result.

(As an aside: going forward, I think PRs are generally welcome, but issues like this are a great idea in particular when the changes you have in mind are particularly large.)

Thanks again! ❤️

riz0id

comment created time in 7 days

issue commentfused-effects/fused-effects-resumable

unwind-protect

I don’t think I know enough about unwind-protect to be able to comment authoritatively; it looks something like finally, but I’m not sure that that captures it entirely. Could you describe it in a little more detail please?

Assuming that we can provide good semantics for it I don’t see any reason not to add it; its semantics, and particularly their laws, would guide whether we’d want to define it as part of the extant Resumable effect or make it a new effect (tho likely still part of this package, and provided by either or both of the carriers).

remexre

comment created time in 7 days

push eventgithub/semantic

Rob Rix

commit sha 63519ca32f7a489e077c380e1c74e9f21eb57bda

Update semantic-core for fused-effects-1.1.

view details

Rob Rix

commit sha 802b66d2aee1223490b74cb80db516d297f5b678

We no longer need to define our own inlining of asks.

view details

Rob Rix

commit sha 9021ca5a49ac4391dc02be38460c80dda2feb4c3

:fire: a redundant import.

view details

Rob Rix

commit sha 197343ebaea87c098e7bf4824f9254fd0785fc09

Use fused-syntax for the failure syntax.

view details

push time in 7 days

pull request commentgithub/semantic

Distributive algebra

@patrickt: It looks like semantic-rust isn’t set up with a library target. Maybe we could 🍐 on adding one next week?

robrix

comment created time in 7 days

push eventgithub/semantic

Rob Rix

commit sha 9b9c600a091c55557ccab9d902b2679ac4e73499

Bump fused-effects-readline for proper support of haskeline 0.7 & 0.8.

view details

Rob Rix

commit sha 04ca515e4b5388f95a5f86595f5bd8584956b60a

Update semantic-analysis for fused-effects 1.1.

view details

push time in 7 days

push eventfused-effects/fused-effects-readline

Rob Rix

commit sha 3abfcb3a4d7e024b3da416289a6baf4d6ef2e4dc

Fix a redundant dependency warning.

view details

push time in 7 days

push eventfused-effects/fused-effects-readline

Rob Rix

commit sha f09af7c9fe0b45ba5c29bb8e427114b17e88b222

Copy the CI config over from fused-effects.

view details

Rob Rix

commit sha 8c80ab345ea75b35ccf83b01f50b6d8ad14e75e4

Loosen a couple of bounds.

view details

Rob Rix

commit sha 6ba54a16cd15d8ddb545609f434148526ca8a349

Only 8.6+.

view details

Rob Rix

commit sha df1966dfc1f22fe37928a3e8acd3da074347a262

8.8.3.

view details

Rob Rix

commit sha 9d8d227120656d7d1e58a66f0951442aac9c7dfb

Add a tested-with field.

view details

Rob Rix

commit sha 7037792d1cb4d4ef3db692b05ec4c81d872b3dfa

Include the README file.

view details

push time in 7 days

push eventfused-effects/fused-effects-readline

Rob Rix

commit sha ba636191f86b4d7c414eb5270f640a88a36192b1

Copy the stylish-haskell config from fused-effects.

view details

Rob Rix

commit sha 4bdf685eca28ac798f30993a2ef1399c1e9cee75

Style.

view details

Rob Rix

commit sha cf4a539819fe3d8952e700fd86c00004cdd25be9

Update the multi-component repl &c.

view details

Rob Rix

commit sha 55e9d5e9231b11061e64b5d48456847f79180bf3

:fire: DeriveFunctor & DeriveGeneric.

view details

Rob Rix

commit sha 5fe0b588ad2b67bc815e904a4f496d5ea7323e33

Load the haskeline carrier.

view details

Rob Rix

commit sha 174866a391dd4fdb9d4d1b71e23cf7af743d4d5e

:fire: MonadIO & MonadMask constraints for older ghcs.

view details

Rob Rix

commit sha fe27c218f7253c80700e8717c84268d71d5c2d43

Conditionalize the import of MonadMask.

view details

Rob Rix

commit sha 1ae8971f89d811675ccc1fd986a0d1053d3e85c9

Comma-prefix everything.

view details

Rob Rix

commit sha a4274b388efed22ef670f08a446d2b3a6d11223f

:fire: redundant parens.

view details

Rob Rix

commit sha 0f15af501334448b2d8b6eeaacfa37326b97d51c

Conditionalize the dependency on exceptions.

view details

push time in 7 days

delete branch fused-effects/fused-effects-readline

delete branch : cpp-out-api-differences

delete time in 7 days

push eventfused-effects/fused-effects-readline

Patrick Thomson

commit sha d515e7126b65db33ec3fc0606057c277e2d1e2d8

CPP away the problems with haskeline versions.

view details

Rob Rix

commit sha 566e859ffc39a8c24731172d5c02cbf629378ced

Merge pull request #7 from fused-effects/cpp-out-api-differences CPP away the problems with haskeline versions.

view details

push time in 7 days

Pull request review commentfused-effects/fused-effects-readline

CPP away the problems with haskeline versions.

 import System.Environment import System.FilePath import System.IO (stdout) +#if MIN_VERSION_haskeline(0, 8, 0) runReadline :: (MonadIO m, MonadMask m) => Prefs -> Settings m -> ReadlineC m a -> m a+#else+runReadline :: (MonadIO m, MonadMask m, MonadException m) => Prefs -> Settings m -> ReadlineC m a -> m a

I think the MonadMask constraint (and the dependency on exceptions, for that matter) is actually redundant on 0.7.

patrickt

comment created time in 7 days

push eventrobrix/isometry

Rob Rix

commit sha 02f5b840d6805890df38f1eae777f4ce40676f19

Define a module for the frame stuff.

view details

Rob Rix

commit sha 056aaa406cabdcb7ae89ba0f7cb2dffc3a3dc78e

Move runFrame into Isometry.Frame.

view details

Rob Rix

commit sha d43435d6923e040a3699ffa476ee59a5472ebb84

Split drawing out into a new binding.

view details

Rob Rix

commit sha 61fd34992948b58763356db6acd6b506773a3162

Move frame into Isometry.Frame.

view details

Rob Rix

commit sha 8a089c990a7853bdea99cedc7c31afaed676cdf4

Extract a helper to run the drawables.

view details

push time in 8 days

more