package com.googlecode.totallylazy.functions; import com.googlecode.totallylazy.Unchecked; public class Compose<T> implements CurriedMonoid<Function1<T,T>> { private static final Compose<?> instance = new Compose<>(); private Compose() {} public static <T> Compose<T> compose() { return Unchecked.cast(instance); } public static <T> Compose<T> compose(Class<T> aClass) { return compose(); } @Override public Function1<T, T> call(Function1<T, T> a, Function1<T, T> b) throws Exception { return Callables.compose(a, b); } @Override public Function1<T, T> identity() { return Functions.identity(); } }