{-# 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
Spec
coreSpec <- forall a. Spec' a -> IO Spec
reify Spec
spec
String -> IO ()
putStrLn forall a b. (a -> b) -> a -> b
$ Format -> Int -> Spec -> String
I.interpret Format
format (forall a b. (Integral a, Num b) => a -> b
fromIntegral Integer
i) Spec
coreSpec