// Souffle - A Datalog Compiler
// Copyright (c) 2020, The Souffle Developers. 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

//
// Extended subtypes 3
//
// Check type deduction on extended subtypes
//

.type symbolA <: symbol
.type symbolB <: symbolA
.type symbolC <: symbolB


.decl SymbolChain(a: symbolA, b: symbolB, c: symbolC)
SymbolChain("meowA", "meowB", "meowC").
SymbolChain(a, a, a) :- SymbolChain(a, _, _).
SymbolChain(b, b, b) :- SymbolChain(_, b, _).

.output SymbolChain(IO=stdout)
