diff --git a/Acme/Safe.hs b/Acme/Safe.hs
new file mode 100644
--- /dev/null
+++ b/Acme/Safe.hs
@@ -0,0 +1,28 @@
+module Acme.Safe where
+
+import Acme.Dont
+
+-- | Safely extract a value from a Just
+safeFromJust :: Maybe a -> Maybe a
+safeFromJust Nothing = Nothing
+safeFromJust (Just x) = Just x
+
+-- | Safely extract a value from a Left
+safeFromLeft :: Either a b -> Either a b
+safeFromLeft (Left x) = Left x
+safeFromLeft (Right x) = Right x
+
+-- | Safely doesn't perform IO with the help of acme-dont. Side-effects-free!
+safePerformIO :: IO a -> Maybe (IO ())
+safePerformIO = Just . don't
+--safePerformIO launchMissiles = Nothing --ready for the upcoming function-pattern-matching
+
+-- | Doesn't print the provided debug string. But it's 100% safe!
+safeTrace :: String -> a -> Maybe (IO ())
+safeTrace s x = safePerformIO $ do
+                                    putStrLn s
+                                    return x
+
+-- | Safely converts a value from any type to any other type.
+safeCoerce :: a -> Maybe b
+safeCoerce _ = Nothing
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,13 @@
+        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+                    Version 2, December 2004 
+
+ Copyright (C) 2015 Francesco Gazzetta
+
+ Everyone is permitted to copy and distribute verbatim or modified 
+ copies of this license document, and changing it is allowed as long 
+ as the name is changed. 
+
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+  0. You just DO WHAT THE FUCK YOU WANT TO.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/acme-safe.cabal b/acme-safe.cabal
new file mode 100644
--- /dev/null
+++ b/acme-safe.cabal
@@ -0,0 +1,20 @@
+name:                acme-safe
+version:             0.1.0.0
+synopsis:            Safe versions of some infamous haskell functions such as fromJust
+-- description:         
+homepage:            http://github.com/fgaz/acme-safe
+license:             OtherLicense
+license-file:        LICENSE
+author:              Francesco Gazzetta
+--maintainer:          fgaz@users.noreply.github.com
+category:            ACME
+build-type:          Simple
+cabal-version:       >=1.10
+
+
+library
+  exposed-modules:     Acme.Safe 
+  build-depends:       base  < 666
+                     , acme-dont
+  default-language:    Haskell2010
+  
