Pošalji tekstualnu poruku: Verifying Higher-Order Functional Programs with Pattern-Matching Algebraic Data Types