     case string(String)
     case array([Context])
     case dictionary([String: Context])
-
-    var dictionary: [String:Context]? {
-        guard case let .dictionary(dict) = self else {
-            return nil
-        }
-        return dict
-    }
-
-    var array: [Context]? {
-        guard case let .array(array) = self else {
-            return nil
-        }
-        return array
-    }
 
     var isTruthy: Bool {
         switch self {

                continue
            }

            if let innerContexts = innerContext.array {
                out += innerContexts.map { render(ast: innerAST, contextStack: [$0] + contextStack) }.joined(separator: "")
            } else {
                out += render(ast: innerAST, contextStack: [innerContext] + contextStack)

                return self.first(where: { _ in true })
            }
            for context in self {
                if
                    case let .dictionary(dictionary) = context,
                    let value = dictionary[variable] {
                    return value
                }
            }
