
Well yes, but what I actually want is to instantiate controllerList statically; the implicit parameter should ideally be embedded, like this: controllerList :: [(?req :: Request) => String] I don't think that is a legal Haskell type though... -Stefan Tomasz Zielonka wrote:
type Controller = (?req :: Request) => String
controller1 :: Controller controller2 :: Controller
controllerList = [controller1, controller2]
GHC complains with:
Unbound implicit parameter (?req :: Request) arising from use of `controller1' In the list element: controller1 In the definition of `controllerList': controllerList = [controller1, controller2]
You have just been bitten by monomorphism restriction. Write a type signature for controllerList and it should work:
controllerList :: (?req :: Request) => [String]
Best regards, Tom