Suppose I have the following class:

public class FixExpr { Expr<FixExpr> in; }

Now I want to introduce a generic argument, abstracting over the use of Expr:

public class Fix<F> { F<Fix<F>> in; }

But Eclipse doesn't like this:

The type F is not generic; it cannot be parametrized with arguments <Fix<F>>

Is this possible at all or have I overlooked something that causes this specific instance to break?

Some background information: in Haskell this is a common way to write generic functions; I'm trying to port this to Java. The type argument F in the example above has kind * -> * instead of the usual kind *. In Haskell it looks like this: