Irrefutable pattern

ID: irrefutable-pattern

A pattern that does not force its matched value merely to establish the match. A Haskell pattern written with ~ can defer evaluation of a recursive pair until one component is demanded. This can preserve productivity in definitions involving lazy evaluation. It does not make every later use of the components terminate.

New to topics? Read the docs here!