Use derive newtype instance to save some boilerplate
				
					
				
			This commit is contained in:
		
							parent
							
								
									734f231250
								
							
						
					
					
						commit
						80dc5b6a2c
					
				@ -32,24 +32,12 @@ newtype UnifyT k f m a = MkUnifyT (StateT (UnificationState k f) m a)
 | 
			
		||||
 | 
			
		||||
derive instance Newtype (UnifyT k f m a) _
 | 
			
		||||
derive instance Functor m => Functor (UnifyT k f m)
 | 
			
		||||
 | 
			
		||||
instance Monad m => Apply (UnifyT k f m) where
 | 
			
		||||
    apply m1 m2 = MkUnifyT $ apply (un MkUnifyT m1) (un MkUnifyT m2)
 | 
			
		||||
 | 
			
		||||
instance Monad m => Applicative (UnifyT k f m) where
 | 
			
		||||
    pure a = MkUnifyT $ pure a
 | 
			
		||||
 | 
			
		||||
instance Monad m => Bind (UnifyT k f m) where
 | 
			
		||||
    bind m f = MkUnifyT $ (un MkUnifyT m) >>= (un MkUnifyT <<< f)
 | 
			
		||||
 | 
			
		||||
derive newtype instance Monad m => Apply (UnifyT k f m)
 | 
			
		||||
derive newtype instance Monad m => Applicative (UnifyT k f m)
 | 
			
		||||
derive newtype instance Monad m => Bind (UnifyT k f m)
 | 
			
		||||
instance Monad m => Monad (UnifyT k f m)
 | 
			
		||||
 | 
			
		||||
instance (Monad m, Alt m) => Alt (UnifyT k f m) where
 | 
			
		||||
    alt = over2 MkUnifyT alt
 | 
			
		||||
 | 
			
		||||
instance (Monad m, Plus m) => Plus (UnifyT k f m) where
 | 
			
		||||
    empty = MkUnifyT empty
 | 
			
		||||
 | 
			
		||||
derive newtype instance (Monad m, Alt m) => Alt (UnifyT k f m)
 | 
			
		||||
derive newtype instance (Monad m, Plus m) => Plus (UnifyT k f m)
 | 
			
		||||
instance (Monad m, Alternative m) => Alternative (UnifyT k f m)
 | 
			
		||||
instance (MonadPlus m) => MonadPlus (UnifyT k f m)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user