labeled-tree (empty) → 1.0.0.0
raw patch · 4 files changed
+136/−0 lines, 4 filesdep +basesetup-changed
Dependencies added: base
Files
- Data/LabeledTree.hs +35/−0
- LICENSE +83/−0
- Setup.hs +2/−0
- labeled-tree.cabal +16/−0
+ Data/LabeledTree.hs view
@@ -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)
+ LICENSE view
@@ -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.++-----------------------------------------------------------------------------
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ labeled-tree.cabal view
@@ -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