Suppose we are working with the following Liquid Haskell code:
{-@ LIQUID "--ple" @-}
{-@ LIQUID "--reflection" @-}
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
{-# LANGUAGE AllowAmbiguousTypes #-} | |
import Data.Data (Proxy (Proxy)) | |
import Data.Kind (Type) | |
import Text.Printf (printf) |
#! /usr/bin/env python3 | |
# flatten.py | |
# Copyright (C) 2024 Alessio Ferrarini <github.com/alecsferra> | |
# | |
# This program is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# |
nix-shell -p "python3.withPackages (ps: with ps; [ dbus-python distro ])" --run "python3 <your-eduroam.py>" |
// Implementation in LH of A correct-by-construction conversion from lambda calculus to combinatory logic | |
// https://webspace.science.uu.nl/~swier004/publications/2023-jfp.pdf | |
{-# Language GADTs #-} | |
{-@ LIQUID "--reflection" @-} | |
{-@ LIQUID "--ple" @-} | |
{-@ LIQUID "--full" @-} | |
{-@ LIQUID "--max-case-expand=4" @-} | |
{-@ LIQUID "--etabeta" @-} |
-- Implementation in LH of Calculating Dependently-Typed Compilers | |
-- https://people.cs.nott.ac.uk/pszgmh/well-typed.pdf | |
{-# LANGUAGE GADTs #-} | |
{-# OPTIONS_GHC -fplugin=LiquidHaskell #-} | |
{-@ LIQUID "--ple" @-} | |
{-@ LIQUID "--reflection" @-} | |
{-@ LIQUID "--max-case-expand=4" @-} |
{-# LANGUAGE GADTs #-} | |
{-@ LIQUID "--ple" @-} | |
{-@ LIQUID "--etabeta" @-} | |
{-@ LIQUID "--reflection" @-} | |
{-@ LIQUID "--dependantcase" @-} | |
module ExprCompiler where | |
import Language.Haskell.Liquid.ProofCombinators |