diff --git a/HFusion/HFusion.hs b/HFusion/HFusion.hs
--- a/HFusion/HFusion.hs
+++ b/HFusion/HFusion.hs
@@ -48,8 +48,8 @@
 import HFusion.Internal.HyloFace
 import HFusion.Internal.Utils
 import Control.Monad.Trans(lift)
+import Control.Monad(liftM2)
 import Control.Arrow(first,(&&&))
-import Control.Applicative(liftA2)
 
 -- | Transforms a composition of two recursive functions into an equivalent 
 -- recursive function.
@@ -71,7 +71,7 @@
 -- the result of fusion.
 fuse' :: String -> Int -> String -> [String] -> [HyloT] -> FusionState ([Def],String)
 fuse' nombre1 inArg nombre2 resultNames hylos = 
-           env2FusionState fuseHylos  >>= uncurry (liftA2 (,)) . (lift . inline  &&& lift . showHT)
+           env2FusionState fuseHylos  >>= lift . uncurry (liftM2 (,)) . (inline  &&& showHT)
            >>= return . first (map polishDef)
  where fuseHylos :: Env HyloT
        fuseHylos = do mapM_ insertFuseEnv hylos
diff --git a/HFusion/Internal/HyloRep.lhs b/HFusion/Internal/HyloRep.lhs
--- a/HFusion/Internal/HyloRep.lhs
+++ b/HFusion/Internal/HyloRep.lhs
@@ -1,13 +1,5 @@
 -- Please, see the file LICENSE for copyright and license information.
 
-% -----------------------------------------------------------------------------
-% $Id: HyloRep.lhs,v 1.63 2005/07/20 14:23:23 fdomin Exp $
-%
-%  Aqui se encuentra la implementacion del la interfase HyloFace.
-%  Por los detalles de la especificacion ver HyloFace.lhs.
-% -----------------------------------------------------------------------------
-
-
 >module HFusion.Internal.HyloRep(
 >             module HFusion.Internal.HyloFace
 >            ,module HFusion.Internal.HsSyn,Hylo(..)) where
@@ -60,7 +52,7 @@
 
 Hylo ((a,eta,ca),(bvs,v))
 bvs son todas las variables que el hilomorfismo recibe menos la
-    última que es bv.
+    ultima que es bv.
 v es el nombre del hilomorfismo.
 a es el algebra
 eta es la transformacion natural
diff --git a/HFusion/Internal/Inline.lhs b/HFusion/Internal/Inline.lhs
--- a/HFusion/Internal/Inline.lhs
+++ b/HFusion/Internal/Inline.lhs
@@ -18,7 +18,7 @@
 > import HFusion.Internal.HsSyn
 > import HFusion.Internal.Utils
 > import Data.Char(isAlpha,isLower,isDigit)
-> import Control.Monad.State(get,put,State,StateT(StateT),runState,evalState)
+> import Control.Monad.State(get,put,State,StateT,runState,evalState)
 > import Control.Monad.Reader(Reader,runReader,ask,local)
 > import Control.Monad.Identity(Identity(..))
 > import qualified Data.Map as M(lookup)
@@ -746,7 +746,7 @@
 >          inF2Term:: InF -> [Term] -> [(Variable,Term)] -> State [(Constructor,Int)] Term
 >          inF2Term (InF (c,_)) ts _ = do i<-geti c; return$ Ttuple False [Tlit $ Lint $ c++show i,Ttuple False ts]
 >          geti :: Constructor->State [(Constructor,Int)] Int
->          geti c = StateT (\st->Identity$ maybe (1,(c,1):st) (\i->(i+1,upd c st)) $ lookup c st)
+>          geti c = get >>= \st-> maybe (put ((c,1):st) >> return 1) (\i->put (upd c st) >> return (i+1)) $ lookup c st
 >          upd c ((c',i):cs) = (c,i+1):cs
 >          upd c [] = [(c,1)]
 
diff --git a/hfusion.cabal b/hfusion.cabal
--- a/hfusion.cabal
+++ b/hfusion.cabal
@@ -1,5 +1,5 @@
 name:       hfusion
-version:    0.0.2
+version:    0.0.3
 build-type: Simple
 cabal-version:  >= 1.6
 license:    BSD3
@@ -45,5 +45,5 @@
 source-repository this
   type:     darcs
   location: http://www.fing.edu.uy/inco/proyectos/fusion/darcs/hfusion/
-  tag:      0.0.2
+  tag:      0.0.3
 
