carrying on messing with the examples.
Adding a semigroup instance
Adding a int version of cast, that explicitly casts.

Perhaps we should just use floor?
Improving the test - fixing the speed to ui = 1s.