cyclops.typeclasses.InstanceDefinitions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cyclops-pure Show documentation
Show all versions of cyclops-pure Show documentation
Platform for Functional Reactive Programming with Java 8
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(){};
}
}