{-# 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 = (forall b t. [Char] -> Path b t Path forall b c a. (b -> c) -> (a -> b) -> a -> c . (Char '/' forall a. a -> [a] -> [a] :) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => Gen a genValid) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` forall a. Validity a => a -> Bool isValid shrinkValid :: Path Abs File -> [Path Abs File] shrinkValid (Path [Char] s) = forall a. (a -> Bool) -> [a] -> [a] filter forall a. Validity a => a -> Bool isValid forall a b. (a -> b) -> a -> b $ forall b t. [Char] -> Path b t Path forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => a -> [a] shrinkValid [Char] s instance GenValid (Path Abs Dir) where genValid :: Gen (Path Abs Dir) genValid = (forall b t. [Char] -> Path b t Path forall b c a. (b -> c) -> (a -> b) -> a -> c . (Char '/' forall a. a -> [a] -> [a] :) forall b c a. (b -> c) -> (a -> b) -> a -> c . (forall a. [a] -> [a] -> [a] ++ [Char] "/") forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => Gen a genValid) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` forall a. Validity a => a -> Bool isValid shrinkValid :: Path Abs Dir -> [Path Abs Dir] shrinkValid (Path [Char] s) = forall a. (a -> Bool) -> [a] -> [a] filter forall a. Validity a => a -> Bool isValid forall a b. (a -> b) -> a -> b $ forall b t. [Char] -> Path b t Path forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => a -> [a] shrinkValid [Char] s instance GenValid (Path Rel File) where genValid :: Gen (Path Rel File) genValid = (forall b t. [Char] -> Path b t Path forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => Gen a genValid) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` forall a. Validity a => a -> Bool isValid shrinkValid :: Path Rel File -> [Path Rel File] shrinkValid (Path [Char] s) = forall a. (a -> Bool) -> [a] -> [a] filter forall a. Validity a => a -> Bool isValid forall a b. (a -> b) -> a -> b $ forall b t. [Char] -> Path b t Path forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => a -> [a] shrinkValid [Char] s instance GenValid (Path Rel Dir) where genValid :: Gen (Path Rel Dir) genValid = (forall b t. [Char] -> Path b t Path forall b c a. (b -> c) -> (a -> b) -> a -> c . (forall a. [a] -> [a] -> [a] ++ [Char] "/") forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => Gen a genValid) forall a. Gen a -> (a -> Bool) -> Gen a `suchThat` forall a. Validity a => a -> Bool isValid shrinkValid :: Path Rel Dir -> [Path Rel Dir] shrinkValid (Path [Char] s) = forall a. (a -> Bool) -> [a] -> [a] filter forall a. Validity a => a -> Bool isValid forall a b. (a -> b) -> a -> b $ forall b t. [Char] -> Path b t Path forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => a -> [a] shrinkValid [Char] s