Commit graph

29 commits

Author SHA1 Message Date
Correl Roush
cbe71da3f8 Fix Reader.__repr__ failing when its callable lacks a __name__ 2019-01-08 15:34:11 -05:00
Correl Roush
319ac3cb4d Add __name__ to the "constant" callable in Reader
Without it, the __repr__ of Reader may fail
2019-01-08 15:31:58 -05:00
Correl Roush
3d312c1c90 Give Curried its own __repr__ implementation
Because a curried function annotation will be based on the original
function signature (won't match Env -> T), I'd rather differentiate
its representation. Otherwise, it looks like something messed up
building a Reader.
2019-01-08 15:24:32 -05:00
Correl Roush
375e5a47e1 Adjust signatures of curried functions 2019-01-08 14:53:33 -05:00
a45af9b5b0 Adjust signatures of Reader instances 2019-01-08 14:53:33 -05:00
116c3cc1ac Move currying to its own module and give it types 2019-01-08 14:53:33 -05:00
Correl Roush
71db6f311e Update Future.sequence to accept an iterable of any awaitable object 2019-01-04 11:47:04 -05:00
Correl Roush
e623ba0571 Remove conditional behavior of Future.pure
It was not wrapping awaitable values in a new awaitable, which is
incorrect and confusing behavior.
2019-01-04 11:44:38 -05:00
a340cfea68 Ensure the types are correct for all monad methods 2019-01-03 22:28:41 -05:00
93bc193494 Add the Future monad 2018-12-12 23:00:18 -05:00
7608fa40fe Add missing result test 2018-12-12 01:17:49 -05:00
8a25d3904f Add an infix operator for Applicative.apply 2018-12-11 23:22:35 -05:00
58c8d6841b Add Result.mapError 2018-12-11 22:19:13 -05:00
77bf6b4735 Add Monad.sequence 2018-12-11 22:08:15 -05:00
Correl Roush
16c87c4d04 Ensure all monoids and monoids implement their appropriate operators 2018-12-06 13:53:07 -05:00
Correl Roush
50a26a7b7a Add Maybe analogues to Result's to/from Maybe methods 2018-12-06 13:31:09 -05:00
Correl Roush
c85f5537ec Change class parameter in Result.fromMaybe 2018-12-06 13:31:09 -05:00
Correl Roush
c7a5020d89 Add some useful conversion functions 2018-12-03 16:16:04 -05:00
Correl Roush
23f53d422a Package a type marker file per PEP 561
This will make type annotations usable for projects importing the
library.
2018-12-03 16:15:59 -05:00
Correl Roush
b798eb74ba Add Reader 2018-10-25 15:15:27 -04:00
a4a46a46c7 More monoids 2018-10-13 02:27:39 -04:00
Correl Roush
8c18de5e6f Ignore coverage on unreachable code branches
These code branches should be unreachable in type-safe code.
2018-10-12 15:41:37 -04:00
Correl Roush
68705f25cc Remove old Monad definition from monads.result 2018-10-12 14:54:03 -04:00
Correl Roush
e21791a8b7 Ignore coverage of repr / base class methods 2018-10-12 14:54:03 -04:00
Correl Roush
1a87d73a5b Applicative 2018-10-12 14:54:03 -04:00
c71b9d6ff6 Rename methods
unit -> pure
fmap -> map
2018-10-11 21:06:23 -04:00
f5b0e6e5e4 Monoids 2018-10-11 20:45:56 -04:00
Correl Roush
d38f617ba4 Test that each monad respects monad laws 2018-10-11 12:15:52 -04:00
de53c59732 Organize into a library 2018-10-11 01:26:00 -04:00