|This is a tricky one:|
Error: "Zebu2.bsv", line 59, column 1: (T0021)
Kind error at:
(* -> *) -> *
* -> *
What has happened is the compiler is probably saying is that there is a parametrization issue or interface problem with your module.. The easiest way to recreate this is like so:
interface Foo#(type ta, type tb);
module mkFoo( Foo#(ta) );
The observation here is that the interface Foo is defined to have two arguments (ta, tb), but the interrface is specified for mkFoo with only one argument (you can compile these for lines and get the same error).
The compiler might certainly do a better job in helping to sort this out, but this is an example of a common reason this error comes up...