-
Notifications
You must be signed in to change notification settings - Fork 3
/
mlf.hs
19 lines (17 loc) · 617 Bytes
/
mlf.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{-# LANGUAGE NoMonomorphismRestriction #-}
module MLF where
import qualified Data.Map as M
import qualified Data.Set as S
import Data.Maybe
import Control.Monad.State
import Control.Monad.Error
import Control.Monad.Identity
type Name = Int
data Quant = Rigid Poly | Univ (Maybe Poly) | Exis
data Mono = LocalVar Int | FreeVar Name | Arrow Mono Mono | Const Int -- | Pair Mono Mono | Skolem Int
type Poly = ([Quant], Mono)
--type InstEnv = []
--data Scope = Scope (M.Map Name Quantifier)
--type Scope = [(Name, Quantifier)]
--data Node = Node Scope Constr
--data Node = Node {nd_constr :: Constr, nd_parent :: Name}