derive-monoid-0.0.0: test/Build/Derive/List/HigherKind.hs
{-# LANGUAGE TemplateHaskell, TypeFamilies, OverloadedLists #-}
{-# OPTIONS_GHC -ddump-splices #-} -- for debugging
module Build.Derive.List.HigherKind where
import Derive.List
import Data.Semigroup
import GHC.Exts (IsList (..))
data Elisp a
= ElispAtom a
| ElispSexp [Elisp a]
deriving (Show)
deriveList ''Elisp 'ElispSexp
main = do
putStrLn ""
print$ (emptyElisp :: Elisp Bool)
print$ toElispList (ElispAtom True)
print$ ElispSexp [ElispAtom (Left "&&"), ElispAtom (Right True), ElispAtom (Right True)] <> mempty <> ElispAtom (Right False)