Матчинг по алгебраическим типам в Hope, перетёкший в последовавшие функциональные языки и сейчас перетекающий в матчинг по типам в мейнстриме.
По моим наблюдениям, степени выразительности сопоставления с образцом никогда не бывает достаточно. Поэтому не так уж много толку от встроенной реализации в ЯП. Если конечно речь не о DSL.
К примеру, в том же SNOBOL был откат и работа с образцами, как с объектами первого класса. Но зато не было работы на уровне термов, что есть в "огрызках" :)