As @sclv says, there is no way to directly convert a functor from a free monad back to a functor alone in the general case. Why not?
If you recall the “free structures” page that you linked to, they first talk about free monoids before spreading the same concept to talk about monads. A free monoid for a type is a list; the equivalent "return return" function in this case will turn a free monoid with type [a] into one element with type a . Obviously, this is not possible for two reasons: if the list is empty, it cannot return anything; and if the list contains several items, it should drop all but one.
The construction of a free monad is similar and poses a similar problem. A free monad is defined by a functor composition , which is similar to a regular composition, with the exception of the type constructor. We cannot write a functor composition directly in Haskell, but just like f . g f . g means \x -> f (gx) , we can embed a type constructor application. For example, composing Maybe with itself gives a type of type Maybe (Maybe a) .
So, in other words, if a simple functor describes a certain parameterized structure, the free monad of this functor describes this structure, nested within itself at an arbitrary depth.
So, if we look at Free [] Int , it could be a single Int , a list of Int s, a list of Ints lists, etc.
So, like , we can turn a free monoid (list) directly into one element, if the list has exactly one element in length , we can convert the free monad directly into a base functor if the nesting is exactly one layer deep .
If you are interested in general ways to return things from a free monad, you need to go a little further - a kind of recursive addition operation to collapse the structure.
In the specific case of a free monad for lists, there is one obvious approach - recursively flatten the structure by separating the Roll and Return constructors and merging the lists as you go. It may also be useful to calculate why this approach works in this case and how it relates to the list structure.