WIP compile-time type checking