public FunctionForm(string name, IList<IExpression> parameterexpressions, IExpression body)
{
this.name = name;
this.parameterexpressions = parameterexpressions;
this.body = body;
if (body is CallExpression)
this.body = ((CallExpression)body).ToDelayedCallExpression();
else if (body is CompositeExpression)
{
var cexpr = (CompositeExpression)body;
var last = cexpr.Expressions.Count - 1;
if (cexpr.Expressions[last] is CallExpression)
cexpr.Expressions[last] = ((CallExpression)cexpr.Expressions[last]).ToDelayedCallExpression();
}
}