// Souffle - A Datalog Compiler
// Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved
// Licensed under the Universal Permissive License v 1.0 as shown at:
// - https://opensource.org/licenses/UPL
// - <souffle root>/licenses/SOUFFLE-UPL.txt

//
// Check nested concatenation
//

.type A <: symbol

.decl Y (a:A, b:A)
.decl Z (a:A, b:A, c:A)
.output Z ()

Y("a","b").
Y("c","d").

Z(a,b, cat(cat(a,b), a)) :- Y(a,b).
