Agda-2.3.2.2: src/transl/agda/PluginType.hs
{-# OPTIONS #-}
module PluginType (
-- * Type declarations
Plugin (..),
-- * Class declarations
-- * Function types
-- * Exported modules
-- * Notes
)
where
import Position(Position)
import PPrint
import Utilities (t)
data Plugin a tc = Plugin {
pluginPos :: Position,
pluginName :: String,
pluginOpts :: String,
pluginArgs :: [a],
pluginTransClass :: tc
}
deriving (Eq, Show,Ord)
instance (PPrint a, PPrint tc) => PPrint (Plugin a tc) where
pPrint d _ (Plugin pos name opts es tc)
= text "\"" ~. t name ~. text "\"" ~. separate (t opts : map (pPrint d 10) es)
-- separate (t name:t opts : map (pPrint d 10) es)