-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Elm syntax and pretty-printing -- -- Please see the README on GitHub at -- https://github.com/folq/elm-syntax#readme @package elm-syntax @version 0.3.2.0 module Language.Elm.Name type Module = [Text] newtype Local Local :: Text -> Local data Qualified Qualified :: Module -> Text -> Qualified newtype Field Field :: Text -> Field newtype Constructor Constructor :: Text -> Constructor isConstructor :: Qualified -> Bool instance Data.Hashable.Class.Hashable Language.Elm.Name.Local instance Data.String.IsString Language.Elm.Name.Local instance GHC.Generics.Generic Language.Elm.Name.Local instance GHC.Show.Show Language.Elm.Name.Local instance GHC.Classes.Ord Language.Elm.Name.Local instance GHC.Classes.Eq Language.Elm.Name.Local instance Data.Hashable.Class.Hashable Language.Elm.Name.Qualified instance GHC.Generics.Generic Language.Elm.Name.Qualified instance GHC.Show.Show Language.Elm.Name.Qualified instance GHC.Classes.Ord Language.Elm.Name.Qualified instance GHC.Classes.Eq Language.Elm.Name.Qualified instance Data.Hashable.Class.Hashable Language.Elm.Name.Field instance Data.String.IsString Language.Elm.Name.Field instance GHC.Generics.Generic Language.Elm.Name.Field instance GHC.Show.Show Language.Elm.Name.Field instance GHC.Classes.Ord Language.Elm.Name.Field instance GHC.Classes.Eq Language.Elm.Name.Field instance Data.Hashable.Class.Hashable Language.Elm.Name.Constructor instance Data.String.IsString Language.Elm.Name.Constructor instance GHC.Generics.Generic Language.Elm.Name.Constructor instance GHC.Show.Show Language.Elm.Name.Constructor instance GHC.Classes.Ord Language.Elm.Name.Constructor instance GHC.Classes.Eq Language.Elm.Name.Constructor instance Data.String.IsString Language.Elm.Name.Qualified module Language.Elm.Pattern data Pattern v Var :: v -> Pattern v Wildcard :: Pattern v Con :: Qualified -> [Pattern v] -> Pattern v List :: [Pattern v] -> Pattern v String :: !Text -> Pattern v Int :: !Integer -> Pattern v Float :: !Double -> Pattern v foldMapGlobals :: Monoid m => (Qualified -> m) -> Pattern v -> m tuple :: Pattern v -> Pattern v -> Pattern v instance Data.Traversable.Traversable Language.Elm.Pattern.Pattern instance Data.Foldable.Foldable Language.Elm.Pattern.Pattern instance GHC.Base.Functor Language.Elm.Pattern.Pattern instance GHC.Show.Show v => GHC.Show.Show (Language.Elm.Pattern.Pattern v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Language.Elm.Pattern.Pattern v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Language.Elm.Pattern.Pattern v) module Language.Elm.Expression data Expression v Var :: v -> Expression v Global :: Qualified -> Expression v App :: Expression v -> Expression v -> Expression v Let :: Expression v -> Scope () Expression v -> Expression v Lam :: Scope () Expression v -> Expression v Record :: [(Field, Expression v)] -> Expression v Proj :: Field -> Expression v Case :: Expression v -> [(Pattern Int, Scope Int Expression v)] -> Expression v List :: [Expression v] -> Expression v String :: !Text -> Expression v Int :: !Integer -> Expression v Float :: !Double -> Expression v bind :: forall v v'. (Qualified -> Expression v') -> (v -> Expression v') -> Expression v -> Expression v' apps :: Foldable f => Expression v -> f (Expression v) -> Expression v appsView :: Expression v -> (Expression v, [Expression v]) if_ :: Expression v -> Expression v -> Expression v -> Expression v (|>) :: Expression v -> Expression v -> Expression v (<|) :: Expression v -> Expression v -> Expression v (<<) :: Expression v -> Expression v -> Expression v (>>) :: Expression v -> Expression v -> Expression v (++) :: Expression v -> Expression v -> Expression v tuple :: Expression v -> Expression v -> Expression v lets :: Eq b => [(b, Expression v)] -> Scope b Expression v -> Expression v foldMapGlobals :: Monoid m => (Qualified -> m) -> Expression v -> m instance GHC.Classes.Eq v => GHC.Classes.Eq (Language.Elm.Expression.Expression v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Language.Elm.Expression.Expression v) instance GHC.Show.Show v => GHC.Show.Show (Language.Elm.Expression.Expression v) instance Data.Functor.Classes.Show1 Language.Elm.Expression.Expression instance Data.String.IsString (Language.Elm.Expression.Expression v) instance Data.Functor.Classes.Ord1 Language.Elm.Expression.Expression instance Data.Functor.Classes.Eq1 Language.Elm.Expression.Expression instance Data.Traversable.Traversable Language.Elm.Expression.Expression instance Data.Foldable.Foldable Language.Elm.Expression.Expression instance GHC.Base.Functor Language.Elm.Expression.Expression instance GHC.Base.Applicative Language.Elm.Expression.Expression instance GHC.Base.Monad Language.Elm.Expression.Expression module Language.Elm.Type data Type v Var :: v -> Type v Global :: Qualified -> Type v App :: Type v -> Type v -> Type v Fun :: Type v -> Type v -> Type v Record :: [(Field, Type v)] -> Type v bind :: (Qualified -> Type v') -> (v -> Type v') -> Type v -> Type v' apps :: Type v -> [Type v] -> Type v appsView :: Type v -> (Type v, [Type v]) funs :: [Type v] -> Type v -> Type v tuple :: Type v -> Type v -> Type v foldMapGlobals :: Monoid m => (Qualified -> m) -> Type v -> m instance Data.Functor.Classes.Show1 Language.Elm.Type.Type instance GHC.Base.Applicative Language.Elm.Type.Type instance GHC.Base.Monad Language.Elm.Type.Type instance Data.String.IsString (Language.Elm.Type.Type v) instance Data.Functor.Classes.Ord1 Language.Elm.Type.Type instance Data.Functor.Classes.Eq1 Language.Elm.Type.Type instance Data.Traversable.Traversable Language.Elm.Type.Type instance Data.Foldable.Foldable Language.Elm.Type.Type instance GHC.Base.Functor Language.Elm.Type.Type instance GHC.Show.Show v => GHC.Show.Show (Language.Elm.Type.Type v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Language.Elm.Type.Type v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Language.Elm.Type.Type v) module Language.Elm.Definition data Definition Constant :: !Qualified -> !Int -> Scope Int Type Void -> Expression Void -> Definition Type :: !Qualified -> !Int -> [(Constructor, [Scope Int Type Void])] -> Definition Alias :: !Qualified -> !Int -> Scope Int Type Void -> Definition name :: Definition -> Qualified foldMapGlobals :: Monoid m => (Qualified -> m) -> Definition -> m instance GHC.Show.Show Language.Elm.Definition.Definition instance GHC.Classes.Ord Language.Elm.Definition.Definition instance GHC.Classes.Eq Language.Elm.Definition.Definition module Language.Elm.Simplification -- | Perform simplifyExpression on all Expressions inside the -- given Definition. simplifyDefinition :: Definition -> Definition -- | Run the following simplifications on the given expression: -- --
identity x = x
(f >> g) x = g (f x)
f >> identity = f
identity >> f = f
(f << g) x = f (g x)
f << identity = f
identity << f= f
identity <| x = x
x |> identity = x
x :: [y, z, ...] = [x, y, z, ...]
(x. e x) = e