{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Annotation.Data where
import Dodge.Data
--import Dodge.Room
--import TreeHelp
import Dodge.Tree.Compose.Data

import Control.Monad.State
import Control.Lens
import System.Random

type MTRS = MetaTree Room String

data Annotation
    = ModifyTree (MetaTree Room String -> MetaTree Room String) Annotation
    | OnwardList [Annotation]
    | IntAnno (Int -> Annotation)
    | AnRoom (State StdGen Room)
    | AnTree (State StdGen (MetaTree Room String))
    | PassthroughLockKeyLists
        [(Int -> State StdGen (MetaTree Room String), State StdGen ItemBaseType)]
        [(ItemBaseType, State StdGen (MetaTree Room String))]
         Int 

makeLenses ''Annotation
