module Color.Foo where

import Data.Maybe

-- | Convert a map into list array.
-- prop> tabulate m !! fromEnum d == fromMaybe 0 (lookup d m)
tabulate :: [(Bool, Double)] -> [Double]
tabulate :: [(Bool, Double)] -> [Double]
tabulate [(Bool, Double)]
m = [Double -> Maybe Double -> Double
forall a. a -> Maybe a -> a
fromMaybe Double
0 (Maybe Double -> Double) -> Maybe Double -> Double
forall a b. (a -> b) -> a -> b
$ Bool -> [(Bool, Double)] -> Maybe Double
forall a b. Eq a => a -> [(a, b)] -> Maybe b
lookup Bool
False [(Bool, Double)]
m, Double -> Maybe Double -> Double
forall a. a -> Maybe a -> a
fromMaybe Double
0 (Maybe Double -> Double) -> Maybe Double -> Double
forall a b. (a -> b) -> a -> b
$ Bool -> [(Bool, Double)] -> Maybe Double
forall a b. Eq a => a -> [(a, b)] -> Maybe b
lookup Bool
True [(Bool, Double)]
m]