fact: Definition hd {X : Type} (l : list X) : TemplateMonad X := match l with | nil => tmFail "hd: empty list" | x :: _ => ret x end.
imports: Ascii String Undecidability.L(Util.L_facts) MetaCoq(Template.All Template.Checker) Undecidability.Shared.Libs.PSL.Base MetaCoq.Utils.bytestring