module Test.Hspec.SmallCheck.Types where import Prelude () import Test.Hspec.SmallCheck.Compat import Data.List import Test.Hspec.Core.Spec (Location(..)) data Result = Failure (Maybe Location) Reason deriving (Eq, Show, Read) data Reason = Reason String | ExpectedActual String String String deriving (Eq, Show, Read) parseResult :: String -> (String, Maybe Result) parseResult xs = case [(x, Just y) | (x, Just y) <- zip (inits xs) (map readMaybe $ tails xs)] of r : _ -> r [] -> (xs, Nothing) concatPrefix :: String -> String -> Maybe String concatPrefix a b = case filter (not . null) $ [a, b] of [] -> Nothing xs -> Just (intercalate "\n" xs)