import Test.DocTest main :: IO () main = doctest $ ["-isrc" ] ++ ghcExts ++ files ghcExts :: [String] ghcExts = map ("-X" ++) [ "TypeFamilies" , "GADTs" , "KindSignatures" , "DataKinds" , "TypeOperators" , "ConstraintKinds" , "PolyKinds" , "RankNTypes" , "TypeApplications" , "ScopedTypeVariables" , "PatternSynonyms" , "ViewPatterns" , "TupleSections" , "MultiParamTypeClasses" , "LambdaCase" , "TupleSections" , "StandaloneDeriving" , "GeneralizedNewtypeDeriving" , "DeriveFunctor" , "DeriveFoldable" , "DeriveTraversable" , "DeriveGeneric" , "FlexibleInstances" , "FlexibleContexts" , "DerivingStrategies" , "DerivingVia" ] files :: [String] files = map toFile modules toFile :: String -> String toFile = (\s -> "src/" <> s <> ".hs") . replace '.' '/' replace :: Eq a => a -> a -> [a] -> [a] replace a b = go where go [] = [] go (c:cs) | c == a = b:go cs | otherwise = c:go cs modules :: [String] modules = [ "Data.PlaneGraph.IO" , "Data.Geometry.Point" , "Data.Geometry.Vector" , "Data.Geometry.Transformation" , "Data.Geometry.Line" , "Data.Geometry.Line.Internal" , "Data.Geometry.Interval" , "Data.Geometry.LineSegment" , "Data.Geometry.PolyLine" , "Data.Geometry.Polygon" , "Data.Geometry.Ball" , "Data.Geometry.Box" , "Data.Geometry.HyperPlane" -- , "Algorithms.Geometry.HiddenSurfaceRemoval.HiddenSurfaceRemoval" , "Algorithms.Geometry.ConvexHull.Naive" , "Algorithms.Geometry.ConvexHull.JarvisMarch" , "Algorithms.Geometry.SoS.Orientation" , "Algorithms.Geometry.InPolygon" ]