package xsbti;
public abstract class Maybe<t>
{
protected Maybe() {}
public static <s> Maybe<s> just(final s v)
{
return new Maybe<s>() {
public boolean isDefined() { return true; }
public s get() { return v; }
};
}
public static <s> Maybe<s> nothing()
{
return new Maybe<s>() {
public boolean isDefined() { return false; }
public s get() { throw new UnsupportedOperationException("nothing.get"); }
};
}
public final boolean isEmpty() { return !isDefined(); }
public abstract boolean isDefined();
public abstract t get();
}