Version Completa, agregado parte de Haskell