File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -110,16 +110,24 @@ instance Arbitrary BigInt where
110110newtype  NotEmpty  a  =  NotEmpty  {  notEmpty  ::  a  } 
111111 deriving  (Eq , Ord , Show )
112112
113+ toNotEmptyBy  ::  Functor   m  =>  ([Char  ] ->  a ) ->  m  (NonEmptyList  Char  ) ->  m  (NotEmpty  a )
114+ toNotEmptyBy f =  fmap  (coerce f)
115+ 
116+ arbitraryNotEmptyBy  ::  ([Char  ] ->  a ) ->  Gen  (NotEmpty  a )
117+ arbitraryNotEmptyBy f =  toNotEmptyBy f arbitrary
118+ 
119+ shrinkNotEmptyBy  ::  ([Char  ] ->  a ) ->  (a  ->  [Char  ]) ->  NotEmpty  a  ->  [NotEmpty  a ]
120+ shrinkNotEmptyBy g f = 
121+   toNotEmptyBy g .  shrink .  coerce f
113122
114123instance  Arbitrary  (NotEmpty  T. Text ) where 
115-     arbitrary   =  fmap  (NotEmpty  .  T. pack .  getNonEmpty) arbitrary
116-     shrink      =  fmap  (NotEmpty  .  T. pack .  getNonEmpty)
117-                 .  shrink .  NonEmpty  .  T. unpack .  notEmpty
124+     arbitrary   =  arbitraryNotEmptyBy T. pack
125+     shrink      =  shrinkNotEmptyBy T. pack T. unpack
118126
119127instance  Arbitrary  (NotEmpty  TL. Text ) where 
120-     arbitrary   =  fmap  ( NotEmpty   .   TL. pack  .  getNonEmpty) arbitrary 
121-     shrink      =  fmap  ( NotEmpty   .   TL. pack .  getNonEmpty) 
122-                  .  shrink  .   NonEmpty   .   TL. unpack  .  notEmpty 
128+     arbitrary   =  arbitraryNotEmptyBy  TL. pack
129+     shrink      =  shrinkNotEmptyBy  TL. pack TL. unpack 
130+ 
123131
124132data  DecodeErr  =  Lenient  | Ignore  | Strict  | Replace 
125133 deriving  (Show , Eq , Bounded , Enum )
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments