├── .credo.exs ├── .envrc ├── .github ├── CODE_OF_CONDUCT.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── ci.yaml │ └── greetings.yml ├── .gitignore ├── .tool-versions ├── LICENSE ├── README.md ├── brand ├── LOGO_LICENSE ├── logo.png └── mini-logo.png ├── lib ├── algae.ex └── algae │ ├── either.ex │ ├── free.ex │ ├── id.ex │ ├── id │ ├── applicative.ex │ ├── apply.ex │ ├── chain.ex │ ├── comonad.ex │ ├── extend.ex │ ├── foldable.ex │ ├── functor.ex │ ├── generator.ex │ ├── monad.ex │ ├── monoid.ex │ ├── ord.ex │ ├── semigroup.ex │ ├── setoid.ex │ └── traversable.ex │ ├── internal.ex │ ├── internal │ └── needs_explicit_default_error.ex │ ├── maybe.ex │ ├── reader.ex │ ├── reader │ ├── applicative.ex │ ├── apply.ex │ ├── chain.ex │ ├── functor.ex │ ├── generator.ex │ └── monad.ex │ ├── state.ex │ ├── state │ ├── applicative.ex │ ├── apply.ex │ ├── chain.ex │ ├── functor.ex │ ├── generator.ex │ └── monad.ex │ ├── tree │ ├── binary_search.ex │ ├── binary_search │ │ ├── applicative.ex │ │ ├── apply.ex │ │ ├── chain.ex │ │ ├── extend.ex │ │ ├── foldable.ex │ │ ├── functor.ex │ │ ├── generator.ex │ │ ├── monad.ex │ │ ├── monoid.ex │ │ ├── ord.ex │ │ ├── semigroup.ex │ │ └── setoid.ex │ ├── rose.ex │ └── rose │ │ ├── applicative.ex │ │ ├── apply.ex │ │ ├── chain.ex │ │ ├── foldable.ex │ │ ├── functor.ex │ │ ├── generator.ex │ │ └── monad.ex │ ├── writer.ex │ └── writer │ ├── applicative.ex │ ├── apply.ex │ ├── chain.ex │ ├── functor.ex │ ├── generator.ex │ └── monad.ex ├── mix.exs ├── mix.lock ├── shell.nix └── test ├── algae_dsl_aliasing_test.exs ├── algae_test.exs ├── support └── example.ex └── test_helper.exs /.credo.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/.credo.exs -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/.envrc -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/.github/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/greetings.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/.github/workflows/greetings.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/.gitignore -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | erlang 24.2 2 | elixir 1.13.2 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/README.md -------------------------------------------------------------------------------- /brand/LOGO_LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/brand/LOGO_LICENSE -------------------------------------------------------------------------------- /brand/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/brand/logo.png -------------------------------------------------------------------------------- /brand/mini-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/brand/mini-logo.png -------------------------------------------------------------------------------- /lib/algae.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae.ex -------------------------------------------------------------------------------- /lib/algae/either.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/either.ex -------------------------------------------------------------------------------- /lib/algae/free.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/free.ex -------------------------------------------------------------------------------- /lib/algae/id.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id.ex -------------------------------------------------------------------------------- /lib/algae/id/applicative.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/applicative.ex -------------------------------------------------------------------------------- /lib/algae/id/apply.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/apply.ex -------------------------------------------------------------------------------- /lib/algae/id/chain.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/chain.ex -------------------------------------------------------------------------------- /lib/algae/id/comonad.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/comonad.ex -------------------------------------------------------------------------------- /lib/algae/id/extend.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/extend.ex -------------------------------------------------------------------------------- /lib/algae/id/foldable.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/foldable.ex -------------------------------------------------------------------------------- /lib/algae/id/functor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/functor.ex -------------------------------------------------------------------------------- /lib/algae/id/generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/generator.ex -------------------------------------------------------------------------------- /lib/algae/id/monad.ex: -------------------------------------------------------------------------------- 1 | import TypeClass 2 | definst Witchcraft.Monad, for: Algae.Id 3 | -------------------------------------------------------------------------------- /lib/algae/id/monoid.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/monoid.ex -------------------------------------------------------------------------------- /lib/algae/id/ord.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/ord.ex -------------------------------------------------------------------------------- /lib/algae/id/semigroup.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/semigroup.ex -------------------------------------------------------------------------------- /lib/algae/id/setoid.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/setoid.ex -------------------------------------------------------------------------------- /lib/algae/id/traversable.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/id/traversable.ex -------------------------------------------------------------------------------- /lib/algae/internal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/internal.ex -------------------------------------------------------------------------------- /lib/algae/internal/needs_explicit_default_error.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/internal/needs_explicit_default_error.ex -------------------------------------------------------------------------------- /lib/algae/maybe.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/maybe.ex -------------------------------------------------------------------------------- /lib/algae/reader.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/reader.ex -------------------------------------------------------------------------------- /lib/algae/reader/applicative.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/reader/applicative.ex -------------------------------------------------------------------------------- /lib/algae/reader/apply.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/reader/apply.ex -------------------------------------------------------------------------------- /lib/algae/reader/chain.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/reader/chain.ex -------------------------------------------------------------------------------- /lib/algae/reader/functor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/reader/functor.ex -------------------------------------------------------------------------------- /lib/algae/reader/generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/reader/generator.ex -------------------------------------------------------------------------------- /lib/algae/reader/monad.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/reader/monad.ex -------------------------------------------------------------------------------- /lib/algae/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/state.ex -------------------------------------------------------------------------------- /lib/algae/state/applicative.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/state/applicative.ex -------------------------------------------------------------------------------- /lib/algae/state/apply.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/state/apply.ex -------------------------------------------------------------------------------- /lib/algae/state/chain.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/state/chain.ex -------------------------------------------------------------------------------- /lib/algae/state/functor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/state/functor.ex -------------------------------------------------------------------------------- /lib/algae/state/generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/state/generator.ex -------------------------------------------------------------------------------- /lib/algae/state/monad.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/state/monad.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/applicative.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/applicative.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/apply.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/apply.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/chain.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/chain.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/extend.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/extend.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/foldable.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/foldable.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/functor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/functor.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/generator.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/monad.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/monad.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/monoid.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/monoid.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/ord.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/ord.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/semigroup.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/semigroup.ex -------------------------------------------------------------------------------- /lib/algae/tree/binary_search/setoid.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/binary_search/setoid.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/rose.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose/applicative.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/rose/applicative.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose/apply.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/rose/apply.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose/chain.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/rose/chain.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose/foldable.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/rose/foldable.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose/functor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/rose/functor.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose/generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/tree/rose/generator.ex -------------------------------------------------------------------------------- /lib/algae/tree/rose/monad.ex: -------------------------------------------------------------------------------- 1 | import TypeClass 2 | 3 | definst Witchcraft.Monad, for: Algae.Tree.Rose 4 | -------------------------------------------------------------------------------- /lib/algae/writer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/writer.ex -------------------------------------------------------------------------------- /lib/algae/writer/applicative.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/writer/applicative.ex -------------------------------------------------------------------------------- /lib/algae/writer/apply.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/writer/apply.ex -------------------------------------------------------------------------------- /lib/algae/writer/chain.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/writer/chain.ex -------------------------------------------------------------------------------- /lib/algae/writer/functor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/writer/functor.ex -------------------------------------------------------------------------------- /lib/algae/writer/generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/lib/algae/writer/generator.ex -------------------------------------------------------------------------------- /lib/algae/writer/monad.ex: -------------------------------------------------------------------------------- 1 | import TypeClass 2 | 3 | definst Witchcraft.Monad, for: Algae.Writer 4 | -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/mix.lock -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/shell.nix -------------------------------------------------------------------------------- /test/algae_dsl_aliasing_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/test/algae_dsl_aliasing_test.exs -------------------------------------------------------------------------------- /test/algae_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/test/algae_test.exs -------------------------------------------------------------------------------- /test/support/example.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/witchcrafters/algae/HEAD/test/support/example.ex -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | --------------------------------------------------------------------------------