Move more base stuff into Types module

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

View File

@ -1,13 +1,8 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE FunctionalDependencies #-}
module Functions where module Functions where
import Types import Types
import Sources import Sources
class (SourceState a, Show f) => IsFunction f a b | f -> a b where
runF :: f -> a -> b
data IsImageFilename = IsImageFilename deriving (Show) data IsImageFilename = IsImageFilename deriving (Show)
instance IsFunction IsImageFilename FilePath Bool where instance IsFunction IsImageFilename FilePath Bool where
runF IsImageFilename _path = undefined runF IsImageFilename _path = undefined
@ -17,9 +12,6 @@ instance IsFunction ConvertedImageFilename FilePath FilePath where
runF ConvertedImageFilename _path = undefined runF ConvertedImageFilename _path = undefined
class (SourceState a, Show f) => IsFunctionIO f a b | f -> a b where
runFIO :: f -> a -> IO b
data ListDirectory = ListDirectory deriving (Show) data ListDirectory = ListDirectory deriving (Show)
instance IsFunctionIO ListDirectory FilePath [FilePath] where instance IsFunctionIO ListDirectory FilePath [FilePath] where
runFIO ListDirectory _path = undefined runFIO ListDirectory _path = undefined

View File

@ -2,14 +2,9 @@ module Sources where
import Types import Types
import Data.ByteString (ByteString)
data Source a where data Source a where
Data :: a -> Source a Data :: a -> Source a
class SourceState a where
stateOfSource :: a -> IO ByteString
instance SourceState FilePath where instance SourceState FilePath where
stateOfSource = undefined stateOfSource = undefined

View File

@ -1,4 +1,17 @@
{-# LANGUAGE FunctionalDependencies #-}
module Types where module Types where
import Data.ByteString (ByteString)
data Image = Image data Image = Image
deriving (Show) deriving (Show)
class (SourceState a, Show f) => IsFunction f a b | f -> a b where
runF :: f -> a -> b
class (SourceState a, Show f) => IsFunctionIO f a b | f -> a b where
runFIO :: f -> a -> IO b
class SourceState a where
stateOfSource :: a -> IO ByteString