diff --git a/app/Version.hs b/app/Version.hs
--- a/app/Version.hs
+++ b/app/Version.hs
@@ -6,7 +6,7 @@
 prettyVersion = "Mulang Release " ++ version ++ ", compiled on " ++ compilationTimestamp
 
 version :: String
-version = "4.0.0"
+version = "4.0.1"
 
 compilationTimestamp :: String
 compilationTimestamp = __DATE__ ++ " " ++ __TIME__
diff --git a/mulang.cabal b/mulang.cabal
--- a/mulang.cabal
+++ b/mulang.cabal
@@ -1,5 +1,5 @@
 name:                mulang
-version:             4.0.0
+version:             4.0.1
 synopsis:            An intermediate language designed to perform advanced code analysis
 description:         Mulang is an intermediate language, a combinators library for static code analysis and a multilanguage comand line tool
 license:             GPL
diff --git a/src/Language/Mulang/Ast.hs b/src/Language/Mulang/Ast.hs
--- a/src/Language/Mulang/Ast.hs
+++ b/src/Language/Mulang/Ast.hs
@@ -70,7 +70,7 @@
         | ConstrainedType [Identifier]
         -- ^ constrained type, with just type constraints.
         -- Usefull for modelling classes and interfaces types
-        | OtherType (Maybe String) (Maybe Type)
+        | OtherType (Maybe Code) (Maybe Type)
         -- ^ unrecognized type, with optional code and nested type
         deriving (Eq, Show, Read, Generic)
 
@@ -164,7 +164,7 @@
     -- ^ Imperative / OOP programming c-style for loop
     | Sequence [Expression]
     -- ^ Generic sequence of statements
-    | Other (Maybe String) (Maybe Expression)
+    | Other (Maybe Code) (Maybe Expression)
     -- ^ Unrecognized expression, with optional description and body
     | Equal
     | NotEqual
@@ -190,13 +190,13 @@
 -- | Mulang Patterns are not expressions, but are aimed to match them.
 -- | They are modeled after Haskell, Prolog, Elixir, Scala and Erlang patterns
 data Pattern
-    = VariablePattern String
+    = VariablePattern Identifier
     -- ^ variable pattern like @X@
-    | LiteralPattern String
+    | LiteralPattern Code
     -- ^ literal constant pattern like @4@
-    | InfixApplicationPattern Pattern String Pattern
+    | InfixApplicationPattern Pattern Identifier Pattern
     -- ^ infix application pattern like @4:X@
-    | ApplicationPattern String [Pattern]
+    | ApplicationPattern Identifier [Pattern]
     -- ^ prefix application pattern like @f _@
     | TuplePattern [Pattern]
     -- ^ tuple pattern like @(3, _)@
@@ -210,7 +210,7 @@
     | WildcardPattern
     -- ^ wildcard pattern @_@
     | UnionPattern [Pattern]
-    | OtherPattern (Maybe String) (Maybe Pattern)
+    | OtherPattern (Maybe Code) (Maybe Pattern)
     -- ^ Other unrecognized pattern with optional code and nested pattern
   deriving (Eq, Show, Read, Generic)
 
diff --git a/src/Language/Mulang/Parsers/Haskell.hs b/src/Language/Mulang/Parsers/Haskell.hs
--- a/src/Language/Mulang/Parsers/Haskell.hs
+++ b/src/Language/Mulang/Parsers/Haskell.hs
@@ -6,6 +6,7 @@
 
 import Language.Haskell.Syntax
 import Language.Haskell.Parser
+import Language.Haskell.Pretty (prettyPrint)
 
 import Data.List (intercalate)
 
@@ -50,7 +51,7 @@
     muBody = Return . muExp
 
     muPat (HsPVar name) = VariablePattern (muName name)
-    muPat (HsPLit _) = LiteralPattern ""
+    muPat (HsPLit literal) = LiteralPattern (prettyPrint literal)
     muPat (HsPInfixApp e1 name e2) = InfixApplicationPattern (muPat e1) (muQName name) (muPat e2)
     muPat (HsPApp name elements) = ApplicationPattern (muQName name) (map muPat elements)
     muPat (HsPTuple elements) = TuplePattern (map muPat elements)
