public ISemantReturn<ImmutableList<Tuple<Option<String>, ExprType>>> GetMemberDeclns(Env env) {
// Semant specifier-qualifier-list.
var baseType = Semant(this.SpecQualList.GetExprType, ref env);
// Decorate types, based on struct declarators.
var memberTypes =
this.StructDeclrs
.ConvertAll(
structDeclr =>
Semant(structDeclr.DecorateType, baseType, ref env)
);
// Get (optional) member names.
var memberNames =
this.StructDeclrs
.ConvertAll(
structDeclr => structDeclr.Name
);
return SemantReturn.Create(env, memberNames.Zip(memberTypes, Tuple.Create).ToImmutableList());
}