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