cube :: Floating a => a -> a
cube x = x ** 3.0

croot :: Floating a => a -> a
croot x = x ** (1/3)





funclist :: Floating a => [a -> a]
funclist = [sin,  cos,  cube ]

invlist :: Floating a => [a -> a]
invlist  = [asin, acos, croot]

main :: IO ()
main = print $ zipWith (\f i -> f . i $ 0.5) funclist invlist