------------------------------------------------------------------------ -- The Agda standard library -- -- A way to specify that a function's argument takes a default value -- if the argument is not passed explicitly. ------------------------------------------------------------------------ {-# OPTIONS --cubical-compatible --safe #-} module Data.Default where -- An argument of type `WithDefault {a} {A} x` is an argument of type -- `A` that happens to default to `x` if no other value is specified -- (as long as the `default` instance is in scope) infixl 0 _! record WithDefault {a} {A : Set a} (x : A) : Set a where constructor _! field value : A open WithDefault public instance default : ∀ {a} {A : Set a} {x : A} → WithDefault x default {x = x} .value = x -- See README.Data.Default for an example