code: private Decl.Property parsePropertyDeclaration(Tuple<Modifier> modifiers) {
  		EnclosingScope scope = new EnclosingScope();
  		int start = index;
  		match(Property);
  		Identifier name = parseIdentifier();
  		Tuple<Template.Variable> template = parseOptionalTemplate(scope);
  		Tuple<Decl.Variable> parameters = parseParameters(scope,RightBrace);
  		Tuple<Expr> invariant = parseInvariant(scope,Where);
  		//
  		int end = index;
  		matchEndLine();
  		return annotateSourceLocation(new Decl.Property(modifiers, name, template, parameters, invariant), start);
  	}
docs: Parse a <i>property declaration</i> which has the form:
  
  <pre>
  ProeprtyDeclaration ::= "property" Parameters "->" Parameters (WhereClause)*
  PropertyClause ::= "where" Expr
  </pre>