The FX programming language is designed to support the parallel implementation of applications that perform both symbolic and scientific computations. Unlike previous languages, FX uses an effect system to discover expression scheduling constraints.