how to instanciate a generic module inside a procedure after getting the generic parameter.and how to declare a variable inside a procedure with a type that I came to define it.