# Meowth [![codecov](https://codecov.io/gh/duskmoon314/meowth/branch/main/graph/badge.svg?token=6NHWA7F2LZ)](https://codecov.io/gh/duskmoon314/meowth) [![crates.io](https://img.shields.io/crates/v/meowth.svg)](https://crates.io/crates/meowth) [![docs.rs](https://docs.rs/meowth/badge.svg)](https://docs.rs/meowth) `Meowth` is a library that provides abstractions for functional programming in Rust. Inspired by Scala library [cats](https://github.com/typelevel/cats). The name `Meowth` is a reference to the Pokemon character [Meowth]() as it is a cat-like Pokemon and the name `cats` has been taken. ## Introduction ### Reference - [Functional Programming (Wikipedia)](https://en.wikipedia.org/wiki/Functional_programming) - [Category Theory (Wikipedia)](https://en.wikipedia.org/wiki/Category_theory) - [Category Theory (nLab)](https://ncatlab.org/nlab/show/category+theory) - [Bartosz Milewski's _Category Theory for Programmers_](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/) - [_Category Theory for Programmers_ (PDF)](https://github.com/hmemcpy/milewski-ctfp-pdf) - [Scala library `cats`](https://typelevel.org/cats/index.html) ## License Licensed under either of - Apache License, Version 2.0 ([LICENSE-APACHE](https://github.com/duskmoon314/meowth/blob/main/LICENSE-APACHE) or ) - MIT license ([LICENSE-MIT](https://github.com/duskmoon314/meowth/blob/main/LICENSE-MIT) or ) at your option. ### Contribution Unless you explicitly state otherwise, any Contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. ## Disclaimer This is currently a toy project as I learn FP. It may not be production ready. Use at your own risk. If you are familiar with FP and/or category theory, please feel free to contribute. I would love to learn from you.