Refactor tell use slighly
Šī revīzija ir iekļauta:
		@@ -44,6 +44,9 @@ evalComputationM' top m = runState (execWriterT (unComputationM m)) top
 | 
			
		||||
evalComputationM :: ComputationM () -> [DependencyUntyped]
 | 
			
		||||
evalComputationM m = fst (evalComputationM' 0 m)
 | 
			
		||||
 | 
			
		||||
tellDep :: (Show a, Show b) => Dependency a b -> ComputationM' ()
 | 
			
		||||
tellDep dep = tell [DependencyUntyped dep (show dep)] -- Call show for later debugging purposes
 | 
			
		||||
 | 
			
		||||
genDependency' :: (Show u, Show a) => (Token a -> ComputationM' (Dependency u a)) -> ComputationM a
 | 
			
		||||
genDependency' f = do
 | 
			
		||||
  top <- get
 | 
			
		||||
@@ -51,11 +54,11 @@ genDependency' f = do
 | 
			
		||||
      target = Token top'
 | 
			
		||||
  put top'
 | 
			
		||||
  result <- f target
 | 
			
		||||
  tell [DependencyUntyped result (show result)]
 | 
			
		||||
  tellDep result
 | 
			
		||||
  pure target
 | 
			
		||||
 | 
			
		||||
genDependency :: (Show u, Show a) => (Token a -> Dependency u a) -> ComputationM a
 | 
			
		||||
genDependency g = genDependency' (\t -> pure $ g t)
 | 
			
		||||
genDependency f = genDependency' (pure . f)
 | 
			
		||||
 | 
			
		||||
inject :: Show a => a -> ComputationM a
 | 
			
		||||
inject x = genDependency (Dependency NoToken (Inject x))
 | 
			
		||||
@@ -65,9 +68,8 @@ getListElem outer = genDependency (Dependency outer GetListElem)
 | 
			
		||||
 | 
			
		||||
setListElem :: Show a => Token a -> Token [a] -> ComputationM ()
 | 
			
		||||
setListElem a outer = do
 | 
			
		||||
  tell [DependencyUntyped d (show d)]
 | 
			
		||||
  tellDep (Dependency a SetListElem outer)
 | 
			
		||||
  pure NoToken
 | 
			
		||||
  where d = Dependency a SetListElem outer
 | 
			
		||||
 | 
			
		||||
run :: (Show a, Show b, IsFunction f a b) => f -> Token a -> ComputationM b
 | 
			
		||||
run f input = genDependency (Dependency input (Function f))
 | 
			
		||||
 
 | 
			
		||||
		Atsaukties uz šo jaunā problēmā
	
	Block a user