{-# LANGUAGE TemplateHaskell, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, UndecidableInstances, TypeSynonymInstances, TypeFamilies #-}
module MyType.MyType_001 where

import Control.Monad.Reader
import HAppS.Data
import HAppS.State
-- import qualified MyType_002 as MT2

$(deriveAll [''Eq, ''Ord, ''Read, ''Show, ''Default]
  [d|
      data MyType = MyType String
   |])

$(deriveSerialize ''MyType)
instance Version MyType

askString :: Query MyType String
askString = 
    do (MyType str) <- ask
       return str

$(mkMethods ''MyType ['askString])
            
instance Component MyType where
    type Dependencies MyType = End
    initialValue = MyType "hello, world!"