MENOS CSS: Reutilización generada. @ {Nombre} clase como una mezcla

Estoy usando LESS CSS 1.3.3. Disculpe si esta pregunta ya se ha hecho, no encontré nada relevante en la web.

Tengo varios generadores de clase que se parecen a esto (ejemplo extremadamente simplificado, lo suficiente para desencadenar el error):

#genMarginTop (@name, @size) {
    .@{name} { margin-top: @size; }
}

Luego los uso para generar algunas clases reales:

#genMarginTop(mtStandard, 40px);
#genMarginTop(mtHalf, 20px);

Hasta ahora, bien, LESS genera correctamente esas clases y puedo usarlas en el HTML. Sin embargo, cuando quiero reutilizar una clase generada como una mezcla en otro lugar, aparece un error:

.someClass {
    .mtStandard; // won't work, see error below
    // more stuff
}

El error que recibo es:

NameError: .mtStandard is undefined in /.../example.less:161:4
160 .someClass {
161     .mtStandard;
162     // more stuff

Por supuesto trato de usar el mixin.después la clase ha sido generada Esoparece LESS de alguna manera no registrará internamente esas clases generadas después de que las genere, pero podría estar equivocado.

¿Hay una manera de reutilizar las clases generadas como mixins en otras clases? Siendo bastante nuevo con LESS, y su documentación es bastante escasa sobre las clases generadas, estoy en una pérdida total (especialmente porque esta es la única sintaxis que parece ser aceptada para los mixins).

Gracias por leerme

Nota: La razón por la que uso estos generadores de clase es porque son mucho más complejos que el ejemplo anterior (piense en clases anidadas que dependen de un conjunto común de parámetros), y estoy incrustando las clases generadas en varios@media Consultas para apoyar cualquier tipo de dispositivo en una forma "Zen". Al final me sale algo como:

@media (max-width: 1024px) {
    #genSomething(something, somethingParam1, ...);
    #genSomething(somethingElse, somethingElseParam1, ...);
    #genStuff(stuff, stuffParam1, ...);
}
@media (max-width: 240px) {
    #genSomething(something, somethingParam2, ...);
    #genSomething(somethingElse, somethingElseParam2, ...);
    #genStuff(stuff, stuffParam2, ...);
}
// etc
Solución / caso de prueba

Aquí hay un caso de prueba para la solución de @MartinTurjak, puedo confirmar que esto funciona como se espera, las clases anidadas y todo:

.explicit {
  margin-top: 1;
  input { margin-top: 1; }
}
.reuseExplicit {
  .explicit;
  margin-bottom: 1;
}
#generator (@arg) {
  margin-top: @arg;
  input {
    margin-top: @arg;
  }
}
.generated { #generator(1); }
.reuseGenerated {
  .generated;
  margin-bottom: 1;
}

Que genera correctamente: (observe cómo los resultados explícitos / generados producen el mismo resultado)

.explicit {
  margin-top: 1;
}
.explicit input {
  margin-top: 1;
}
.reuseExplicit {
  margin-top: 1;
  margin-bottom: 1;
}
.reuseExplicit input {
  margin-top: 1;
}
.generated {
  margin-top: 1;
}
.generated input {
  margin-top: 1;
}
.reuseGenerated {
  margin-top: 1;
  margin-bottom: 1;
}
.reuseGenerated input {
  margin-top: 1;
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta