User better namings

This commit is contained in:
Niels G. W. Serup 2024-09-21 19:17:09 +02:00
parent d0c2b47df0
commit c588dc1f56
No known key found for this signature in database
GPG Key ID: 38EEEBCE67324F19
3 changed files with 21 additions and 26 deletions

View File

@ -8,18 +8,13 @@ import Unsafe.Coerce (unsafeCoerce)
import Control.Monad.State
import Control.Monad.Writer
data TypedRun a b where
F :: IsF f a b => f -> TypedRun a b
FIO :: IsFIO f a b => f -> TypedRun a b
TInject :: b -> TypedRun () b
Function :: IsFunction f a b => f -> TypedRun a b
FunctionIO :: IsFunctionIO f a b => f -> TypedRun a b
Inject :: b -> TypedRun () b
GetListElem :: TypedRun () b
SetListElem :: TypedRun a ()
InList :: [DependencyUntyped] -> TypedRun [a] [b]
instance Show (ComputationM a) where
show _ = "<computation>"
MapComp :: [DependencyUntyped] -> TypedRun [a] [b]
deriving instance (Show a, Show b) => Show (TypedRun a b)
@ -57,7 +52,7 @@ genDependency g = do
pure target
inject :: Show a => a -> ComputationM a
inject x = genDependency (Dependency NoToken (TInject x))
inject x = genDependency (Dependency NoToken (Inject x))
getListElem :: Show a => ComputationM a
getListElem = genDependency (Dependency NoToken GetListElem)
@ -65,14 +60,14 @@ getListElem = genDependency (Dependency NoToken GetListElem)
setListElem :: Show a => Token a -> ComputationM ()
setListElem a = genDependency (Dependency a SetListElem)
run :: (Show a, Show b, IsF f a b) => f -> Token a -> ComputationM b
run f input = genDependency (Dependency input (F f))
run :: (Show a, Show b, IsFunction f a b) => f -> Token a -> ComputationM b
run f input = genDependency (Dependency input (Function f))
isImageFilename = run IsImageFilename
convertedImageFilename = run ConvertedImageFilename
runIO :: (Show a, Show b, IsFIO f a b) => f -> Token a -> ComputationM b
runIO f input = genDependency (Dependency input (FIO f))
runIO :: (Show a, Show b, IsFunctionIO f a b) => f -> Token a -> ComputationM b
runIO f input = genDependency (Dependency input (FunctionIO f))
listDirectory = runIO ListDirectory
openImage = runIO OpenImage
@ -80,8 +75,8 @@ convertImage = runIO ConvertImage
saveFile = runIO SaveFile
runPandoc = runIO RunPandoc
mapListTaken :: (Show a, Show b) => (Token a -> ComputationM b) -> Token [a] -> ComputationM [b]
mapListTaken f input = genDependency (Dependency input (InList (evalComputationM m)))
mapComputationM :: (Show a, Show b) => (Token a -> ComputationM b) -> Token [a] -> ComputationM [b]
mapComputationM f input = genDependency (Dependency input (MapComp (evalComputationM m)))
where m :: ComputationM ()
m = do
inp <- getListElem

View File

@ -5,37 +5,37 @@ module Functions where
import Types
import Sources
class (SourceState a, Show f) => IsF f a b | f -> a b where
class (SourceState a, Show f) => IsFunction f a b | f -> a b where
runF :: f -> a -> b
data IsImageFilename = IsImageFilename deriving (Show)
instance IsF IsImageFilename FilePath Bool where
instance IsFunction IsImageFilename FilePath Bool where
runF IsImageFilename _path = undefined
data ConvertedImageFilename = ConvertedImageFilename deriving (Show)
instance IsF ConvertedImageFilename FilePath FilePath where
instance IsFunction ConvertedImageFilename FilePath FilePath where
runF ConvertedImageFilename _path = undefined
class (SourceState a, Show f) => IsFIO f a b | f -> a b where
class (SourceState a, Show f) => IsFunctionIO f a b | f -> a b where
runFIO :: f -> a -> IO b
data ListDirectory = ListDirectory deriving (Show)
instance IsFIO ListDirectory FilePath [FilePath] where
instance IsFunctionIO ListDirectory FilePath [FilePath] where
runFIO ListDirectory _path = undefined
data OpenImage = OpenImage deriving (Show)
instance IsFIO OpenImage FilePath Image where
instance IsFunctionIO OpenImage FilePath Image where
runFIO OpenImage _path = undefined
data ConvertImage = ConvertImage deriving (Show)
instance IsFIO ConvertImage Image Image where
instance IsFunctionIO ConvertImage Image Image where
runFIO ConvertImage _image = undefined
data SaveFile = SaveFile deriving (Show)
instance IsFIO SaveFile (String, FilePath) () where
instance IsFunctionIO SaveFile (String, FilePath) () where
runFIO SaveFile _source = undefined
data RunPandoc = RunPandoc deriving (Show)
instance IsFIO RunPandoc String String where
instance IsFunctionIO RunPandoc String String where
runFIO RunPandoc _source = undefined

View File

@ -7,7 +7,7 @@ test :: ComputationM ()
test = do
dir <- inject "retter"
dirContents <- listDirectory dir
u <- mapListTaken openImage dirContents
u <- mapComputationM openImage dirContents
pure $ NoToken
main :: IO ()