module Palindrome where open import Prelude open import Data.Vec open import Data.Nat.Properties private variable n m : ℕ -- module _ (_≟_ : Discrete A) where -- go : Vec A n → Vec A m → m ≤ n → ∃ k × Vec A k × Bool -- go (_ ∷ ys) (_ ∷ []) _ = _ , ys , true -- go ys [] _ = _ , ys , true -- go (y ∷ ys) (_ ∷ _ ∷ zs) p = f y (go ys zs {!!}) -- where -- f : A → ∃ k × Vec A k × Bool → ∃ k × Vec A k × Bool -- f x (_ , y ∷ ys , r) = (_ , ys , does (x ≟ y) and r) -- isPal : Vec A n → Bool -- isPal xs = go xs xs .snd