Added function type constraints