exception ListEmpty; datatype 'a cs52list = Nil | Cons of 'a * 'a cs52list; fun first Nil = raise ListEmpty | first (Cons(x, _)) = x; fun rest Nil = raise ListEmpty | rest (Cons(_, xs)) = xs; fun countUp k = Cons(k, countUp (k+1));