├── .gitignore ├── .travis.yml ├── Makefile ├── README.md ├── index.js ├── lib ├── Applicative.js ├── Functor.js ├── Monad.js ├── Monoid.js ├── Semigroup.js ├── common.js ├── constructors.js └── util.js ├── package.json └── test ├── Applicative └── laws.js ├── Chain └── laws.js ├── Functor └── laws.js ├── Monad ├── instances │ ├── Cont.js │ ├── Either.js │ ├── Id.js │ └── Optional.js └── laws.js ├── Monoid ├── instances │ ├── All.js │ ├── Any.js │ ├── Array.js │ ├── Dual.js │ ├── Endo.js │ ├── OptionalSemigroup.js │ ├── Product.js │ └── Sum.js └── laws.js ├── Semigroup ├── instances │ ├── Dual.js │ ├── Either.js │ ├── First.js │ ├── Last.js │ ├── Max.js │ └── Min.js ├── laws.js └── noninstances │ ├── Difference.js │ └── RockPaperScissors.js └── common ├── equality.js └── test.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/.travis.yml -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/README.md -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/index.js -------------------------------------------------------------------------------- /lib/Applicative.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/Applicative.js -------------------------------------------------------------------------------- /lib/Functor.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/Functor.js -------------------------------------------------------------------------------- /lib/Monad.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/Monad.js -------------------------------------------------------------------------------- /lib/Monoid.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/Monoid.js -------------------------------------------------------------------------------- /lib/Semigroup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/Semigroup.js -------------------------------------------------------------------------------- /lib/common.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/common.js -------------------------------------------------------------------------------- /lib/constructors.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/constructors.js -------------------------------------------------------------------------------- /lib/util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/lib/util.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/package.json -------------------------------------------------------------------------------- /test/Applicative/laws.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Applicative/laws.js -------------------------------------------------------------------------------- /test/Chain/laws.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Chain/laws.js -------------------------------------------------------------------------------- /test/Functor/laws.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Functor/laws.js -------------------------------------------------------------------------------- /test/Monad/instances/Cont.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monad/instances/Cont.js -------------------------------------------------------------------------------- /test/Monad/instances/Either.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monad/instances/Either.js -------------------------------------------------------------------------------- /test/Monad/instances/Id.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monad/instances/Id.js -------------------------------------------------------------------------------- /test/Monad/instances/Optional.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monad/instances/Optional.js -------------------------------------------------------------------------------- /test/Monad/laws.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monad/laws.js -------------------------------------------------------------------------------- /test/Monoid/instances/All.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/All.js -------------------------------------------------------------------------------- /test/Monoid/instances/Any.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/Any.js -------------------------------------------------------------------------------- /test/Monoid/instances/Array.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/Array.js -------------------------------------------------------------------------------- /test/Monoid/instances/Dual.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/Dual.js -------------------------------------------------------------------------------- /test/Monoid/instances/Endo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/Endo.js -------------------------------------------------------------------------------- /test/Monoid/instances/OptionalSemigroup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/OptionalSemigroup.js -------------------------------------------------------------------------------- /test/Monoid/instances/Product.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/Product.js -------------------------------------------------------------------------------- /test/Monoid/instances/Sum.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/instances/Sum.js -------------------------------------------------------------------------------- /test/Monoid/laws.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Monoid/laws.js -------------------------------------------------------------------------------- /test/Semigroup/instances/Dual.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/instances/Dual.js -------------------------------------------------------------------------------- /test/Semigroup/instances/Either.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/instances/Either.js -------------------------------------------------------------------------------- /test/Semigroup/instances/First.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/instances/First.js -------------------------------------------------------------------------------- /test/Semigroup/instances/Last.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/instances/Last.js -------------------------------------------------------------------------------- /test/Semigroup/instances/Max.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/instances/Max.js -------------------------------------------------------------------------------- /test/Semigroup/instances/Min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/instances/Min.js -------------------------------------------------------------------------------- /test/Semigroup/laws.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/laws.js -------------------------------------------------------------------------------- /test/Semigroup/noninstances/Difference.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/noninstances/Difference.js -------------------------------------------------------------------------------- /test/Semigroup/noninstances/RockPaperScissors.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/Semigroup/noninstances/RockPaperScissors.js -------------------------------------------------------------------------------- /test/common/equality.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/common/equality.js -------------------------------------------------------------------------------- /test/common/test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markandrus/aljebra/HEAD/test/common/test.js --------------------------------------------------------------------------------