{-# LANGUAGE TemplateHaskell #-}
module Cubix.Language.Parametric.Syntax.Base (
BoolF(..)
, BoolL
, IntF(..)
, IntL
, IntegerF(..)
, IntegerL
, CharF(..)
, CharL
, TextF(..)
, TextL
, UnitF(..)
, pattern BoolF'
, iBoolF
, jBoolF
, pattern IntF'
, iIntF
, jIntF
, pattern IntegerF'
, iIntegerF
, jIntegerF
, pattern CharF'
, iCharF
, jCharF
, pattern TextF'
, iTextF
, jTextF
, pattern UnitF'
, iUnitF
, jUnitF
) where
import Data.Text ( Text )
import Data.Comp.Multi ( Node )
import Cubix.Language.Parametric.Derive
data BoolL
data BoolF :: Node where
BoolF :: Bool -> BoolF e BoolL
data IntL
data IntF :: Node where
IntF :: Int -> IntF e IntL
data IntegerL
data IntegerF :: Node where
IntegerF :: Integer -> IntegerF e IntegerL
data CharL
data CharF :: Node where
CharF :: Char -> CharF e CharL
data TextL
data TextF :: Node where
TextF :: Text -> TextF e TextL
data UnitF :: Node where
UnitF :: UnitF e ()
deriveAll [''BoolF, ''IntF, ''IntegerF, ''CharF, ''TextF, ''UnitF]