Skip to content

paraiconicity/meeps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

meeps

This is a reusable OCaml library implementing a bidirectional type checker with affine ownership tracking

Examples

open Affine_typechecker

let expr =
  Syntax.Let
    ("x", `Owned, Some Type.TInt, Syntax.Int 42, Syntax.Move "x")

let result = Checker.infer expr
open Affine_typechecker

let session = Checker.Session.create ~config:Config.strict ()

let () =
  ignore
    (Checker.Session.add_binding session
       ~name:"global_counter"
       { Checker.ty = Type.TInt; mode = `Shared })

let ty_result = Checker.Session.infer_expr session (Syntax.Var "global_counter")

Use a session when checking multiple expressions/items in sequence while preserving context and ownership state

About

Library for a bidirectional type checker with affine ownership tracking

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors