Commit Graph

120 Commits

Author SHA1 Message Date
Mathieu Boespflug
3af7a53159 Use Buildkite badge 2019-12-29 21:37:39 +01:00
Mathieu Boespflug
74d8c9d92f Remove TravisCI configuration file 2019-12-29 21:37:27 +01:00
Mathieu Boespflug
e3ba2fa63a buildkite agent boilerplate 2019-12-29 21:33:12 +01:00
Mathieu Boespflug
d9a50c01ce Add stack lock file 2019-12-29 21:22:43 +01:00
Mathieu Boespflug
2471453592 Switch from CircleCI to Buildkite 2019-12-29 21:21:30 +01:00
Mathieu Boespflug
5619c8a7c4 Add a Nix shell file and instruct Stack to use shell provided GHC 2019-12-29 21:18:21 +01:00
Mathieu Boespflug
996fe7c235 Switch to latest LTS. 2019-12-29 19:37:17 +01:00
Mathieu Boespflug
3c9d3e0c9c
Merge pull request #24 from facundominguez/fd/ghc-8.9
Fix build error in ghc-8.9
2019-07-19 00:48:41 +03:00
Facundo Domínguez
a1c6780d87 Fix build error in ghc-8.9. 2019-07-12 13:20:22 -03:00
Mathieu Boespflug
1819fe3cf5 Bump version. 2019-03-20 14:50:57 +01:00
Mathieu Boespflug
18689b9a6b Switch to latest LTS. 2019-03-20 14:50:00 +01:00
Mathieu Boespflug
dcb28d9df2 Turn on UndecidableInstances in test file.
Since newer GHC is stricter about undecidable instances.
2019-03-20 14:49:36 +01:00
Mathieu Boespflug
9bc2f9e33d Bump version. 2018-09-18 20:42:50 +02:00
Mathieu Boespflug
5776daefae
Merge pull request #18 from tweag/ghc84
GHC 8.4 compatibility
2018-09-13 10:17:30 +03:00
Mathieu Boespflug
8759ae5860 Import Test.QuickCheck qualified to avoid name clashes. 2018-09-12 23:38:12 +02:00
Mathieu Boespflug
c366af62a2 Switch to LTS 12. 2018-09-12 23:38:12 +02:00
Mathieu Boespflug
6059d410c4 Allow instance Typeable in withStatic blocks
`Typeable` instances are not user defined. But the user nevertheless
sometimes needs static evidence of typeability. The solution is to
allow users to write

```haskell
withStatic [d| instance Typeable T |]
```

for any datatype `T`. `withStatic` will generate static evidence, but
won't pass through the instance declaration itself, since it is
illegal.
2018-09-12 23:38:12 +02:00
Mathieu Boespflug
793ee0627d Add Static instance for pairs of constraints. 2018-09-12 23:38:09 +02:00
Andreas Herrmann
49be4a95cf
Merge pull request #15 from tweag/ah/add-example
Add an example of sending functions
2018-02-07 12:33:12 +01:00
Andreas Herrmann
fd2c60230b Add link from README to example 2018-02-07 11:55:15 +01:00
Andreas Herrmann
1723990fb7 Add an example of sending functions
As requested in #13.
2018-02-07 10:40:32 +01:00
Facundo Domínguez
dceeb25a2a Bump version to 0.4.0 and update changelog. 2018-02-06 09:20:49 -03:00
Facundo Domínguez
df9b79af74
Merge pull request #14 from tweag/fd/check-scopedtypevariables
Check that ScopedTypeVariables is enabled when using withStatic
2018-02-06 09:19:50 -03:00
Facundo Domínguez
604068fe5f Add more tests of withStatic. 2018-02-06 09:06:52 -03:00
Facundo Domínguez
87b4dfb313 Test that the extension ScopedTypeVariables is enabled when using withStatic. 2018-02-06 09:06:52 -03:00
Facundo Domínguez
e22aa9bc72 Bump version to 0.3.5 and add a changelog. 2018-02-01 09:38:39 -03:00
Facundo Domínguez
1612944995 Prevent warnings about redundant 'Typeable (Dict A)' constraints when A has no type variables. 2017-12-22 14:54:14 -03:00
Mathieu Boespflug
dea643bec6 Merge pull request #12 from tweag/static-class-hierarchy
Introduce static class hierarchy.
2017-08-16 19:13:46 +02:00
Mathieu Boespflug
3e351fd3da Add extra Comonad laws. 2017-08-16 19:13:01 +02:00
Mathieu Boespflug
95a853d140 Remove Closure from definition of Applicative. 2017-08-16 13:08:46 +02:00
Mathieu Boespflug
d101795465 Remove C.D.C.Class module.
Holdover from previous commits.
2017-08-16 12:53:53 +02:00
Mathieu Boespflug
cff1ce0de5 Define type class hierarchy in separate modules. Remove StaticBifunctor.
We split type classes into their own modules that mirror the standard
module hierarchy, with `.Static` appended to the end of the names of
each module.
2017-08-15 08:19:46 +02:00
Mathieu Boespflug
143aae1fa4 Add StaticBifunctor, StaticProfunctor, StaticStrong and StaticChoice.
Thes are cardinal points in a lattice of profunctor optics, as
explained in "Profunctor Optics: modular data accessors" by Pickering
et al.
2017-08-13 15:06:41 +02:00
Mathieu Boespflug
5f4521be44 Fix Apply/Bind laws. 2017-08-12 23:48:23 +02:00
Mathieu Boespflug
ed07c6fed5 Add capDup combinator. Useful for stating Apply/Bind laws. 2017-08-12 23:47:32 +02:00
Mathieu Boespflug
4ac9d35c57 Laws for StaticApply and StaticBind. 2017-06-25 16:15:19 +02:00
Mathieu Boespflug
65d4ca6bf6 Fix signature of staticApply.
Make it consistent with `staticApply (staticPure f) x = staticMap f x`
law.
2017-06-25 16:14:03 +02:00
Mathieu Boespflug
9d72902de5 StaticExtend class.
semigroupoid version of StaticComonad. For consistency with the rest
of the class hierarchy.
2017-06-25 16:13:06 +02:00
Mathieu Boespflug
9a20eb0cc1 Introduce static class hierarchy.
`Closure` is not a functor, since we cannot map arbitrary functions
over it. But it sure looks like one, and an applicative one at that.
What we can do is map "static" functions over it (i.e. a `Closure`).
`Closure` is not just an applicative functor, it's also a monad, as
well as a comonad, if again we limit the function space to those
functions that can be statically pointed to. In fact an entire
hierarchy of classes mirroring the standard classes can be defined.
2017-06-19 21:49:07 +02:00
Mathieu Boespflug
feab2cedee Add stack setup step. 2017-06-19 20:19:09 +02:00
Mathieu Boespflug
6d0aef4516 Enable CircleCI. 2017-06-19 20:08:28 +02:00
Arnaud Spiwack
eb50fcca61 Merge pull request #9 from tweag/better-generators
Tests: Add non-trivial generators for Closure
2017-06-19 18:01:22 +02:00
Arnaud Spiwack
a31397641b Tests: slight simplification of generators
We don't need a table at every type, just inhabitants. Still far from
being extensible to more types though.
2017-06-19 17:38:55 +02:00
Arnaud Spiwack
f018546e57 Tests: add some comments on the generation strategy 2017-06-19 17:38:55 +02:00
Arnaud Spiwack
1fc1ee3958 Slightly more general tests 2017-06-19 17:38:55 +02:00
Arnaud Spiwack
1d5b78b5c5 Tests: clean-up: use the extensional equality on closures 2017-06-19 17:38:39 +02:00
Arnaud Spiwack
f08a0759de Tests: Cleanup: closure (static …) 2017-06-19 17:38:35 +02:00
Arnaud Spiwack
db84adc04a Tests: generate non-trivial closures
Tried with 4d9b0d3b5f498e7c49e679f4750ad6d38447afe8 and it indeed
finds a counter example.
2017-06-19 17:34:48 +02:00
Mathieu Boespflug
969454c9bc Merge pull request #6 from tweag/cduplicate
Add closure duplication (comonadic operation).
2017-06-17 11:20:13 +02:00
Mathieu Boespflug
c667a8343e Merge pull request #11 from brandon-leapyear/master
Create .gitignore
2017-06-17 10:55:50 +02:00