Spinoza And Leibniz Philosophy Monads For Functional Programming