diff --git a/plailude.cabal b/plailude.cabal
--- a/plailude.cabal
+++ b/plailude.cabal
@@ -1,5 +1,5 @@
 name:                plailude
-version:             0.4.1.1
+version:             0.5.0
 synopsis:            plaimi's prelude
 description:         The prelude used internally at plaimi.
 
@@ -24,6 +24,7 @@
   exposed-modules:     Plailude
   other-modules:       Plailude.Control
                        Plailude.Control.Arrow
+                       Plailude.Control.Bool
                        Plailude.Control.Monad
                        Plailude.Data.Text
                        Plailude.Data.Text.Show
@@ -33,9 +34,10 @@
                        Plailude.Function
                        Plailude.Function.Compose
   other-extensions:    GeneralizedNewtypeDeriving
-  build-depends:       base >=4.6 && <4.8,
+  build-depends:       base       >=4.6 && <4.8,
                        bytestring >=0.10 && <0.11,
-                       mtl >=2.2.1 && <2.2.2,
-                       time >=1.4 && <1.5
+                       mtl        >=2.2.1 && <2.2.2,
+                       time       >=1.4 && <1.5,
+                       unix       >=2.7 && <2.8
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/Plailude.hs b/src/Plailude.hs
--- a/src/Plailude.hs
+++ b/src/Plailude.hs
@@ -7,9 +7,13 @@
 Maintainer  :  plailude@plaimi.net
 -} module Plailude (
   -- Control
+  (~+~),
   both,
   erretreat,
   retreat,
+  -- Bool
+  if',
+  fi,
   -- Function
   (.:),
   (.:.),
diff --git a/src/Plailude/Control.hs b/src/Plailude/Control.hs
--- a/src/Plailude/Control.hs
+++ b/src/Plailude/Control.hs
@@ -6,10 +6,15 @@
 
 Maintainer  :  plailude@plaimi.net
 -} module Plailude.Control (
+  (~+~),
   both,
   erretreat,
+  if',
+  fi,
   retreat,
   ) where
 
 import Plailude.Control.Arrow
+import Plailude.Control.Bool
+import Plailude.Control.IO
 import Plailude.Control.Monad
diff --git a/src/Plailude/Control/Bool.hs b/src/Plailude/Control/Bool.hs
new file mode 100644
--- /dev/null
+++ b/src/Plailude/Control/Bool.hs
@@ -0,0 +1,17 @@
+{- |
+Module      :  $Header$
+Description :  Bools. dealwithit.jpeg.
+Copyright   :  (c) plaimi 2014
+License     :  GPL-3
+
+Maintainer  :  plailude@plaimi.net
+-} module Plailude.Control.Bool where
+
+if' :: Bool -> a -> a -> a
+-- | If 'True' then the first value, else the second.
+if' True  = const
+if' False = const id
+
+fi :: a -> a -> Bool -> a
+-- | If 'True' then the first value, else the second.
+fi = flip . flip if'
