packages feed

lambdacube-engine-0.1.1: Graphics/LambdaCube/Utility.hs

module Graphics.LambdaCube.Utility where

import Data.List

groupSetBy f l = foldl' g [] l
  where
    g el e = case partition ((f e) . head) el of
        { ([],el')      -> [e]:el'
        ; ([gl],el')    -> (e:gl):el'
        ; _ -> error "Invalid case!"
        }