rust2fun 0.2.1

A library for functional programming in Rust
Documentation
mod common;

if_std! {
    use proptest::prelude::*;

    use rust2fun_laws::monoid_laws::*;
    use rust2fun_laws::semigroup_laws::*;

    proptest! {
        #[test]
        fn test_semigroup(fa: String, fb: String, fc: String) {
            assert!(repeat_0(fa.clone()).holds());
            assert!(repeat_1(fb.clone()).holds());
            assert!(semigroup_associativity(fa, fb, fc).holds());
        }

        #[test]
        fn test_monoid(fa: String) {
            assert!(monoid_left_identity(fa.clone()).holds());
            assert!(monoid_right_identity(fa.clone()).holds());
            assert!(is_id(fa).holds());
        }
    }
}