module Language.Noodle.Lib.Prod(env,decls) where

import Language.Noodle.Evaluation


env   = extenv decls

decls = [("head", extfun pHead)
        ,("tail", extfun pTail)
        ,("depth", extfun pDepth) ]

pHead (Prod v1 _) = return v1
pTail (Prod _ v2) = return v2
pDepth (Prod _ v2)
    = return $ pdepth' 2 v2 where
        pdepth' n (Prod _ v2) = pdepth' (n+1) v2
        pdepth' n _           = Number n
pDepth _ = return $ Number 1