{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE OverloadedStrings #-}

module Asts

where

import Data.Aeson
import GHC.Generics

-- project imports

import qualified Ast

data Asts
   = Asts
     {
         Asts -> [Root]
asts :: [ Ast.Root ]
     }
     deriving ( Int -> Asts -> ShowS
[Asts] -> ShowS
Asts -> String
(Int -> Asts -> ShowS)
-> (Asts -> String) -> ([Asts] -> ShowS) -> Show Asts
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Asts -> ShowS
showsPrec :: Int -> Asts -> ShowS
$cshow :: Asts -> String
show :: Asts -> String
$cshowList :: [Asts] -> ShowS
showList :: [Asts] -> ShowS
Show, Asts -> Asts -> Bool
(Asts -> Asts -> Bool) -> (Asts -> Asts -> Bool) -> Eq Asts
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Asts -> Asts -> Bool
== :: Asts -> Asts -> Bool
$c/= :: Asts -> Asts -> Bool
/= :: Asts -> Asts -> Bool
Eq, (forall x. Asts -> Rep Asts x)
-> (forall x. Rep Asts x -> Asts) -> Generic Asts
forall x. Rep Asts x -> Asts
forall x. Asts -> Rep Asts x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Asts -> Rep Asts x
from :: forall x. Asts -> Rep Asts x
$cto :: forall x. Rep Asts x -> Asts
to :: forall x. Rep Asts x -> Asts
Generic, [Asts] -> Value
[Asts] -> Encoding
Asts -> Bool
Asts -> Value
Asts -> Encoding
(Asts -> Value)
-> (Asts -> Encoding)
-> ([Asts] -> Value)
-> ([Asts] -> Encoding)
-> (Asts -> Bool)
-> ToJSON Asts
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: Asts -> Value
toJSON :: Asts -> Value
$ctoEncoding :: Asts -> Encoding
toEncoding :: Asts -> Encoding
$ctoJSONList :: [Asts] -> Value
toJSONList :: [Asts] -> Value
$ctoEncodingList :: [Asts] -> Encoding
toEncodingList :: [Asts] -> Encoding
$comitField :: Asts -> Bool
omitField :: Asts -> Bool
ToJSON, Maybe Asts
Value -> Parser [Asts]
Value -> Parser Asts
(Value -> Parser Asts)
-> (Value -> Parser [Asts]) -> Maybe Asts -> FromJSON Asts
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser Asts
parseJSON :: Value -> Parser Asts
$cparseJSONList :: Value -> Parser [Asts]
parseJSONList :: Value -> Parser [Asts]
$comittedField :: Maybe Asts
omittedField :: Maybe Asts
FromJSON )