penrose-0.1.1.1: src/Penrose/Serializer.hs
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_HADDOCK prune #-}
module Penrose.Serializer where
import Penrose.Env
import Penrose.GenOptProblem
import Penrose.Optimizer
import Penrose.Style
import Penrose.SubstanceTokenizer
import Penrose.Util
import Data.Aeson
import Data.Aeson.TH
import GHC.Generics
import qualified Numeric.LinearAlgebra as L
import System.Random (StdGen)
import Text.Megaparsec
instance ToJSONKey Name
instance FromJSONKey Name
instance ToJSONKey TypeVar
instance FromJSONKey TypeVar
instance ToJSONKey T
instance FromJSONKey T
instance ToJSONKey Var
instance FromJSONKey Var
--------------------------------------------------------------------------------
-- TODO: slowly move all the JSON decls other than the ones in Server to
-- this module
deriveJSON defaultOptions ''SourcePosition
deriveJSON defaultOptions ''Pos
deriveJSON defaultOptions ''SourcePos
deriveJSON defaultOptions ''Translation
deriveJSON defaultOptions ''Name
deriveJSON defaultOptions ''FieldExpr
deriveJSON defaultOptions ''TagExpr
deriveJSON defaultOptions ''Expr
deriveJSON defaultOptions ''AnnoFloat
deriveJSON defaultOptions ''BinaryOp
deriveJSON defaultOptions ''UnaryOp
deriveJSON defaultOptions ''PropertyDecl
deriveJSON defaultOptions ''Path
deriveJSON defaultOptions ''Var
deriveJSON defaultOptions ''BindingForm
deriveJSON defaultOptions ''StyVar
deriveJSON defaultOptions ''VarEnv
deriveJSON defaultOptions ''TypeVar
deriveJSON defaultOptions ''T
deriveJSON defaultOptions ''TypeCtorApp
deriveJSON defaultOptions ''TypeConstructor
deriveJSON defaultOptions ''Arg
deriveJSON defaultOptions ''K
deriveJSON defaultOptions ''ValConstructor
deriveJSON defaultOptions ''Y
deriveJSON defaultOptions ''Type
deriveJSON defaultOptions ''Operator
deriveJSON defaultOptions ''PredicateEnv
deriveJSON defaultOptions ''StmtNotationRule
deriveJSON defaultOptions ''Predicate1
deriveJSON defaultOptions ''Prop
deriveJSON defaultOptions ''Predicate2
deriveJSON defaultOptions ''Penrose.SubstanceTokenizer.Token
-- TODO: de-lambdaize this to make it serializable
-- deriveJSON defaultOptions ''Policy
deriveJSON defaultOptions ''Params
deriveJSON defaultOptions ''Fn
deriveJSON defaultOptions ''StdGen
deriveJSON defaultOptions ''PolicyParams
deriveJSON defaultOptions ''OptType
deriveJSON defaultOptions ''OptStatus
deriveJSON defaultOptions ''BfgsParams
deriveJSON defaultOptions ''Penrose.GenOptProblem.State
--------------------------------------------------------------------------------
-- Interface
deriveJSON defaultOptions ''CompilerError
deriveJSON defaultOptions ''RuntimeError