Incorrect typing for nested list parameters
Nested list parameters are not handled correctly during expansion. Consider the following template:
@prefix lanc: <http://chris/kind/0.1/> .
@prefix ottr: <http://ns.ottr.xyz/0.4/> .
@prefix ax: <http://tpl.ottr.xyz/owl/axiom/0.1/> .
lanc:SubObjectIntersections[
LUB<ottr:IRI> ?blank515,
NEList<NEList<LUB<ottr:IRI>>> ?blank517
] :: {
cross | ax:SubObjectIntersectionOf(?blank515, ++?blank517)
} .
However, trying to expand the instance lanc:SubObjectIntersections(ex:A, ((ex:B1, ex:B2, ex:B3), (ex:C1, ex:C2, ex:C3))) .
produces the following error:
[ERROR] Type error in template http://chris/kind/0.1/SubObjectIntersections: incompatible argument and parameter type. The template contains a value ?blank517 : NEList<NEList<LUB<ottr:IRI>>> which has the type NEList<NEList<LUB<ottr:IRI>>> and which is used as argument to a parameter with the incompatible type ottr:IRI in instance cross | http://tpl.ottr.xyz/owl/axiom/0.1/SubObjectIntersectionOf(?blank515 : LUB<ottr:IRI>, ++?blank517 : NEList<NEList<LUB<ottr:IRI>>>) (arg no. 2).
Note that ?blank517
has type NEList<NEList<ottr:IRI>>
. So, ++?blank517
has type NEList<ottr:IRI>
and not ottr:IRI
as stated in the error.