41 lines
941 B
Haskell
41 lines
941 B
Haskell
|
{-# OPTIONS_GHC -Wno-orphans #-}
|
||
|
|
||
|
{-# LANGUAGE DataKinds #-}
|
||
|
{-# LANGUAGE DeriveGeneric #-}
|
||
|
{-# LANGUAGE FlexibleContexts #-}
|
||
|
{-# LANGUAGE MultiParamTypeClasses #-}
|
||
|
{-# LANGUAGE TemplateHaskell #-}
|
||
|
{-# LANGUAGE TypeFamilies #-}
|
||
|
|
||
|
module GHCup.Types.JSON where
|
||
|
|
||
|
import Data.Strict.Maybe
|
||
|
import GHCup.Types
|
||
|
import Generics.SOP.TH
|
||
|
import Prelude hiding (
|
||
|
Maybe
|
||
|
, Just
|
||
|
, Nothing)
|
||
|
import Waargonaut.Generic (
|
||
|
JsonEncode
|
||
|
, JsonDecode
|
||
|
, GWaarg)
|
||
|
|
||
|
|
||
|
deriveGeneric ''Maybe
|
||
|
instance JsonEncode GWaarg a => JsonEncode GWaarg (Maybe a)
|
||
|
instance JsonDecode GWaarg a => JsonDecode GWaarg (Maybe a)
|
||
|
|
||
|
deriveGeneric ''Tool
|
||
|
instance JsonEncode GWaarg Tool
|
||
|
instance JsonDecode GWaarg Tool
|
||
|
|
||
|
deriveGeneric ''Architecture
|
||
|
instance JsonEncode GWaarg Architecture
|
||
|
instance JsonDecode GWaarg Architecture
|
||
|
|
||
|
deriveGeneric ''LinuxDistro
|
||
|
instance JsonEncode GWaarg LinuxDistro
|
||
|
instance JsonDecode GWaarg LinuxDistro
|
||
|
|