REBOL [
    Title: "Melt"
    Date: 3-Jul-2002/21:35
    Name: Melt
    Version: 1.0.1
    File: %Melt.r
    Author: "Andrew Martin"
    Purpose: "Melts object ice into fluid Rebol script."
    Email: Al.Bri@xtra.co.nz
    Web: http://valley.150m.com
    Category: [util script file db 5]
    Acknowledgements: "Romano Paolo Tenca"
]

make object! [
    Magic: '.   ; This must be the same as the 'Freeze function!
    Melt-Value: function [Ice [block!] Path] [Value] [
        Value: :Path
        if all [
            path? :Path
            Magic = first :Path
            2 <= length? :Path
            integer? second :Path
            ] [
            Value: pick Ice second :Path
            if all [
                3 = length? :Path
                integer? third :Path
                ] [
                Value: at Value third :Path
                ]
            ]
        Value
        ]
    set 'Melt function ["Melts Object Ice" Ice [block!]] [Rule Value] [
        parse Ice Rule: [
            any [
                Value: path! (
                    Value/1: Melt-Value Ice Value/1
                    )
                | into Rule
                | any-type!
                ]
            end
            ]
        Ice ; At this point, the 'Ice has become sea. :)
        ]
    ]