Message T0021

This is a tricky one:

Error: "Zebu2.bsv", line 59, column 1: (T0021)
  Kind error at:
    _m__

  Expected kind:
    (* -> *) -> *

  Inferred kind:
    * -> *

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);
endinterface

module mkFoo( Foo#(ta) );
endmodule

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...
Comments