content: {- |
  Module:      Telescope.Asdf
  Copyright:   (c) 2024 Sean Hess
  License:     BSD3
  Maintainer:  Sean Hess <shess@nso.edu>
  Stability:   experimental
  Portability: portable
  
  Read, and Write ASDF (Advanced Scientific Data Format) files
  
  > import Data.ByteString qualified as BS
  > import Telescope.Asdf
  >
  > data Example = Example
  >   { name :: Text
  >   , items :: [Text]
  >   , sequence :: [Int64]
  >   , random :: Array D Ix1 Double
  >   }
  >   deriving (Generic, FromAsdf)
  >
  > example :: IO ()
  > example = do
  >   inp <- BS.readFile "samples/example.asdf"
  >   ex :: Example <- decodeM inp
  >   print ex.name
  >   print ex.items
  >   print $ take 30 ex.sequence
  >   print $ take 10 $ M.toList ex.random
  -}
  module Telescope.Asdf
    ( -- * Encoding
      encodeM
    , encode
    , ToAsdf (..)
  
      -- * Decoding
    , decodeM
    , decodeEither
    , decode
    , FromAsdf (..)
    , (.:)
    , (.:?)
    , AsdfError
    , Parser
  
      -- * Binary Data
    , FromNDArray (..)
    , ToNDArray (..)
    , NDArrayData (..)
  
      -- * ASDF Tree
    , Asdf (..)
    , Node (..)
    , Value (..)
    , Key
    , Object
    , fromValue
    , SchemaTag
  
      -- * JSON Reference
    , jsonPointer
    , jsonReference
    , JSONReference (..)
    , JSONPointer (..)
  
      -- * YAML Anchors
    , Anchor (..)
  
      -- ** Exports
    , Generic
    )
  where
  
  import GHC.Generics
  import Telescope.Asdf.Class
  import Telescope.Asdf.Core (Asdf (..))
  import Telescope.Asdf.Encoding
  import Telescope.Asdf.Error
  import Telescope.Asdf.NDArray
  import Telescope.Asdf.Node
  
  