18 Jan
                
                    2015
                
            
            
                18 Jan
                
                '15
                
            
            
            
        
    
                7:12 p.m.
            
        foo : (x : Int) -> (y : Int) -> (red : Double) -> (blue : Double) -> (green : Double) -> IO ()
And that will solve everything! What could possibly go wrong!
How about a type-level the? =p type The label t = t foo :: The red Double -> The green Double -> The blue Double -> IO () Or with polykinds: foo :: The "Red" Double -> The "Green" Double -> The "Blue" Double -> IO ()