diff --git a/src/printing.jl b/src/printing.jl
index 53143776b7f6b1020d499872ee2f48d9c2939316..1830ba0462122c80d9b790f67ffb216bb4e4912d 100644
--- a/src/printing.jl
+++ b/src/printing.jl
@@ -1,5 +1,5 @@
 module Printing
-import JuMP: value
+import JuMP: value, AbstractJuMPScalar
 import Printf: @sprintf
 import ..Variables: VariableType, variables, AbstractBlock, Variable
 
@@ -21,50 +21,26 @@ end
 
 _robust_value(possible_tuple::Tuple) = _robust_value([possible_tuple...])
 _robust_value(possible_tuple::NamedTuple) = NamedTuple(k => _robust_value(v) for (k, v) in pairs(possible_tuple))
+_robust_value(other) = other
 
 
 function Base.show(io::IO, block::AbstractBlock)
     print(io, nameof(typeof(block)), "(")
     for name in propertynames(block)
-        ft = fieldtype(typeof(block), name)
+        value = _robust_value(getproperty(block, name))
         if (
-            ft == VariableType ||
-            (ft <: AbstractVector && eltype(ft) == VariableType) ||
-            string(name)[1] == '_'
-        )
-            continue
-        end
-        if (
-            ft <: Union{Nothing, AbstractBlock} ||
-            (ft <: AbstractVector && eltype(ft) <: AbstractBlock) ||
-            (ft <: AbstractVector && eltype(ft) <: Pair)
+            value isa AbstractJuMPScalar ||
+            (value isa AbstractVector{<:AbstractJuMPScalar}) ||
+            string(name)[1] == '_' ||
+            isnothing(value) ||
+            (value isa AbstractVector{<:AbstractBlock}) ||
+            (value isa AbstractVector{<:Pair})
         )
             continue
         end
 
         print(io, name, "=", repr(getproperty(block, name)), ", ")
     end
-
-    for fn_name in names(variables, all=true)
-        fn = getproperty(variables, fn_name)
-        if !(fn isa Variable)
-            continue
-        end
-
-        try
-            numeric_value = _robust_value(fn(block))
-            if isnothing(numeric_value)
-                continue
-            end
-            as_string = string(numeric_value)
-            if length(as_string) > 50
-                continue
-            end
-            print(io, "$(fn_name)=$(as_string), ")
-        catch e
-            continue
-        end
-    end
     print(io, ")")
 end