+$( Data.Accessor.Template.deriveAccessors ''VHDLState )
+
+-- | The state containing a VHDL Session
+type VHDLSession = State.State VHDLState
+
+-- | A substate containing just the types
+type TypeState = State.State TypeMap
+
+-- A function that generates VHDL for a builtin function
+type BuiltinBuilder =
+ CoreSyn.CoreBndr -- ^ The destination value
+ -> CoreSyn.CoreBndr -- ^ The function called
+ -> [CoreSyn.CoreExpr] -- ^ The value arguments passed (excluding type and
+ -- dictionary arguments).
+ -> VHDLSession [AST.ConcSm] -- ^ The resulting concurrent statements.