com.github.tonivade.purefun.instances.Function1Instances Maven / Gradle / Ivy
/*
* Copyright (c) 2018-2019, Antonio Gabriel Muñoz Conejo
* Distributed under the terms of the MIT License
*/
package com.github.tonivade.purefun.instances;
import com.github.tonivade.purefun.Function1;
import com.github.tonivade.purefun.Higher2;
import com.github.tonivade.purefun.Instance;
import com.github.tonivade.purefun.typeclasses.Profunctor;
public interface Function1Instances {
static Profunctor profunctor() {
return new Function1Profunctor() {};
}
}
@Instance
interface Function1Profunctor extends Profunctor {
@Override
default Higher2 dimap(Higher2 value, Function1 contramap, Function1 map) {
Function1 function = value.fix2(Function1::narrowK);
return function.compose(contramap).andThen(map);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy