{-# LANGUAGE FlexibleInstances #-}

-- | A module for representing data types that can be compiled by taking a list of files.
module Lastik.Compile (
                       Compile,
                       compile
                      ) where

import Control.Monad
import Data.List
import System.Directory
import System.Cmd
import System.Exit

-- | A class of compilable data types.
class Compile c where
  compile :: c -> [FilePath] -> String

instance Compile [Char] where
  compile s _ = s

instance Compile ([FilePath] -> String) where
  compile = id