Exception handling and fault-tolerance lab exercises in functional languages