<commit_before>{-# LANGUAGE GADTs #-}
{-# OPTIONS_GHC -Wall -fno-warn-name-shadowing #-}

module Compiler.Hoopl.Passes.Dominator
  ( Doms, domPath, domEntry, domLattice, extendDom
  , DominatorNode(..), DominatorTree(..), tree
  , domFirst, domMiddle, domLast
  )
where

import Data.Maybe

import Compiler.Hoopl hiding (Top, Bot)
import Compiler.Hoopl.Pointed

type Doms = Pointed O C DPath
-- ^ List of labels, extended with a standard bottom element

-- | The fact that goes into the entry of a dominator analysis: the first node
-- is dominated only by the entry point, which is represented by the empty list
-- of labels.
domEntry :: Doms<commit_msg>adjust to new world of Top, Bot, Pointed; use WithBot synonym<commit_after>{-# LANGUAGE GADTs #-}
{-# OPTIONS_GHC -Wall -fno-warn-name-shadowing #-}

module Compiler.Hoopl.Passes.Dominator
  ( Doms, domPath, domEntry, domLattice, extendDom
  , DominatorNode(..), DominatorTree(..), tree
  , domFirst, domMiddle, domLast
  )
where

import Data.Maybe

import Compiler.Hoopl

type Doms = WithBot DPath
-- ^ List of labels, extended with a standard bottom element

-- | The fact that goes into the entry of a dominator analysis: the first node
-- is dominated only by the entry point, which is represented by the empty list
-- of labels.
domEntry :: Doms
{'fraction_non_alphanumeric': 0.10122699386503067, 'fraction_numerical': 0.0, 'mean_word_length': 3.906015037593985, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5380883', 'n_tokens_mistral': 430, 'n_tokens_neox': 420, 'n_words': 154}