     
     public var description: String {
         switch self {
-        case let .string(string): return string
-        case let .boolean(bool): return "\(bool)"
-        case let .integer(integer): return "\(integer)"
-        case let .float(float): return "\(float)"
         case let .object(object): return "\(object)"
         case let .array(array): return "\(array)"
         case let .template(template): return template.description
+        case let .integer(integer): return "\(integer)"
+        case let .boolean(bool): return "\(bool)"
+        case let .any(other): return "\(other)"
         }
     }
 }

            }
        case let .scope(name, flag, elements):
            switch stack[name] ?? false {
            case let .boolean(bool):
                if flag {
                    if bool {
                        return elements.lazy.map { $0.render(stack: stack) }.joined()
                    }
                } else if !bool {
                    return elements.lazy.map { $0.render(stack: stack) }.joined()
                }
            case let .integer(count):
                if flag {
                    if count > 0 {
                        return (0..<count).lazy.map {
                            var stack = stack
                            stack[name] = .integer($0)
                            return elements.lazy.map { $0.render(stack: stack) }.joined()
                            }.joined()
                    }
                } else if count == 0 {
                    return elements.lazy.map { $0.render(stack: stack) }.joined()
                }
            case let .object(object):
                if flag {
                    var stack = stack

        self = .integer(val.toIntMax())
    }
    public init(_ val: Float) {
        self = .any(val)
    }
    public init(_ val: Double) {
        self = .any(val)
    }
    public init(_ val: String) {
        self = .any(val)
    }
    public init(_ val: [String: SDMarker.Value]) {
        self = .object(val)
