it's not explicit, things will appear to be magical. there is a .liftM method that can be used for this type of thing.
But just converting one type into another without anything explicit makes it magical