diff --git a/netlib-ffi.cabal b/netlib-ffi.cabal
--- a/netlib-ffi.cabal
+++ b/netlib-ffi.cabal
@@ -1,10 +1,10 @@
 Name:             netlib-ffi
-Version:          0.1.1
+Version:          0.1.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
 Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>
-Homepage:         http://hub.darcs.net/thielema/netlib-ffi/
+Homepage:         https://hub.darcs.net/thielema/netlib-ffi/
 Category:         Math
 Synopsis:         Helper modules for FFI to BLAS and LAPACK
 Description:
@@ -20,24 +20,27 @@
 Build-Type:       Simple
 
 Source-Repository this
-  Tag:         0.1.1
+  Tag:         0.1.2
   Type:        darcs
-  Location:    http://hub.darcs.net/thielema/netlib-ffi/
+  Location:    https://hub.darcs.net/thielema/netlib-ffi/
 
 Source-Repository head
   Type:        darcs
-  Location:    http://hub.darcs.net/thielema/netlib-ffi/
+  Location:    https://hub.darcs.net/thielema/netlib-ffi/
 
 Library
   Build-Depends:
     guarded-allocation >=0.0 && <0.1,
     storable-complex >=0.2.2 && <0.3,
-    transformers >=0.2 && <0.6,
+    transformers >=0.2 && <0.7,
+    deepseq >=1.3 && <1.6,
     base >=4.5 && <5
 
   GHC-Options:      -Wall -fwarn-missing-import-lists
   Hs-Source-Dirs:   src
   Default-Language: Haskell98
   Exposed-Modules:
+    Numeric.Netlib.Modifier
+    Numeric.Netlib.Layout
     Numeric.Netlib.Class
     Numeric.Netlib.Utility
diff --git a/src/Numeric/Netlib/Layout.hs b/src/Numeric/Netlib/Layout.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/Netlib/Layout.hs
@@ -0,0 +1,15 @@
+module Numeric.Netlib.Layout where
+
+import Control.DeepSeq (NFData, rnf)
+
+
+data Order = RowMajor | ColumnMajor
+   deriving (Eq, Show, Enum, Bounded)
+
+instance NFData Order where
+   rnf RowMajor = ()
+   rnf ColumnMajor = ()
+
+flipOrder :: Order -> Order
+flipOrder RowMajor = ColumnMajor
+flipOrder ColumnMajor = RowMajor
diff --git a/src/Numeric/Netlib/Modifier.hs b/src/Numeric/Netlib/Modifier.hs
new file mode 100644
--- /dev/null
+++ b/src/Numeric/Netlib/Modifier.hs
@@ -0,0 +1,45 @@
+module Numeric.Netlib.Modifier where
+
+import Numeric.Netlib.Layout (Order, flipOrder)
+
+import Data.Monoid (Monoid, mempty, mappend)
+import Data.Semigroup (Semigroup, (<>))
+
+
+
+data Transposition = NonTransposed | Transposed
+   deriving (Eq, Show, Enum, Bounded)
+
+instance Semigroup Transposition where
+   x<>y = if x==y then NonTransposed else Transposed
+
+instance Monoid Transposition where
+   mempty = NonTransposed
+   mappend = (<>)
+
+transposeOrder :: Transposition -> Order -> Order
+transposeOrder NonTransposed = id
+transposeOrder Transposed = flipOrder
+
+
+
+data Conjugation = NonConjugated | Conjugated
+   deriving (Eq, Show, Enum, Bounded)
+
+instance Semigroup Conjugation where
+   x<>y = if x==y then NonConjugated else Conjugated
+
+instance Monoid Conjugation where
+   mempty = NonConjugated
+   mappend = (<>)
+
+
+data Inversion = NonInverted | Inverted
+   deriving (Eq, Show, Enum, Bounded)
+
+instance Semigroup Inversion where
+   x<>y = if x==y then NonInverted else Inverted
+
+instance Monoid Inversion where
+   mempty = NonInverted
+   mappend = (<>)
