application software association for computing machinery church of england computer computer scientist fellow glasgow haskell compiler harold thimbleby implementation lazy evaluation lecturer microsoft research professor scientist south africa united kingdom university college london university of cambridge university of glasgow