diff --git a/Data/LabeledTree.hs b/Data/LabeledTree.hs
new file mode 100644
--- /dev/null
+++ b/Data/LabeledTree.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE TypeOperators #-}
+module Data.LabeledTree where
+
+import Data.Traversable
+import Data.Foldable
+import Control.Applicative
+
+data Tree k a = Node  {
+      rootLabel :: a, -- ^ label value
+      subForest :: Forest k a -- ^ zero or more child trees
+} deriving (Show, Eq, Read)
+
+-- | label + value pair
+data k ::> a = k ::> a
+ deriving (Show, Eq, Read)
+
+type Forest k a = [k ::> Tree k a]
+
+instance Functor ((::>) k) where
+    fmap = fmapDefault
+
+instance Foldable ((::>) k) where
+    foldMap = foldMapDefault
+
+instance Traversable ((::>) k) where
+    traverse f (k ::> v) = (::>) k <$> f v
+
+instance Functor (Tree k) where
+    fmap = fmapDefault
+
+instance Foldable (Tree k) where
+    foldMap = foldMapDefault
+
+instance Traversable (Tree k) where   
+    traverse f (Node l sf) = Node <$> f l <*> (traverse (traverse (traverse f)) sf)
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,83 @@
+This library (libraries/containers) is derived from code from several
+sources: 
+
+  * Code from the GHC project which is largely (c) The University of
+    Glasgow, and distributable under a BSD-style license (see below),
+
+  * Code from the Haskell 98 Report which is (c) Simon Peyton Jones
+    and freely redistributable (but see the full license for
+    restrictions).
+
+  * Code from the Haskell Foreign Function Interface specification,
+    which is (c) Manuel M. T. Chakravarty and freely redistributable
+    (but see the full license for restrictions).
+
+The full text of these licenses is reproduced below.  All of the
+licenses are BSD-style or compatible.
+
+-----------------------------------------------------------------------------
+
+The Glasgow Haskell Compiler License
+
+Copyright 2004, The University Court of the University of Glasgow. 
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+ 
+- Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+ 
+- Neither name of the University nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission. 
+
+THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY COURT OF THE UNIVERSITY OF
+GLASGOW AND THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW OR THE CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+-----------------------------------------------------------------------------
+
+Code derived from the document "Report on the Programming Language
+Haskell 98", is distributed under the following license:
+
+  Copyright (c) 2002 Simon Peyton Jones
+
+  The authors intend this Report to belong to the entire Haskell
+  community, and so we grant permission to copy and distribute it for
+  any purpose, provided that it is reproduced in its entirety,
+  including this Notice.  Modified versions of this Report may also be
+  copied and distributed for any purpose, provided that the modified
+  version is clearly presented as such, and that it does not claim to
+  be a definition of the Haskell 98 Language.
+
+-----------------------------------------------------------------------------
+
+Code derived from the document "The Haskell 98 Foreign Function
+Interface, An Addendum to the Haskell 98 Report" is distributed under
+the following license:
+
+  Copyright (c) 2002 Manuel M. T. Chakravarty
+
+  The authors intend this Report to belong to the entire Haskell
+  community, and so we grant permission to copy and distribute it for
+  any purpose, provided that it is reproduced in its entirety,
+  including this Notice.  Modified versions of this Report may also be
+  copied and distributed for any purpose, provided that the modified
+  version is clearly presented as such, and that it does not claim to
+  be a definition of the Haskell 98 Foreign Function Interface.
+
+-----------------------------------------------------------------------------
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/labeled-tree.cabal b/labeled-tree.cabal
new file mode 100644
--- /dev/null
+++ b/labeled-tree.cabal
@@ -0,0 +1,16 @@
+name:       labeled-tree
+version:    1.0.0.0
+license:    BSD3
+license-file:    LICENSE
+maintainer:    jeanphilippe.bernardy@gmail.com
+synopsis:   Labeled tree structure
+category:   Data Structures
+description:
+        Labeled tree structure, on the model of the standard Data.Tree
+build-type: Simple
+cabal-version:  >=1.6
+
+Library 
+ build-depends: base >= 1 && < 6
+ exposed-modules:
+  Data.LabeledTree    
