Abstract Types

Kind 2 supports Lustre’s abstract types, which are user-declared types without definitions. Abstract types are declared with the syntax type <name>. Below is a simple Lustre file that declares an identity node that takes an input of (abstract) type T and returns an output of type T equal to the input.

type T;
function id_T (x: T) returns (y: T);
let
    y = x;
tel