public Expression <Func <dynamic> > Compile(Block block)
{
scope = Scope.CreateRoot();
var blockExpr = Visit(block);
var expr = Expr.Block(blockExpr, Expr.Label(scope.GetReturnLabel(), Expr.Constant(null)));
return(Expr.Lambda <Func <dynamic> >(expr));
}