Correl Roush
348d98e786
Add Optional type conversions to Maybe and Result
2019-06-11 11:00:35 -04:00
Correl Roush
7745f5ff6a
Fix circular imports in Result and Maybe
...
Result and Maybe include methods for converting themselves into each
other. In order for the forward references to work correctly, the
imports need to be module-only imports.
2019-02-15 13:40:45 -05:00
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