Source code on Github
{-# OPTIONS --cubical-compatible #-}
module Class.Default.Instances where

open import Class.Prelude
open import Class.Default.Core

instance
  Default-⊤ = Default      λ where .def  tt
  Default-𝔹 = Default Bool  λ where .def  true
  Default-ℕ = Default      λ where .def  zero
  Default-ℤ = Default      λ where .def  ℤ.pos def

  Default-Maybe : Default (Maybe A)
  Default-Maybe .def = nothing

  Default-List : Default (List A)
  Default-List .def = []

  Default-Fin : Default (Fin (suc n))
  Default-Fin .def = Fin.zero

  Default-→ :  Default B   Default (A  B)
  Default-→ .def = const def

  module _  _ : Default A   _ : Default B  where
    Default-× = Default (A × B)  λ where .def  def , def
    Default-⊎ = Default (A  B)  λ where .def  inj₁ def