Also migrate Function

This commit is contained in:
2024-09-21 18:06:00 +02:00
parent af50f16243
commit b4f36f9370
2 changed files with 17 additions and 6 deletions

View File

@@ -12,7 +12,7 @@ import Control.Monad.Writer
data TypedRun a b where
F :: Function a b -> TypedRun a b
F :: IsF f a b => f -> TypedRun a b
FIO :: IsFIO f a b => f -> TypedRun a b
TInject :: b -> TypedRun () b
InList :: ComputationM TokenNotTraversable b -> TypedRun [a] [b]
@@ -69,6 +69,12 @@ genDependency g = do
inject :: Show a => a -> ComputationM ta a
inject x = genDependency (Dependency NoToken (TInject x))
run :: (Show a, Show b, IsF f a b) => f -> Token t a -> ComputationM TokenNotTraversable b
run f input = genDependency (Dependency input (F f))
isImageFilename = run IsImageFilename
convertedImageFilename = run ConvertedImageFilename
runIO :: (Show a, Show b, IsFIO f a b) => f -> Token t a -> ComputationM TokenNotTraversable b
runIO f input = genDependency (Dependency input (FIO f))
@@ -78,7 +84,6 @@ convertImage = runIO ConvertImage
saveFile = runIO SaveFile
runPandoc = runIO RunPandoc
makeTraversable :: Token TokenNotTraversable [a] -> Token TokenTraversable (Token TokenNotTraversable a)
makeTraversable (Token n) = Token n