{-# LANGUAGE FlexibleInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Data.GenValidity.Path where import Data.GenValidity import Data.Validity.Path () import Path import Path.Internal import Test.QuickCheck.Gen instance GenValid (Path Abs File) where genValid :: Gen (Path Abs File) genValid = (FilePath -> Path Abs File forall b t. FilePath -> Path b t Path (FilePath -> Path Abs File) -> (FilePath -> FilePath) -> FilePath -> Path Abs File forall b c a. (b -> c) -> (a -> b) -> a -> c . (Char '/' Char -> FilePath -> FilePath forall a. a -> [a] -> [a] :) (FilePath -> Path Abs File) -> Gen FilePath -> Gen (Path Abs File) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen FilePath forall a. GenValid a => Gen a genValid) Gen (Path Abs File) -> (Path Abs File -> Bool) -> Gen (Path Abs File) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` Path Abs File -> Bool forall a. Validity a => a -> Bool isValid shrinkValid :: Path Abs File -> [Path Abs File] shrinkValid (Path FilePath s) = (Path Abs File -> Bool) -> [Path Abs File] -> [Path Abs File] forall a. (a -> Bool) -> [a] -> [a] filter Path Abs File -> Bool forall a. Validity a => a -> Bool isValid ([Path Abs File] -> [Path Abs File]) -> [Path Abs File] -> [Path Abs File] forall a b. (a -> b) -> a -> b $ FilePath -> Path Abs File forall b t. FilePath -> Path b t Path (FilePath -> Path Abs File) -> [FilePath] -> [Path Abs File] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> FilePath -> [FilePath] forall a. GenValid a => a -> [a] shrinkValid FilePath s instance GenValid (Path Abs Dir) where genValid :: Gen (Path Abs Dir) genValid = (FilePath -> Path Abs Dir forall b t. FilePath -> Path b t Path (FilePath -> Path Abs Dir) -> (FilePath -> FilePath) -> FilePath -> Path Abs Dir forall b c a. (b -> c) -> (a -> b) -> a -> c . (Char '/' Char -> FilePath -> FilePath forall a. a -> [a] -> [a] :) (FilePath -> FilePath) -> (FilePath -> FilePath) -> FilePath -> FilePath forall b c a. (b -> c) -> (a -> b) -> a -> c . (FilePath -> FilePath -> FilePath forall a. [a] -> [a] -> [a] ++ FilePath "/") (FilePath -> Path Abs Dir) -> Gen FilePath -> Gen (Path Abs Dir) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen FilePath forall a. GenValid a => Gen a genValid) Gen (Path Abs Dir) -> (Path Abs Dir -> Bool) -> Gen (Path Abs Dir) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` Path Abs Dir -> Bool forall a. Validity a => a -> Bool isValid shrinkValid :: Path Abs Dir -> [Path Abs Dir] shrinkValid (Path FilePath s) = (Path Abs Dir -> Bool) -> [Path Abs Dir] -> [Path Abs Dir] forall a. (a -> Bool) -> [a] -> [a] filter Path Abs Dir -> Bool forall a. Validity a => a -> Bool isValid ([Path Abs Dir] -> [Path Abs Dir]) -> [Path Abs Dir] -> [Path Abs Dir] forall a b. (a -> b) -> a -> b $ FilePath -> Path Abs Dir forall b t. FilePath -> Path b t Path (FilePath -> Path Abs Dir) -> [FilePath] -> [Path Abs Dir] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> FilePath -> [FilePath] forall a. GenValid a => a -> [a] shrinkValid FilePath s instance GenValid (Path Rel File) where genValid :: Gen (Path Rel File) genValid = (FilePath -> Path Rel File forall b t. FilePath -> Path b t Path (FilePath -> Path Rel File) -> Gen FilePath -> Gen (Path Rel File) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen FilePath forall a. GenValid a => Gen a genValid) Gen (Path Rel File) -> (Path Rel File -> Bool) -> Gen (Path Rel File) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` Path Rel File -> Bool forall a. Validity a => a -> Bool isValid shrinkValid :: Path Rel File -> [Path Rel File] shrinkValid (Path FilePath s) = (Path Rel File -> Bool) -> [Path Rel File] -> [Path Rel File] forall a. (a -> Bool) -> [a] -> [a] filter Path Rel File -> Bool forall a. Validity a => a -> Bool isValid ([Path Rel File] -> [Path Rel File]) -> [Path Rel File] -> [Path Rel File] forall a b. (a -> b) -> a -> b $ FilePath -> Path Rel File forall b t. FilePath -> Path b t Path (FilePath -> Path Rel File) -> [FilePath] -> [Path Rel File] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> FilePath -> [FilePath] forall a. GenValid a => a -> [a] shrinkValid FilePath s instance GenValid (Path Rel Dir) where genValid :: Gen (Path Rel Dir) genValid = (FilePath -> Path Rel Dir forall b t. FilePath -> Path b t Path (FilePath -> Path Rel Dir) -> (FilePath -> FilePath) -> FilePath -> Path Rel Dir forall b c a. (b -> c) -> (a -> b) -> a -> c . (FilePath -> FilePath -> FilePath forall a. [a] -> [a] -> [a] ++ FilePath "/") (FilePath -> Path Rel Dir) -> Gen FilePath -> Gen (Path Rel Dir) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen FilePath forall a. GenValid a => Gen a genValid) Gen (Path Rel Dir) -> (Path Rel Dir -> Bool) -> Gen (Path Rel Dir) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` Path Rel Dir -> Bool forall a. Validity a => a -> Bool isValid shrinkValid :: Path Rel Dir -> [Path Rel Dir] shrinkValid (Path FilePath s) = (Path Rel Dir -> Bool) -> [Path Rel Dir] -> [Path Rel Dir] forall a. (a -> Bool) -> [a] -> [a] filter Path Rel Dir -> Bool forall a. Validity a => a -> Bool isValid ([Path Rel Dir] -> [Path Rel Dir]) -> [Path Rel Dir] -> [Path Rel Dir] forall a b. (a -> b) -> a -> b $ FilePath -> Path Rel Dir forall b t. FilePath -> Path b t Path (FilePath -> Path Rel Dir) -> [FilePath] -> [Path Rel Dir] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> FilePath -> [FilePath] forall a. GenValid a => a -> [a] shrinkValid FilePath s