Tydi-lang: a language for typed streaming hardware