#!/usr/bin/lua local pt = require('pt') t = { A = { a = 'beep', b = 'boop', c = 'burp', }, B = { a = 'nude', b = 'dude', c = 'lewd', }, C = 'hello', } t.A.d = t.B t.B.d = t.A t.D = t function dump(t, fn, seen) if t == nil then return end local file = io.open(fn, "w") if not file then io.write("Failed opening ", fn, "\n") return end local writer = function(...) file:write(...) end seen = pt{t, writer=writer, seen=seen} file:close() return seen end pt{t} dump(_G, '_G.yml')