{-# OPTIONS --warning=error --safe --without-K #-} open import LogicalFormulae open import Numbers.Naturals.Semiring -- for length open import Numbers.Naturals.Order open import Semirings.Definition open import Maybe module Lists.Lists where open import Lists.Definition public open import Lists.Length public open import Lists.Concat public open import Lists.Map.Map public open import Lists.Reversal.Reversal public open import Lists.Monad public open import Lists.Filter.AllTrue public open import Lists.Fold.Fold public replicate : {a : _} {A : Set a} (n : ℕ) (x : A) → List A replicate zero x = [] replicate (succ n) x = x :: replicate n x head : {a : _} {A : Set a} (l : List A) (pr : 0