@@ -0,0 +1,17 @@
+/*     / \____  _    _  ____   ______  / \ ____  __    _ _____
+ *    /  /    \/ \  / \/    \ /  /\__\/  //    \/  \  / /  _  \   Javaslang
+ *  _/  /  /\  \  \/  /  /\  \\__\\  \  //  /\  \ /\\/  \__/  /   Copyright 2014-now Daniel Dietrich
+ * /___/\_/  \_/\____/\_/  \_/\__\/__/___\_/  \_//  \__/_____/    Licensed under the Apache License, Version 2.0
+ */
+package javaslang.control;
+
+public interface Applicative<T> extends Apply<T> {
+
+    Applicative<T> point(T t);
+
+    // Alias for point
+    default Applicative<T> pure(T t) {
+        return point(t);
+    }
+
+}
`point` and `pure` are not needed, if the `ap` method is abstract. Instead implementations will use the actual constructor. Then we do not need to separate Applicative and Apply. I suggest to merge them and name the type Applicative.