packages feed

BinderAnn-0.1.0.0: src/Data/Annotated/Monadic.hs

{-# LANGUAGE MonoLocalBinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}

module Data.Annotated.Monadic where

import BinderAnn.SrcInfo

----------------------------------------
-- Monadic types that can be annotated using some effect

class Monad m => AnnotatedM m a where
  annotateM :: m a -> SrcInfo -> m a

instance {-# INCOHERENT #-} Monad m => AnnotatedM m a where
  annotateM ma _ = ma