Ticket #7480: GetOpt_Functor_instances.patch

File GetOpt_Functor_instances.patch, 1.3 KB (added by basvandijk, 17 months ago)
  • System/Console/GetOpt.hs

    From 96ec2ccbeb8f4a92c715f4b62d5ce3833c2a2128 Mon Sep 17 00:00:00 2001
    From: Bas van Dijk <v.dijk.bas@gmail.com>
    Date: Mon, 19 Nov 2012 16:09:02 +0100
    Subject: [PATCH] Define Functor instances for ArgOrder, OptDescr and ArgDescr
    
    ---
     System/Console/GetOpt.hs |   13 +++++++++++++
     1 file changed, 13 insertions(+)
    
    diff --git a/System/Console/GetOpt.hs b/System/Console/GetOpt.hs
    index 1ea0829..5bdb6d1 100644
    a b data ArgDescr a 
    9898   | ReqArg (String       -> a) String -- ^   option requires argument 
    9999   | OptArg (Maybe String -> a) String -- ^   optional argument 
    100100 
     101instance Functor ArgOrder where 
     102    fmap _ RequireOrder      = RequireOrder 
     103    fmap _ Permute           = Permute 
     104    fmap f (ReturnInOrder g) = ReturnInOrder (f . g) 
     105 
     106instance Functor OptDescr where 
     107    fmap f (Option a b argDescr c) = Option a b (fmap f argDescr) c 
     108 
     109instance Functor ArgDescr where 
     110    fmap f (NoArg a)    = NoArg (f a) 
     111    fmap f (ReqArg g s) = ReqArg (f . g) s 
     112    fmap f (OptArg g s) = OptArg (f . g) s 
     113 
    101114data OptKind a                -- kind of cmd line arg (internal use only): 
    102115   = Opt       a                --    an option 
    103116   | UnreqOpt  String           --    an un-recognized option