diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/generic/data/types/Maybe.java b/common/api/src/main/java/com/dfsek/terra/api/util/generic/data/types/Maybe.java index a639e34d1..5973ef04c 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/generic/data/types/Maybe.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/generic/data/types/Maybe.java @@ -6,24 +6,22 @@ import java.util.Optional; import java.util.function.Function; -public interface Maybe extends Monad> { - @Override - Maybe bind(Function>> map); +public interface Maybe{ - @Override - Maybe identity(); - - @Override - Maybe map(Function map); - - @Override - Monad> multiply(Maybe t); - - default Optional toOptional() { - - } + Optional toOptional(); record Just(T value) implements Maybe { + @Override + public Optional toOptional() { + return Optional.of(value); + } + } + record Nothing() implements Maybe { + + @Override + public Optional toOptional() { + return Optional.empty(); + } } }