@@ -25,7 +25,7 @@ Elm.Native.Show.make = function(elm) {
2525 return "'" + addSlashes(v) + "'";
2626 } else if (type === "string") {
2727 return '"' + addSlashes(v) + '"';
28− } else if (type === "object" && '_' in v) {
28+ } else if (type === "object" && '_' in v && probablyPublic(v)) {
2929 var output = [];
3030 for (var k in v._) {
3131 for (var i = v._[k].length; i--; ) {
@@ -91,5 +91,26 @@ Elm.Native.Show.make = function(elm) {
9191 .replace(/\"/g, '\\"');
9292 }
9393
94+ function probablyPublic(v) {
95+ var keys = Object.keys(v);
96+ var len = keys.length;
97+ if (len === 3
98+ && 'props' in v
99+ && 'element' in v) return false;
100+ if (len === 5
101+ && 'horizontal' in v
102+ && 'vertical' in v
103+ && 'x' in v
104+ && 'y' in v) return false;
105+ if (len === 7
106+ && 'theta' in v
107+ && 'scale' in v
108+ && 'x' in v
109+ && 'y' in v
110+ && 'alpha' in v
111+ && 'form' in v) return false;
112+ return true;
113+ }
114+
94115 return elm.Native.Show.values = { show:toString };
95116};