Add trace
This commit is contained in:
		
							
								
								
									
										9
									
								
								src/Trace.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/Trace.hs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
{-# LANGUAGE DerivingVia #-}
 | 
			
		||||
module Trace where
 | 
			
		||||
 | 
			
		||||
import Data.Functor.Contravariant (Op(..), Contravariant)
 | 
			
		||||
import Data.Monoid (Ap(..))
 | 
			
		||||
 | 
			
		||||
newtype Trace m a = Trace { trace :: a -> m () }
 | 
			
		||||
  deriving Contravariant via Op (m ())
 | 
			
		||||
  deriving (Semigroup, Monoid) via Op (Ap m ()) a
 | 
			
		||||
		Reference in New Issue
	
	Block a user