Functional Bulk Synchronous Parallel Programming using the BSMLlib Library