aboutsummaryrefslogtreecommitdiff
path: root/semestr-3/pf/lista8/test
diff options
context:
space:
mode:
Diffstat (limited to 'semestr-3/pf/lista8/test')
-rw-r--r--semestr-3/pf/lista8/test/.gitignore2
-rw-r--r--semestr-3/pf/lista8/test/ChangeLog.md3
-rw-r--r--semestr-3/pf/lista8/test/README.md1
-rw-r--r--semestr-3/pf/lista8/test/Setup.hs2
-rw-r--r--semestr-3/pf/lista8/test/app/Main.hs154
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_hibin0 -> 1753 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_obin0 -> 3200 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.hibin0 -> 1741 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_hibin0 -> 15700 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_obin0 -> 26816 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.hibin0 -> 15688 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/Paths_test.hs50
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/cabal_macros.h132
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace-ghc8.8.4.sobin0 -> 44680 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace.abin0 -> 37426 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cachebin0 -> 40 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cache.lock0
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/Paths_test.hs50
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/cabal_macros.h140
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cachebin0 -> 40 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cache.lock0
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/cache/plan.json1
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cachebin0 -> 2284 bytes
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cache.lock0
-rw-r--r--semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/test-0.1.0.0-inplace.conf34
-rw-r--r--semestr-3/pf/lista8/test/package.yaml48
-rw-r--r--semestr-3/pf/lista8/test/src/Lib.hs6
-rw-r--r--semestr-3/pf/lista8/test/test.cabal62
-rw-r--r--semestr-3/pf/lista8/test/test/Spec.hs2
29 files changed, 687 insertions, 0 deletions
diff --git a/semestr-3/pf/lista8/test/.gitignore b/semestr-3/pf/lista8/test/.gitignore
new file mode 100644
index 0000000..c368d45
--- /dev/null
+++ b/semestr-3/pf/lista8/test/.gitignore
@@ -0,0 +1,2 @@
+.stack-work/
+*~ \ No newline at end of file
diff --git a/semestr-3/pf/lista8/test/ChangeLog.md b/semestr-3/pf/lista8/test/ChangeLog.md
new file mode 100644
index 0000000..ed48144
--- /dev/null
+++ b/semestr-3/pf/lista8/test/ChangeLog.md
@@ -0,0 +1,3 @@
+# Changelog for test
+
+## Unreleased changes
diff --git a/semestr-3/pf/lista8/test/README.md b/semestr-3/pf/lista8/test/README.md
new file mode 100644
index 0000000..83c831f
--- /dev/null
+++ b/semestr-3/pf/lista8/test/README.md
@@ -0,0 +1 @@
+# test
diff --git a/semestr-3/pf/lista8/test/Setup.hs b/semestr-3/pf/lista8/test/Setup.hs
new file mode 100644
index 0000000..9a994af
--- /dev/null
+++ b/semestr-3/pf/lista8/test/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/semestr-3/pf/lista8/test/app/Main.hs b/semestr-3/pf/lista8/test/app/Main.hs
new file mode 100644
index 0000000..79c89fd
--- /dev/null
+++ b/semestr-3/pf/lista8/test/app/Main.hs
@@ -0,0 +1,154 @@
+-- module Main where
+
+silnia :: (Eq p, Num p) => p -> p
+silnia n = if n == 0 then 1 else n * silnia (n -1)
+
+fibs :: [Integer]
+fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
+
+-- Zadanie 1
+
+f :: [Integer] -> [Integer]
+f (p : xs) = filter (\x -> x `mod` p /= 0) xs
+
+primes :: [Integer]
+primes = map head (iterate f [2 ..])
+
+-- Zadanie 2
+
+primes' :: [Integer]
+primes' = 2 : [p | p <- [3 ..], all (\q -> p `mod` q /= 0) (takeWhile (\q -> q * q <= p) primes')]
+
+-- Zadanie 3
+
+permi :: [a] -> [[a]]
+permi [] = [[]]
+permi (x : []) = [[x]]
+permi (p : xs) = concat [(iter [] perm) | perm <- permi xs]
+ where
+ iter pref [] = [pref ++ [p]]
+ iter pref suf = (pref ++ (p : suf)) : (iter (pref ++ [head suf]) (tail suf))
+
+perms :: [a] -> [[a]]
+perms [] = [[]]
+perms (x : []) = [[x]]
+perms xs = iter [] [] xs
+ where
+ iter res pref [] = res
+ iter res pref (x : xs) = iter (res ++ (map (\ys -> x : ys) (perms (pref ++ xs)))) (pref ++ [x]) xs
+
+-- Zadanie 4
+
+sublist :: [a] -> [[a]]
+sublist [] = [[]]
+sublist (x : xs) = sxs ++ (map (\xs -> x : xs) sxs)
+ where
+ sxs = sublist xs
+
+-- Zadanie 5
+
+qsortBy :: (a -> a -> Bool) -> [a] -> [a]
+qsortBy _ [] = []
+qsortBy _ [x] = [x]
+qsortBy cmp (x : xs) = le ++ [x] ++ ge
+ where
+ le = qsortBy cmp [y | y <- xs, cmp x y]
+ ge = qsortBy cmp [y | y <- xs, cmp y x]
+
+-- Zadanie 6
+
+-- subtable :: [a] -> Int -> [b] -> ([a] -> [a]) -> [a]
+-- subtable [] _ _ _ = []
+-- subtable _ _ [] _ = []
+-- subtable xs maxLen ys f = getSubtableBounded (f (take maxLen xs)) ys
+-- where
+-- getSubtableBounded [] _ = []
+-- getSubtableBounded _ [] = []
+-- getSubtableBounded (x : xs) (_ : ys) = x : (getSubtableBounded xs ys)
+
+-- natsBounded xs = iter [] 1 xs
+-- where
+-- iter res _ [] = res
+-- iter res num (x : xs) = iter (res ++ [num]) (num + 1) xs
+
+-- generateCantorTable :: [a] -> [b] -> ([a] -> [a]) -> [a]
+-- generateCantorTable _ [] f = []
+-- generateCantorTable [] _ f = []
+-- generateCantorTable xs ys f = concat [subtable xs maxLen ys f | maxLen <- natsBounded xs]
+
+-- (><) :: [a] -> [b] -> [(a, b)]
+-- (><) xs ys = zip (generateCantorTable xs ys reverse) (generateCantorTable ys xs id)
+
+-- (><) :: [a] -> [b] -> [(a, b)]
+-- (><) [] _ = []
+-- (><) _ [] = []
+-- (><) xs ys = iterXS xs ys
+-- where iterXS xs ys
+
+-- Zadanie 7
+
+data Tree a = Node (Tree a) a (Tree a) | Leaf
+
+data Set a = Fin (Tree a) | Cofin (Tree a)
+
+treeFromList :: Ord a => [a] -> Tree a
+treeFromList [] = Leaf
+treeFromList [x] = Node Leaf x Leaf
+treeFromList xs =
+ let center xs =
+ let iter pref crawl [] = (pref, crawl)
+ iter pref crawl [x] = (pref, crawl)
+ iter pref crawl (x : y : xs) = iter (head crawl : pref) (tail crawl) xs
+ in iter [] xs xs
+ in let (st, nd) = center xs in Node (treeFromList (reverse st)) (head nd) (treeFromList (tail nd))
+
+setFromList :: Ord a => [a] -> Set a
+setFromList xs = Fin (treeFromList xs)
+
+setEmpty :: Ord a => Set a
+setEmpty = Fin Leaf
+
+setFull :: Ord a => Set a
+setFull = Cofin Leaf
+
+setToList :: Ord a => Set a -> [a]
+setToList (Fin t) = treeToList t
+setToList (Cofin t) = treeToList t
+
+treeToList :: Ord a => Tree a -> [a]
+treeToList Leaf = []
+treeToList (Node t1 a t2) = treeToList t1 ++ [a] ++ treeToList t2
+
+merge :: Ord a => [a] -> [a] -> [a]
+merge [] ys = ys
+merge xs [] = xs
+merge (x : xs) (y : ys) = if x < y then x : (merge xs (y : ys)) else y : (merge (x : xs) ys)
+
+setUnion :: Ord a => Set a -> Set a -> Set a
+setUnion (Fin t1) (Fin t2) =
+ setFromList (treeToList t1 `merge` treeToList t2)
+setUnion (Fin t1) (Cofin t2) =
+ Cofin (treeFromList [x | x <- treeToList t2, x `notElem` treeToList t1])
+setUnion (Cofin t1) (Fin t2) = setUnion (Fin t2) (Cofin t1)
+setUnion (Cofin t1) (Cofin t2) =
+ Cofin (treeFromList [x | x <- treeToList t1, x `elem` treeToList t2])
+
+setIntersection :: Ord a => Set a -> Set a -> Set a
+setIntersection (Fin t1) (Fin t2) =
+ setFromList [x | x <- treeToList t1, x `elem` treeToList t2]
+setIntersection (Fin t1) (Cofin t2) =
+ setFromList [x | x <- treeToList t1, x `notElem` treeToList t2]
+setIntersection (Cofin t1) (Fin t2) =
+ setIntersection (Fin t1) (Cofin t2)
+
+-- setIntersection (Cofin t1) (Cofin t2) =
+-- Cofin (treeFromList [x | x <- treeToList t1, ])
+
+treeMember :: Ord a => a -> Tree a -> Bool
+treeMember _ Leaf = False
+treeMember x (Node t1 y t2) =
+ (x == y) || if x < y then treeMember x t1 else treeMember x t2
+
+setMember :: Ord a => a -> Set a -> Bool
+setMember x (Cofin t) = not (x `treeMember` t)
+setMember x (Fin t) = x `treeMember` t \ No newline at end of file
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_hi b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_hi
new file mode 100644
index 0000000..35f684e
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_hi
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_o b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_o
new file mode 100644
index 0000000..7936b98
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.dyn_o
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.hi b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.hi
new file mode 100644
index 0000000..e5ec219
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Lib.hi
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_hi b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_hi
new file mode 100644
index 0000000..427a17b
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_hi
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_o b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_o
new file mode 100644
index 0000000..ca9d7ee
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.dyn_o
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.hi b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.hi
new file mode 100644
index 0000000..2667571
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/Paths_test.hi
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/Paths_test.hs b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/Paths_test.hs
new file mode 100644
index 0000000..1d31518
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/Paths_test.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE NoRebindableSyntax #-}
+{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
+module Paths_test (
+ version,
+ getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,
+ getDataFileName, getSysconfDir
+ ) where
+
+import qualified Control.Exception as Exception
+import Data.Version (Version(..))
+import System.Environment (getEnv)
+import Prelude
+
+#if defined(VERSION_base)
+
+#if MIN_VERSION_base(4,0,0)
+catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
+#else
+catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a
+#endif
+
+#else
+catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
+#endif
+catchIO = Exception.catch
+
+version :: Version
+version = Version [0,1,0,0] []
+bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath
+
+bindir = "/home/fmalinka/.cabal/bin"
+libdir = "/home/fmalinka/.cabal/lib/x86_64-linux-ghc-8.8.4/test-0.1.0.0-inplace"
+dynlibdir = "/home/fmalinka/.cabal/lib/x86_64-linux-ghc-8.8.4"
+datadir = "/home/fmalinka/.cabal/share/x86_64-linux-ghc-8.8.4/test-0.1.0.0"
+libexecdir = "/home/fmalinka/.cabal/libexec/x86_64-linux-ghc-8.8.4/test-0.1.0.0"
+sysconfdir = "/home/fmalinka/.cabal/etc"
+
+getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath
+getBinDir = catchIO (getEnv "test_bindir") (\_ -> return bindir)
+getLibDir = catchIO (getEnv "test_libdir") (\_ -> return libdir)
+getDynLibDir = catchIO (getEnv "test_dynlibdir") (\_ -> return dynlibdir)
+getDataDir = catchIO (getEnv "test_datadir") (\_ -> return datadir)
+getLibexecDir = catchIO (getEnv "test_libexecdir") (\_ -> return libexecdir)
+getSysconfDir = catchIO (getEnv "test_sysconfdir") (\_ -> return sysconfdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+ dir <- getDataDir
+ return (dir ++ "/" ++ name)
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/cabal_macros.h b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/cabal_macros.h
new file mode 100644
index 0000000..8940df9
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/autogen/cabal_macros.h
@@ -0,0 +1,132 @@
+/* DO NOT EDIT: This file is automatically generated by Cabal */
+
+/* package test-0.1.0.0 */
+#ifndef VERSION_test
+#define VERSION_test "0.1.0.0"
+#endif /* VERSION_test */
+#ifndef MIN_VERSION_test
+#define MIN_VERSION_test(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 1 || \
+ (major1) == 0 && (major2) == 1 && (minor) <= 0)
+#endif /* MIN_VERSION_test */
+
+/* package base-4.13.0.0 */
+#ifndef VERSION_base
+#define VERSION_base "4.13.0.0"
+#endif /* VERSION_base */
+#ifndef MIN_VERSION_base
+#define MIN_VERSION_base(major1,major2,minor) (\
+ (major1) < 4 || \
+ (major1) == 4 && (major2) < 13 || \
+ (major1) == 4 && (major2) == 13 && (minor) <= 0)
+#endif /* MIN_VERSION_base */
+
+/* tool gcc-9 */
+#ifndef TOOL_VERSION_gcc
+#define TOOL_VERSION_gcc "9"
+#endif /* TOOL_VERSION_gcc */
+#ifndef MIN_TOOL_VERSION_gcc
+#define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\
+ (major1) < 9 || \
+ (major1) == 9 && (major2) < 0 || \
+ (major1) == 9 && (major2) == 0 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_gcc */
+
+/* tool ghc-8.8.4 */
+#ifndef TOOL_VERSION_ghc
+#define TOOL_VERSION_ghc "8.8.4"
+#endif /* TOOL_VERSION_ghc */
+#ifndef MIN_TOOL_VERSION_ghc
+#define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\
+ (major1) < 8 || \
+ (major1) == 8 && (major2) < 8 || \
+ (major1) == 8 && (major2) == 8 && (minor) <= 4)
+#endif /* MIN_TOOL_VERSION_ghc */
+
+/* tool ghc-pkg-8.8.4 */
+#ifndef TOOL_VERSION_ghc_pkg
+#define TOOL_VERSION_ghc_pkg "8.8.4"
+#endif /* TOOL_VERSION_ghc_pkg */
+#ifndef MIN_TOOL_VERSION_ghc_pkg
+#define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\
+ (major1) < 8 || \
+ (major1) == 8 && (major2) < 8 || \
+ (major1) == 8 && (major2) == 8 && (minor) <= 4)
+#endif /* MIN_TOOL_VERSION_ghc_pkg */
+
+/* tool haddock-2.23.0 */
+#ifndef TOOL_VERSION_haddock
+#define TOOL_VERSION_haddock "2.23.0"
+#endif /* TOOL_VERSION_haddock */
+#ifndef MIN_TOOL_VERSION_haddock
+#define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\
+ (major1) < 2 || \
+ (major1) == 2 && (major2) < 23 || \
+ (major1) == 2 && (major2) == 23 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_haddock */
+
+/* tool hpc-0.67 */
+#ifndef TOOL_VERSION_hpc
+#define TOOL_VERSION_hpc "0.67"
+#endif /* TOOL_VERSION_hpc */
+#ifndef MIN_TOOL_VERSION_hpc
+#define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 67 || \
+ (major1) == 0 && (major2) == 67 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_hpc */
+
+/* tool hsc2hs-0.68.7 */
+#ifndef TOOL_VERSION_hsc2hs
+#define TOOL_VERSION_hsc2hs "0.68.7"
+#endif /* TOOL_VERSION_hsc2hs */
+#ifndef MIN_TOOL_VERSION_hsc2hs
+#define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 68 || \
+ (major1) == 0 && (major2) == 68 && (minor) <= 7)
+#endif /* MIN_TOOL_VERSION_hsc2hs */
+
+/* tool pkg-config-0.29.1 */
+#ifndef TOOL_VERSION_pkg_config
+#define TOOL_VERSION_pkg_config "0.29.1"
+#endif /* TOOL_VERSION_pkg_config */
+#ifndef MIN_TOOL_VERSION_pkg_config
+#define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 29 || \
+ (major1) == 0 && (major2) == 29 && (minor) <= 1)
+#endif /* MIN_TOOL_VERSION_pkg_config */
+
+/* tool runghc-8.8.4 */
+#ifndef TOOL_VERSION_runghc
+#define TOOL_VERSION_runghc "8.8.4"
+#endif /* TOOL_VERSION_runghc */
+#ifndef MIN_TOOL_VERSION_runghc
+#define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\
+ (major1) < 8 || \
+ (major1) == 8 && (major2) < 8 || \
+ (major1) == 8 && (major2) == 8 && (minor) <= 4)
+#endif /* MIN_TOOL_VERSION_runghc */
+
+/* tool strip-2.34 */
+#ifndef TOOL_VERSION_strip
+#define TOOL_VERSION_strip "2.34"
+#endif /* TOOL_VERSION_strip */
+#ifndef MIN_TOOL_VERSION_strip
+#define MIN_TOOL_VERSION_strip(major1,major2,minor) (\
+ (major1) < 2 || \
+ (major1) == 2 && (major2) < 34 || \
+ (major1) == 2 && (major2) == 34 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_strip */
+
+#ifndef CURRENT_PACKAGE_KEY
+#define CURRENT_PACKAGE_KEY "test-0.1.0.0-inplace"
+#endif /* CURRENT_PACKAGE_KEY */
+#ifndef CURRENT_COMPONENT_ID
+#define CURRENT_COMPONENT_ID "test-0.1.0.0-inplace"
+#endif /* CURRENT_COMPONENT_ID */
+#ifndef CURRENT_PACKAGE_VERSION
+#define CURRENT_PACKAGE_VERSION "0.1.0.0"
+#endif /* CURRENT_PACKAGE_VERSION */
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace-ghc8.8.4.so b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace-ghc8.8.4.so
new file mode 100644
index 0000000..4b2cf0e
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace-ghc8.8.4.so
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace.a b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace.a
new file mode 100644
index 0000000..c561b49
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build/libHStest-0.1.0.0-inplace.a
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cache b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cache
new file mode 100644
index 0000000..b3cae5c
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cache
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cache.lock b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cache.lock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/package.conf.inplace/package.cache.lock
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/Paths_test.hs b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/Paths_test.hs
new file mode 100644
index 0000000..4bd35ee
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/Paths_test.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE NoRebindableSyntax #-}
+{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
+module Paths_test (
+ version,
+ getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,
+ getDataFileName, getSysconfDir
+ ) where
+
+import qualified Control.Exception as Exception
+import Data.Version (Version(..))
+import System.Environment (getEnv)
+import Prelude
+
+#if defined(VERSION_base)
+
+#if MIN_VERSION_base(4,0,0)
+catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
+#else
+catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a
+#endif
+
+#else
+catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
+#endif
+catchIO = Exception.catch
+
+version :: Version
+version = Version [0,1,0,0] []
+bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath
+
+bindir = "/home/fmalinka/.cabal/bin"
+libdir = "/home/fmalinka/.cabal/lib/x86_64-linux-ghc-8.8.4/test-0.1.0.0-inplace-test-exe"
+dynlibdir = "/home/fmalinka/.cabal/lib/x86_64-linux-ghc-8.8.4"
+datadir = "/home/fmalinka/.cabal/share/x86_64-linux-ghc-8.8.4/test-0.1.0.0"
+libexecdir = "/home/fmalinka/.cabal/libexec/x86_64-linux-ghc-8.8.4/test-0.1.0.0"
+sysconfdir = "/home/fmalinka/.cabal/etc"
+
+getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath
+getBinDir = catchIO (getEnv "test_bindir") (\_ -> return bindir)
+getLibDir = catchIO (getEnv "test_libdir") (\_ -> return libdir)
+getDynLibDir = catchIO (getEnv "test_dynlibdir") (\_ -> return dynlibdir)
+getDataDir = catchIO (getEnv "test_datadir") (\_ -> return datadir)
+getLibexecDir = catchIO (getEnv "test_libexecdir") (\_ -> return libexecdir)
+getSysconfDir = catchIO (getEnv "test_sysconfdir") (\_ -> return sysconfdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+ dir <- getDataDir
+ return (dir ++ "/" ++ name)
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/cabal_macros.h b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/cabal_macros.h
new file mode 100644
index 0000000..97ffcdb
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/autogen/cabal_macros.h
@@ -0,0 +1,140 @@
+/* DO NOT EDIT: This file is automatically generated by Cabal */
+
+/* package test-0.1.0.0 */
+#ifndef VERSION_test
+#define VERSION_test "0.1.0.0"
+#endif /* VERSION_test */
+#ifndef MIN_VERSION_test
+#define MIN_VERSION_test(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 1 || \
+ (major1) == 0 && (major2) == 1 && (minor) <= 0)
+#endif /* MIN_VERSION_test */
+
+/* package base-4.13.0.0 */
+#ifndef VERSION_base
+#define VERSION_base "4.13.0.0"
+#endif /* VERSION_base */
+#ifndef MIN_VERSION_base
+#define MIN_VERSION_base(major1,major2,minor) (\
+ (major1) < 4 || \
+ (major1) == 4 && (major2) < 13 || \
+ (major1) == 4 && (major2) == 13 && (minor) <= 0)
+#endif /* MIN_VERSION_base */
+
+/* package test-0.1.0.0 */
+#ifndef VERSION_test
+#define VERSION_test "0.1.0.0"
+#endif /* VERSION_test */
+#ifndef MIN_VERSION_test
+#define MIN_VERSION_test(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 1 || \
+ (major1) == 0 && (major2) == 1 && (minor) <= 0)
+#endif /* MIN_VERSION_test */
+
+/* tool gcc-9 */
+#ifndef TOOL_VERSION_gcc
+#define TOOL_VERSION_gcc "9"
+#endif /* TOOL_VERSION_gcc */
+#ifndef MIN_TOOL_VERSION_gcc
+#define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\
+ (major1) < 9 || \
+ (major1) == 9 && (major2) < 0 || \
+ (major1) == 9 && (major2) == 0 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_gcc */
+
+/* tool ghc-8.8.4 */
+#ifndef TOOL_VERSION_ghc
+#define TOOL_VERSION_ghc "8.8.4"
+#endif /* TOOL_VERSION_ghc */
+#ifndef MIN_TOOL_VERSION_ghc
+#define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\
+ (major1) < 8 || \
+ (major1) == 8 && (major2) < 8 || \
+ (major1) == 8 && (major2) == 8 && (minor) <= 4)
+#endif /* MIN_TOOL_VERSION_ghc */
+
+/* tool ghc-pkg-8.8.4 */
+#ifndef TOOL_VERSION_ghc_pkg
+#define TOOL_VERSION_ghc_pkg "8.8.4"
+#endif /* TOOL_VERSION_ghc_pkg */
+#ifndef MIN_TOOL_VERSION_ghc_pkg
+#define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\
+ (major1) < 8 || \
+ (major1) == 8 && (major2) < 8 || \
+ (major1) == 8 && (major2) == 8 && (minor) <= 4)
+#endif /* MIN_TOOL_VERSION_ghc_pkg */
+
+/* tool haddock-2.23.0 */
+#ifndef TOOL_VERSION_haddock
+#define TOOL_VERSION_haddock "2.23.0"
+#endif /* TOOL_VERSION_haddock */
+#ifndef MIN_TOOL_VERSION_haddock
+#define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\
+ (major1) < 2 || \
+ (major1) == 2 && (major2) < 23 || \
+ (major1) == 2 && (major2) == 23 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_haddock */
+
+/* tool hpc-0.67 */
+#ifndef TOOL_VERSION_hpc
+#define TOOL_VERSION_hpc "0.67"
+#endif /* TOOL_VERSION_hpc */
+#ifndef MIN_TOOL_VERSION_hpc
+#define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 67 || \
+ (major1) == 0 && (major2) == 67 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_hpc */
+
+/* tool hsc2hs-0.68.7 */
+#ifndef TOOL_VERSION_hsc2hs
+#define TOOL_VERSION_hsc2hs "0.68.7"
+#endif /* TOOL_VERSION_hsc2hs */
+#ifndef MIN_TOOL_VERSION_hsc2hs
+#define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 68 || \
+ (major1) == 0 && (major2) == 68 && (minor) <= 7)
+#endif /* MIN_TOOL_VERSION_hsc2hs */
+
+/* tool pkg-config-0.29.1 */
+#ifndef TOOL_VERSION_pkg_config
+#define TOOL_VERSION_pkg_config "0.29.1"
+#endif /* TOOL_VERSION_pkg_config */
+#ifndef MIN_TOOL_VERSION_pkg_config
+#define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\
+ (major1) < 0 || \
+ (major1) == 0 && (major2) < 29 || \
+ (major1) == 0 && (major2) == 29 && (minor) <= 1)
+#endif /* MIN_TOOL_VERSION_pkg_config */
+
+/* tool runghc-8.8.4 */
+#ifndef TOOL_VERSION_runghc
+#define TOOL_VERSION_runghc "8.8.4"
+#endif /* TOOL_VERSION_runghc */
+#ifndef MIN_TOOL_VERSION_runghc
+#define MIN_TOOL_VERSION_runghc(major1,major2,minor) (\
+ (major1) < 8 || \
+ (major1) == 8 && (major2) < 8 || \
+ (major1) == 8 && (major2) == 8 && (minor) <= 4)
+#endif /* MIN_TOOL_VERSION_runghc */
+
+/* tool strip-2.34 */
+#ifndef TOOL_VERSION_strip
+#define TOOL_VERSION_strip "2.34"
+#endif /* TOOL_VERSION_strip */
+#ifndef MIN_TOOL_VERSION_strip
+#define MIN_TOOL_VERSION_strip(major1,major2,minor) (\
+ (major1) < 2 || \
+ (major1) == 2 && (major2) < 34 || \
+ (major1) == 2 && (major2) == 34 && (minor) <= 0)
+#endif /* MIN_TOOL_VERSION_strip */
+
+#ifndef CURRENT_COMPONENT_ID
+#define CURRENT_COMPONENT_ID "test-0.1.0.0-inplace-test-exe"
+#endif /* CURRENT_COMPONENT_ID */
+#ifndef CURRENT_PACKAGE_VERSION
+#define CURRENT_PACKAGE_VERSION "0.1.0.0"
+#endif /* CURRENT_PACKAGE_VERSION */
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cache b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cache
new file mode 100644
index 0000000..b3cae5c
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cache
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cache.lock b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cache.lock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/package.conf.inplace/package.cache.lock
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/cache/plan.json b/semestr-3/pf/lista8/test/dist-newstyle/cache/plan.json
new file mode 100644
index 0000000..c6b3d86
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/cache/plan.json
@@ -0,0 +1 @@
+{"cabal-version":"3.2.0.0","cabal-lib-version":"3.2.0.0","compiler-id":"ghc-8.8.4","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"base-4.13.0.0","pkg-name":"base","pkg-version":"4.13.0.0","depends":["ghc-prim-0.5.3","integer-gmp-1.0.2.0","rts"]},{"type":"pre-existing","id":"ghc-prim-0.5.3","pkg-name":"ghc-prim","pkg-version":"0.5.3","depends":["rts"]},{"type":"pre-existing","id":"integer-gmp-1.0.2.0","pkg-name":"integer-gmp","pkg-version":"1.0.2.0","depends":["ghc-prim-0.5.3"]},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0","depends":[]},{"type":"configured","id":"test-0.1.0.0-inplace","pkg-name":"test","pkg-version":"0.1.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/mnt/c/Users/franc/Documents/pf/lista8/test/."},"dist-dir":"/mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0","depends":["base-4.13.0.0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"test-0.1.0.0-inplace-test-exe","pkg-name":"test","pkg-version":"0.1.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/mnt/c/Users/franc/Documents/pf/lista8/test/."},"dist-dir":"/mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe","depends":["base-4.13.0.0","test-0.1.0.0-inplace"],"exe-depends":[],"component-name":"exe:test-exe","bin-file":"/mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/x/test-exe/build/test-exe/test-exe"},{"type":"configured","id":"test-0.1.0.0-inplace-test-test","pkg-name":"test","pkg-version":"0.1.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/mnt/c/Users/franc/Documents/pf/lista8/test/."},"dist-dir":"/mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/t/test-test","depends":["base-4.13.0.0","test-0.1.0.0-inplace"],"exe-depends":[],"component-name":"test:test-test","bin-file":"/mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/t/test-test/build/test-test/test-test"}]} \ No newline at end of file
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cache b/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cache
new file mode 100644
index 0000000..d2ef65e
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cache
Binary files differ
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cache.lock b/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cache.lock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/package.cache.lock
diff --git a/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/test-0.1.0.0-inplace.conf b/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/test-0.1.0.0-inplace.conf
new file mode 100644
index 0000000..deb3fa1
--- /dev/null
+++ b/semestr-3/pf/lista8/test/dist-newstyle/packagedb/ghc-8.8.4/test-0.1.0.0-inplace.conf
@@ -0,0 +1,34 @@
+name: test
+version: 0.1.0.0
+visibility: public
+id: test-0.1.0.0-inplace
+key: test-0.1.0.0-inplace
+license: BSD-3-Clause
+copyright: 2020 Author name here
+maintainer: example@example.com
+author: Author name here
+homepage: https://github.com/githubuser/test#readme
+description:
+ Please see the README on GitHub at <https://github.com/githubuser/test#readme>
+
+abi: inplace
+exposed: True
+exposed-modules: Lib
+hidden-modules: Paths_test
+import-dirs:
+ /mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build
+
+library-dirs:
+ /mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build
+
+dynamic-library-dirs:
+ /mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/build
+
+data-dir: /mnt/c/Users/franc/Documents/pf/lista8/test
+hs-libraries: HStest-0.1.0.0-inplace
+depends: base-4.13.0.0
+haddock-interfaces:
+ /mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/doc/html/test/test.haddock
+
+haddock-html:
+ /mnt/c/Users/franc/Documents/pf/lista8/test/dist-newstyle/build/x86_64-linux/ghc-8.8.4/test-0.1.0.0/doc/html/test
diff --git a/semestr-3/pf/lista8/test/package.yaml b/semestr-3/pf/lista8/test/package.yaml
new file mode 100644
index 0000000..91e0cfa
--- /dev/null
+++ b/semestr-3/pf/lista8/test/package.yaml
@@ -0,0 +1,48 @@
+name: test
+version: 0.1.0.0
+github: "githubuser/test"
+license: BSD3
+author: "Author name here"
+maintainer: "example@example.com"
+copyright: "2020 Author name here"
+
+extra-source-files:
+- README.md
+- ChangeLog.md
+
+# Metadata used when publishing your package
+# synopsis: Short description of your package
+# category: Web
+
+# To avoid duplicated efforts in documentation and dealing with the
+# complications of embedding Haddock markup inside cabal files, it is
+# common to point users to the README.md file.
+description: Please see the README on GitHub at <https://github.com/githubuser/test#readme>
+
+dependencies:
+- base >= 4.7 && < 5
+
+library:
+ source-dirs: src
+
+executables:
+ test-exe:
+ main: Main.hs
+ source-dirs: app
+ ghc-options:
+ - -threaded
+ - -rtsopts
+ - -with-rtsopts=-N
+ dependencies:
+ - test
+
+tests:
+ test-test:
+ main: Spec.hs
+ source-dirs: test
+ ghc-options:
+ - -threaded
+ - -rtsopts
+ - -with-rtsopts=-N
+ dependencies:
+ - test
diff --git a/semestr-3/pf/lista8/test/src/Lib.hs b/semestr-3/pf/lista8/test/src/Lib.hs
new file mode 100644
index 0000000..d36ff27
--- /dev/null
+++ b/semestr-3/pf/lista8/test/src/Lib.hs
@@ -0,0 +1,6 @@
+module Lib
+ ( someFunc
+ ) where
+
+someFunc :: IO ()
+someFunc = putStrLn "someFunc"
diff --git a/semestr-3/pf/lista8/test/test.cabal b/semestr-3/pf/lista8/test/test.cabal
new file mode 100644
index 0000000..0d73369
--- /dev/null
+++ b/semestr-3/pf/lista8/test/test.cabal
@@ -0,0 +1,62 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.2.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 643499591d6ce6070d19763e325b50c6e2d76cbf091125bdf17e6c9a8d421ad9
+
+name: test
+version: 0.1.0.0
+description: Please see the README on GitHub at <https://github.com/githubuser/test#readme>
+homepage: https://github.com/githubuser/test#readme
+bug-reports: https://github.com/githubuser/test/issues
+author: Author name here
+maintainer: example@example.com
+copyright: 2020 Author name here
+license: BSD3
+license-file: LICENSE
+build-type: Simple
+extra-source-files:
+ README.md
+ ChangeLog.md
+
+source-repository head
+ type: git
+ location: https://github.com/githubuser/test
+
+library
+ exposed-modules:
+ Lib
+ other-modules:
+ Paths_test
+ hs-source-dirs:
+ src
+ build-depends:
+ base >=4.7 && <5
+ default-language: Haskell2010
+
+executable test-exe
+ main-is: Main.hs
+ other-modules:
+ Paths_test
+ hs-source-dirs:
+ app
+ ghc-options: -threaded -rtsopts -with-rtsopts=-N
+ build-depends:
+ base >=4.7 && <5
+ , test
+ default-language: Haskell2010
+
+test-suite test-test
+ type: exitcode-stdio-1.0
+ main-is: Spec.hs
+ other-modules:
+ Paths_test
+ hs-source-dirs:
+ test
+ ghc-options: -threaded -rtsopts -with-rtsopts=-N
+ build-depends:
+ base >=4.7 && <5
+ , test
+ default-language: Haskell2010
diff --git a/semestr-3/pf/lista8/test/test/Spec.hs b/semestr-3/pf/lista8/test/test/Spec.hs
new file mode 100644
index 0000000..cd4753f
--- /dev/null
+++ b/semestr-3/pf/lista8/test/test/Spec.hs
@@ -0,0 +1,2 @@
+main :: IO ()
+main = putStrLn "Test suite not yet implemented"