@singledispatch<EOL>def fmap(functor, func):<EOL>
return functor.map(func)<EOL>
Applies a function to the data 'inside' a functor.

    Uses functools.singledispatch so you can write your own functors
    for use with the library.