module HaskellWorks.Data.MQuery.AtLeastSize where class AtLeastSize a where atLeastSize :: a -> Int -> Bool instance AtLeastSize [a] where atLeastSize :: [a] -> Int -> Bool atLeastSize [a] _ Int 0 = Bool True atLeastSize (a _:[a] as) Int n | Int n Int -> Int -> Bool forall a. Ord a => a -> a -> Bool > Int 0 = [a] -> Int -> Bool forall a. AtLeastSize a => a -> Int -> Bool atLeastSize [a] as (Int n Int -> Int -> Int forall a. Num a => a -> a -> a - Int 1) atLeastSize [a] _ Int _ = Bool False