On Sun, Nov 16, 2008 at 05:17:52AM +1100, damien morton wrote: } am I missing something? Just the variable scope. Once you have run: 1> case [] of [] -> X = aaa; X -> ok end. aaa The variable X is now bound: 2> X. aaa If you forget it first: 3> f(X). ok Your second example will work: 4> case bbb of [] -> X = aaa; X -> ok end. ok -Vance