packages feed

descript-lang-0.2.0.0: src/Descript/Misc/Build/Read/File/Depd.hs

{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveTraversable #-}

module Descript.Misc.Build.Read.File.Depd
  ( GenDepd (..)
  , mapDep
  ) where

-- | An AST and its dependencies.
data GenDepd d a
  = Depd
  { depdDep :: d
  , depdVal :: a
  } deriving (Eq, Ord, Read, Show, Functor, Foldable, Traversable)

-- | Transforms the dependency.
mapDep :: (d1 -> d2) -> GenDepd d1 a -> GenDepd d2 a
mapDep f (Depd dep x) = Depd (f dep) x