zm-0.2: src/ZM/Type/Array.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
module ZM.Type.Array(Array,Bytes) where
import Data.Flat.Filler
import Data.Model
import ZM.Type.Generate
import qualified ZM.Type.Words as Z
{-|An Array.
@
Array a = A0
| A1 a (Array a)
| A2 a a (Array a)
...
| A255 a ... (Array a)
@
-}
data Array a
instance Model a => Model (Array a) where envType = useCT arrayCT
-- |A byte-aligned byte array
data Bytes = Bytes (PreAligned (Array Z.Word8)) deriving (Generic,Model)
instance Model Filler
instance Model a => Model (PreAligned a)