Bind implicit parameter in patterns
Is there any reason why variables for ImplicitParams
can't be bound in patterns, so you can write
data Exp = Val Int | Op Op Exp Exp
data Op = Add | Mul
data Protect where
Protect :: (?op :: Op) => Protect
protectOp :: Exp -> Maybe Protect
protectOp (Op ?op _ _) = Just Protect
protectOp _ = Nothing
instead of
protectOp :: Exp -> Maybe Protect
protectOp (Op op _ _) = Just Protect where ?op = op
protectOp _ = Nothing
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | Task |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |