{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE Safe #-}
module Copilot.Language.Interpret
( csv
, interpret
) where
import qualified Copilot.Interpret as I
import Copilot.Language.Spec (Spec)
import Copilot.Language.Reify
csv :: Integer -> Spec -> IO ()
csv :: Integer -> Spec -> IO ()
csv Integer
i Spec
spec = do
String -> IO ()
putStrLn String
"Note: CSV format does not output observers."
Format -> Integer -> Spec -> IO ()
interpret' Format
I.CSV Integer
i Spec
spec
interpret :: Integer -> Spec -> IO ()
interpret :: Integer -> Spec -> IO ()
interpret = Format -> Integer -> Spec -> IO ()
interpret' Format
I.Table
interpret' :: I.Format -> Integer -> Spec -> IO ()
interpret' :: Format -> Integer -> Spec -> IO ()
interpret' Format
format Integer
i Spec
spec = do
coreSpec <- Spec -> IO Spec
forall a. Spec' a -> IO Spec
reify Spec
spec
putStrLn $ I.interpret format (fromIntegral i) coreSpec