{-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | Symantic for 'Date'. module Hcompta.LCC.Sym.Date where import Control.Monad (liftM2) import Data.Eq (Eq) import Data.Function (($)) import Data.Maybe (Maybe(..)) import Data.Monoid (Monoid(..)) import Data.Proxy import Prelude (undefined) import Text.Show (Show) import qualified Prelude () import Hcompta.LCC.Posting (Date) import Hcompta.Quantity import Language.Symantic import qualified Language.Symantic.Lib as Sym -- * Class 'Sym_Date' class Sym_Date (term:: * -> *) where type instance Sym_of_Iface (Proxy Date) = Sym_Date type instance TyConsts_of_Iface (Proxy Date) = Proxy Date ': TyConsts_imported_by (Proxy Date) type instance TyConsts_imported_by (Proxy Date) = '[] instance Sym_Date HostI where instance Sym_Date TextI where instance (Sym_Date r1, Sym_Date r2) => Sym_Date (DupI r1 r2) where instance ( Read_TyNameR TyName cs rs , Inj_TyConst cs Date ) => Read_TyNameR TyName cs (Proxy Date ': rs) where read_TyNameR _cs (TyName "Date") k = k (ty @Date) read_TyNameR _rs raw k = read_TyNameR (Proxy @rs) raw k instance Show_TyConst cs => Show_TyConst (Proxy Date ': cs) where show_TyConst TyConstZ{} = "Date" show_TyConst (TyConstS c) = show_TyConst c instance Proj_TyFamC cs Sym.TyFam_MonoElement Date instance Proj_TyConC cs (Proxy Date) data instance TokenT meta (ts::[*]) (Proxy Date) = Token_Term_Date_add (EToken meta ts) deriving instance (Eq meta, Eq_Token meta ts) => Eq (TokenT meta ts (Proxy Date)) deriving instance (Show meta, Show_Token meta ts) => Show (TokenT meta ts (Proxy Date)) instance -- CompileI ( Inj_TyConst cs Date , Inj_TyConst cs (->) , Proj_TyCon cs , Compile cs is ) => CompileI cs is (Proxy Date) where compileI tok _ctx _k = case tok of _ -> undefined instance -- TokenizeT Inj_Token meta ts Date => TokenizeT meta ts (Proxy Date) instance Gram_Term_AtomsT meta ts (Proxy Date) g