Moving to interface, idea - seems to require A LOT of casting!
Adding option Fold
Complete re-write of the whole lib.
Method re-name
Adding Promises
Slight refactoring here and there.
Adding IO
Starting to add IdentityT transformer
Adding travis.yml
Adding IdentityT fixes
Starting to add useful commands to the monads
Removing useful folder for now, can always add back later
- Making sure private variables are that, private
Complete re-write of the library - yet again!

Starting to implement laws for testing
Adding applicative struct for the laws
Starting to implement monadic laws

- Added applicative laws
- Adding a function type to make it easier to call functions dynamically
- Lots of changes

Update README.md
Adding functor laws
Starting to Monad tests
Fixing IdT.
Adding semi-group and monoid tests
100% test coverage for useful
Adding endo functor