#lang plait
{let1 {y E1} E2}[E3/x] =
if `y' is free in `E3'
= {let1 {y1 E1[E3/x]} E2[y1/y][E3/x]}
otherwise
= {let1 {x E1[E3/x]} E2[E3/x]}
#lang plait
{let1 {y E1} E2}[E3/x] =
if `y' is free in `E3'
= {let1 {y1 E1[E3/x]} E2[y1/y][E3/x]}
otherwise
= {let1 {x E1[E3/x]} E2[E3/x]}