typesafety? yes