All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cyclops.typeclasses.InstanceDefinitions Maven / Gradle / Ivy

The newest version!
package cyclops.typeclasses;

import cyclops.control.Maybe;
import cyclops.control.Option;
import cyclops.function.Eq;
import cyclops.typeclasses.comonad.Comonad;
import cyclops.typeclasses.foldable.Foldable;
import cyclops.typeclasses.foldable.Unfoldable;
import cyclops.arrow.MonoidK;
import cyclops.typeclasses.functor.ContravariantFunctor;
import cyclops.typeclasses.functor.Functor;
import cyclops.typeclasses.functor.ProFunctor;
import cyclops.typeclasses.monad.*;

/**
 * Created by johnmcclean on 28/06/2017.
 */
public interface InstanceDefinitions {



    default Eq eq(){
        return new Eq(){};
    }

    Functor functor();
     Pure unit();
     Applicative applicative();
     Monad monad();
     Option> monadZero();
     Option> monadPlus();
     MonadRec monadRec();
     Foldable foldable();
     Traverse traverse();


    default  Option> contravariantFunctor(){
        return Maybe.nothing();
    }
    default  Option> profunctor(){
        return Maybe.nothing();
    }
    default  Option> applicativeError(){
        return Maybe.nothing();
    }


     Option> monadPlus(MonoidK m);



     Option> comonad();

    default   Option> unfoldable(){
        return Maybe.nothing();
    }



    default Show show(){
        return new Show(){};
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy