SYNOPSIS
        object to_object(string arg)
        object to_object(closure arg)
        object to_object(object arg)

        (object)<value>

BESCHREIBUNG
        Das Argument <arg> wird in ein Objekt umgewandelt, wenn dies
        moeglich ist.

        Fuer Strings wird das Objekt mit entsprechendem object_name(<arg>)
        zurueck gelierfert, oder 0, wenn es kein entsprechendes Objekt gibt.
        Dies entspricht find_object().

        Fuer (gebundene!) Closures wird das Objekt zurueck gegeben, das die
        Closure enthaelt. Fuer "Alien Lfun Closures" ist das das Objekt, das
        die Closure erzeugt hat, nicht das Objekt, in dem die Lfun definiert
        ist.

        Objekte und die Zahl 0 werden unveraendert zurueck gegeben.

FEHLER
        Die Cast-Schreibweise funktioniert nur, wenn der genaue Wert von
        <value> zum Zeitpunkt der Kompilierung bekannt ist. Dies wird nicht
        geaendert werden, da die Funktionsform verwendet werden kann.

SIEHE AUCH
        find_object(E), to_array(E), to_int(E), to_string(E), get_type_info(E)
