type declarations and custom data type syntax