// Souffle - A Datalog Compiler
// Copyright (c) 2019, 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

// Tests the use of component types in union type declarations

.comp hello {
    .type thing <: symbol
}

.comp bye {
    .type thing1 <: symbol
    .type thing2 <: symbol

    .init subhello = hello
}

.type other_type <: symbol

.init helloinit = hello
.init byeinit = bye

.type blah = helloinit.thing
.type bleh = helloinit.thing | byeinit.thing1 | byeinit.thing2 | byeinit.subhello.thing | other_type
