import std.meta: AliasSeq;
template sMap(alias F, T...) {
static if (T.length == 0) {
alias sMap = AliasSeq!();
} else static if (T.length == 1) {
alias sMap = AliasSeq!(F!(T[0]));
} else static if (T.length == 2) {
alias sMap = AliasSeq!(F!(T[0]), F!(T[1]));
} else static if (T.length == 3) {
alias sMap = AliasSeq!(F!(T[0]), F!(T[1]), F!(T[2]));
} else static if (T.length == 4) {
alias sMap = AliasSeq!(F!(T[0]), F!(T[1]), F!(T[2]), F!(T[3]));
"alias sMap = AliasSeq!(",
static foreach(i, _; T) {
argsList ~= "F!(T[" ~ i.stringof ~ "]), ";
import std.traits: Unqual;
pragma(msg, sMap!(Unqual, immutable int));