module UVMHS.Core.FilePath where

import UVMHS.Core.Init
import UVMHS.Core.Data
import UVMHS.Core.Classes

import qualified System.FilePath as FP

-- FilePath
newtype  =  { ℙ -> 𝕊
unℙ  𝕊 }
  deriving (ℙ -> ℙ -> Bool
(ℙ -> ℙ -> Bool) -> (ℙ -> ℙ -> Bool) -> Eq ℙ
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ℙ -> ℙ -> Bool
== :: ℙ -> ℙ -> Bool
$c/= :: ℙ -> ℙ -> Bool
/= :: ℙ -> ℙ -> Bool
Eq,Eq ℙ
Eq ℙ =>
(ℙ -> ℙ -> Ordering)
-> (ℙ -> ℙ -> Bool)
-> (ℙ -> ℙ -> Bool)
-> (ℙ -> ℙ -> Bool)
-> (ℙ -> ℙ -> Bool)
-> (ℙ -> ℙ -> ℙ)
-> (ℙ -> ℙ -> ℙ)
-> Ord ℙ
ℙ -> ℙ -> Bool
ℙ -> ℙ -> Ordering
ℙ -> ℙ -> ℙ
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: ℙ -> ℙ -> Ordering
compare :: ℙ -> ℙ -> Ordering
$c< :: ℙ -> ℙ -> Bool
< :: ℙ -> ℙ -> Bool
$c<= :: ℙ -> ℙ -> Bool
<= :: ℙ -> ℙ -> Bool
$c> :: ℙ -> ℙ -> Bool
> :: ℙ -> ℙ -> Bool
$c>= :: ℙ -> ℙ -> Bool
>= :: ℙ -> ℙ -> Bool
$cmax :: ℙ -> ℙ -> ℙ
max :: ℙ -> ℙ -> ℙ
$cmin :: ℙ -> ℙ -> ℙ
min :: ℙ -> ℙ -> ℙ
Ord,Int -> ℙ -> ShowS
[ℙ] -> ShowS
ℙ -> String
(Int -> ℙ -> ShowS) -> (ℙ -> String) -> ([ℙ] -> ShowS) -> Show ℙ
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ℙ -> ShowS
showsPrec :: Int -> ℙ -> ShowS
$cshow :: ℙ -> String
show :: ℙ -> String
$cshowList :: [ℙ] -> ShowS
showList :: [ℙ] -> ShowS
Show)

instance Null  where null :: ℙ
null = pnull
instance Append  where ⧺ :: ℙ -> ℙ -> ℙ
(⧺) = ℙ -> ℙ -> ℙ
pappend
instance Monoid 

pnull  
pnull :: ℙ
pnull = 𝕊 -> ℙ
 𝕊
""

pappend      
pappend :: ℙ -> ℙ -> ℙ
pappend x y = 𝕊 -> ℙ
 (𝕊 -> ℙ) -> 𝕊 -> ℙ
forall a b. (a -> b) -> a -> b
$ String -> 𝕊
forall t. ToIter ℂ t => t -> 𝕊
string (String -> 𝕊) -> String -> 𝕊
forall a b. (a -> b) -> a -> b
$ 𝕊 -> String
tohsChars (ℙ -> 𝕊
unℙ x) String -> ShowS
FP.</> 𝕊 -> String
tohsChars (ℙ -> 𝕊
unℙ y)

pfilename    
pfilename :: ℙ -> ℙ
pfilename = 𝕊 -> ℙ
 (𝕊 -> ℙ) -> (String -> 𝕊) -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 String -> 𝕊
forall t. ToIter ℂ t => t -> 𝕊
string (String -> ℙ) -> ShowS -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ShowS
FP.takeFileName (String -> ℙ) -> (𝕊 -> String) -> 𝕊 -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 𝕊 -> String
tohsChars (𝕊 -> ℙ) -> (ℙ -> 𝕊) -> ℙ -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ℙ -> 𝕊
unℙ

pbasename    
pbasename :: ℙ -> ℙ
pbasename = 𝕊 -> ℙ
 (𝕊 -> ℙ) -> (String -> 𝕊) -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 String -> 𝕊
forall t. ToIter ℂ t => t -> 𝕊
string (String -> ℙ) -> ShowS -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ShowS
FP.takeBaseName (String -> ℙ) -> (𝕊 -> String) -> 𝕊 -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 𝕊 -> String
tohsChars (𝕊 -> ℙ) -> (ℙ -> 𝕊) -> ℙ -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ℙ -> 𝕊
unℙ

pdirectory    
pdirectory :: ℙ -> ℙ
pdirectory = 𝕊 -> ℙ
 (𝕊 -> ℙ) -> (String -> 𝕊) -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 String -> 𝕊
forall t. ToIter ℂ t => t -> 𝕊
string (String -> ℙ) -> ShowS -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ShowS
FP.takeDirectory (String -> ℙ) -> (𝕊 -> String) -> 𝕊 -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 𝕊 -> String
tohsChars (𝕊 -> ℙ) -> (ℙ -> 𝕊) -> ℙ -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ℙ -> 𝕊
unℙ

pextension    
pextension :: ℙ -> ℙ
pextension = 𝕊 -> ℙ
 (𝕊 -> ℙ) -> (String -> 𝕊) -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 String -> 𝕊
forall t. ToIter ℂ t => t -> 𝕊
string (String -> ℙ) -> ShowS -> String -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ShowS
FP.takeExtension (String -> ℙ) -> (𝕊 -> String) -> 𝕊 -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 𝕊 -> String
tohsChars (𝕊 -> ℙ) -> (ℙ -> 𝕊) -> ℙ -> ℙ
forall b c a. (b -> c) -> (a -> b) -> a -> c
 ℙ -> 𝕊
unℙ