packages feed

idris-0.9.5: lib/Prelude/Fin.idr

module Prelude.Fin

import Prelude.Nat

data Fin : Nat -> Set where
    fO : Fin (S k)
    fS : Fin k -> Fin (S k)

instance Eq (Fin n) where
   (==) = eq where
     eq : Fin m -> Fin m -> Bool
     eq fO fO = True
     eq (fS k) (fS k') = eq k k'
     eq _ _ = False

wkn : Fin n -> Fin (S n)
wkn fO = fO
wkn (fS k) = fS (wkn k)