packages feed

exference-1.6.0.0: src/Language/Haskell/Exference/FunctionDecl.hs

{-# LANGUAGE PatternGuards #-}

module Language.Haskell.Exference.FunctionDecl
  ( HsFunctionDecl
  , RatedHsFunctionDecl
  , declToBinding
  )
where



import Language.Haskell.Exference.Core.FunctionBinding
import Language.Haskell.Exference.Core.Types
import Language.Haskell.Exference.Core.TypeUtils
import Language.Haskell.Exference.Core.Expression



type HsFunctionDecl = (QualifiedName, HsType)
type RatedHsFunctionDecl = (QualifiedName, Float, HsType)
                            -- name, rating, type

declToBinding :: RatedHsFunctionDecl -> FunctionBinding
declToBinding (a,r,t) =
  (result, a, r, constrs, params)
 where
  (result, params, _, constrs) = splitArrowResultParams t